I'm trying to cross compile my kernel with touchscreen enabled, however my Respberry Pi fails to boot with the custom kernel.
I was trying to compile the kernel on my ubuntu 10.4 (x64) with different config files but after transferring the files to my Pi I was no longer able to boot it. 

These were the steps I followed as per various descriptions:  

apt-get install gcc-arm-linux-gnueabi make ncurses-dev ia32-libs


Then I downloaded the kernel source rpi-3.10.y and the tools

export KERNEL_SRC=/home/marco/kernel/linux-rpi-3.10.19
export CCPREFIX=/home/marco/kernel/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi- 
export MODULES_TEMP=/home/marco/kernel/modules/


&nbsp;
Get .config file from the running raspberry and transfer to the ubuntu machine 

zcat /proc/config.gz &gt; myconfigfromrpi.config 


&nbsp;
In the kernel source folder  

make mrproper
cp ../myconfigfromrpi.config ./.config
make ARCH=arm CROSS_COMPILE=${CCPREFIX} oldconfig 
make ARCH=arm CROSS_COMPILE=${CCPREFIX} menuconfig


Using editor I changed the line to be "CONFIG_LOCALVERSION"="+MW" and continue  

make ARCH=arm CROSS_COMPILE=${CCPREFIX}
make ARCH=arm CROSS_COMPILE=${CCPREFIX} INSTALL_MOD_PATH=${MODULES_TEMP}
modules_install


In the folder /tools/mkimage  

./imagetool-uncompressed.py ${KERNEL_SRC}/arch/arm/boot/Image


The I transfer the new kernel as kernel_new.img to Respberry into folder /boot/ and update the config.txt accordingly. 

Transfer content of folder /lib/firmware/ to Respberry into folder /lib/firmware/
Transfer folder /lib/firmware/modules/3.10.19+mw to Respberry into folder /lib/modules/

Did I miss something or do I something wrong? 


Question: Why do people rewrite some libraries to many programming languages?
Answer: Typically reimplementing a library to be "native" to a particular platform allows for:


Simpler deployment and distribution
Easier debugging
More idiomatic APIs suitable for your exact platform
Often better performance (platform interop can be a pain)
Fixing design issues which are still in the original for compatibility


For example, I started the Noda Time project as a port of Joda Time. It simply isn't practical to use Joda Time directly from within .NET... you really don't want to have to spin up a JVM just to do date and time calculations, as well as working out how to do the interop between the two. An automated port (a la J#) might have been feasible, but the end result wouldn't have been a pleasant and idiomatic API to use from C#.