Updating BBB Debian Image With Cross-Compiled Kernel

I have a new BeagleBone Black (rev C) and got it booting from SD with the Debian 4GB SD image from 2015-03-01.

My goal is to cross compile a kernel on my Linux PC and move the necessary files to the Debian SD card.

So… I got the 4.1.1 Linux kernel from here:

git clone git://github.com/beagleboard/linux.git

And then built the new kernel like this from what I gleaned on the web:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- bb.org_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage am335x-boneblack.dtb LOADADDR=0x80008000
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules_install INSTALL_MOD_PATH=./MODULES
tar czf target_modules.tgz lib

Success! Compiled with no errors. Now I have a uImage, a dtb, and a tarball of the modules to move the SD card.
BUT, when I look at the /boot dir on the Debian SD it seems to need vmlinuz and and initrd.

Can someone PLEASE advise on either how to use what I have built, or how to build what I need to update the SD card.
I’m not looking for an automated solution, I would rather understand the details at this point.


Here[1] are instructions I’ve used with my class. They are written for the 3.8 kernel, but if you checkout the right branch you can get newer kernels.

The script may_install_kernel.sh can be found in my course repo[2]. It’s based on Robert Nelson’s install_kernel.sh. My approach is to use fuse to mount the Bone’s files on the host where the kernel was compiled, and then copy the needed files as if they are local files.


[1] http://elinux.org/EBC_Installing_Kernel_Source
[2] https://github.com/MarkAYoder/BeagleBoard-exercises/tree/master/kernel