Installing custom angstrom build


New member
Installing custom kernel/angstrom build

Right now I'm in the process of rebuilding everything following the Angstrom build instructions to get a kernel that generates key presses via the GPIOs exposed on the debug board. I plan on just installing the new kernel instead of reinstalling the entire OS, but I'm still curious as to how it would be done. Is there a straight forward way to install the results of the build onto the CFA-910?

I'm not very familiar with bitbake. Where does it dump the finished files? Specifically I'm looking for the kernel.
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.
Last edited:


New member
Well I figured out how to compile the kernel and I think I got a package that contains it.

I found that bitbake dumps .ipk files into tmp/deploy/glibc/ipk

The package with my kernel is kernel-vmlinux_2.6.30-r7.5_cfa-10022.ipk. I think the vmlinuz file should be all I need since everything else should already be installed. Of course I will backup the sdcard first before I try the new kernel just in case. I won't have a chance to try this for a few days but I post again after I've tried it.


New member
Well it turns out that I had to convert the regular vmlinux file into a uImage so that uboot would load it. Now uBoot is loading it but it just stalls at "Starting kernel...".

Can I get some detailed instructions on how to build and install a custom kernel? The build instructions in the sticky thread are good but they don't actually tell me how to install anything onto the CFA once it's built.

Here's what I'm getting out of the console.
U-Boot 2009.08-00326-g3e34cb9 (Oct 26 2010 - 11:45:10)

DRAM:  128 MB
In:    serial
Out:   serial
Err:   serial
MMC:   Atmel MCI: 0
Net:   macb0
macb0: Skipping first reset.
macb0: link down (status: 0x7849)
Hit any key to stop autoboot:  0
mmc: setting clock 150000 Hz, block size 512
mmc: clock 150000 too low; setting CLKDIV to 255
mmc: setting clock 0 Hz, block size 512
mmc: clock 0 too low; setting CLKDIV to 255
mmc: setting clock 260416 Hz, block size 512
mmc: setting clock 260416 Hz, block size 512
mmc: setting clock 25000000 Hz, block size 512
Loading file "/boot/uImage" from mmc device 0:2 (xxa2)
5517349 bytes read
## Booting kernel from Legacy Image at 72200000 ...
   Image Name:   Angstrom/2.6.30/cfa-10022
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    5517285 Bytes =  5.3 MB
   Load Address: 70008000
   Entry Point:  70008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...
Here's the command I used to create the uBoot image.
mkimage -A arm -O linux -T kernel -C none -a 70008000 -e 70008000 -n "Angstrom/2.6.30/cfa-10022" -d vmlinux-2.6.30 uImage-2.6.30
Image Name:   Angstrom/2.6.30/cfa-10022
Created:      Mon Apr 11 18:45:10 2011
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    5517285 Bytes = 5387.97 kB = 5.26 MB
Load Address: 0x70008000
Entry Point:  0x70008000

CF Support

Ok, that might work with the right parameters and config but it is really the hard way.

Under your Angstrom directory there should be a path like this: tmp/deploy/glibc/images/cfa-10022/

That path contains the output images from a build with "bitbake cfa-10022-image". These files will interest you:

The bin file is the kernel already formatted for uboot and the tar is the full image (which includes the kernel). If you are building your kernel in the angstrom tree you can just use those files. If you are not read further down.

The tar file (as rootfs.tar) is used in the script I posted here:

This is what creates the disk images that I post on The kernel ends up in the ext3 file system as this file and link:
./boot/uImage -> uImage-2.6.30

Now, if you are not using angstrom to use build your kernel, you can just use "make uImage" or "make ARCH=arm CROSS_COMPILE=$HOME/angstrom-current/tmp/cross/armv5te/bin/arm-angstrom-linux-gnueabi- -j 5 uImage" as I do it in my kernel tree. That builds uImage into your kernel tree under arch/arm/boot/. You can copy your uImage onto your disk (maybe name it /boot/uImage-custom) and link /boot/uImage to the new file. That should get it booting.

Good luck.


New member
Thanks. I got the new kernel installed and it works. When I ground the GPIOs I get key presses. Now I just have to wait for my partners to get back with a pushbutton and wire it up.