Building the Liquidware BeagleBoard Linux Kernel


The Liquidware BeagleBoard Linux kernel is a development branch of the linux kernel for the BeagleTouch and BeagleBoard C4 hardware modules.

If you're looking for the precompiled production uImage and rootfs for the BeagleTouch, they can be downloaded from github. Otherwise, use the following instructions to build the Linux kernel uImage from source.

 


Building the Kernel from Source

 

Required Packages

These packages are required from a fresh Ubuntu install.

 

sudo aptitude install uboot-mkimage

$ wget http://www.codesourcery.com/sgpp/lite/arm/portal/package7853/public/arm-none-linux-gnueabi/arm-2010.09-50-arm-none-linux-gnueabi.bin

$ ./arm-2010.09-50-arm-none-linux-gnueabi.bin

 

Follow the on-screen instructions and use the defaults.

 

My PC configuration

Your PC's configuration may be different

 

Get the Linux Kernel Source

$ git clone git://github.com/liquidware/liquidware_beagleboard_linux.git

$ cd liquidware_beagleboard_linux

$ git branch -a   

$ git checkout remotes/origin/liquidware

$ git checkout -b local_branch

$ wget --no-check-certificate https://github.com/downloads/liquidware/liquidware_beagleboard_linux/BeagleBoot4GB-config-11-30-2010.config

$ mv BeagleBoot4GB-config-11-30-2010.config .config

 

With the configuration above, my make commands are the following:

 

Make Commands

Make is used to build the linux kernel. Before building the kernel, you need to configure your kernel. Use the menuconfig command to select drivers as installed v.s. drivers as modules.

 

menuconfig

$ sudo make -j8 ARCH=arm menuconfig CROSS_COMPILE=/home/eye/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-

 

uImage

$ sudo mount /dev/sdi1 /tmp/bbfat

$ sudo make -j8 ARCH=arm uImage CROSS_COMPILE=/home/eye/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-

$ sudo cp ./arch/arm/boot/uImage /tmp/bbfat

$ sync

$ sync

$ sudo umount /dev/sdi1

 

modules modules_install

$ sudo mount /dev/sdi1 /tmp/bbfat

$ sudo mount /dev/sdi2 /tmp/bbext

$ sudo make -j8 ARCH=arm INSTALL_MOD_PATH=/tmp/bbext modules modules_install CROSS_COMPILE=/home/eye/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-

$ sudo cp ./arch/arm/boot/uImage /tmp/bbfat

$ sync

$ sync

$ sudo umount /dev/sdi1

$ sudo umount /dev/sdi2

 

Building the RootFS

The following commands extract a fresh pre-built Linux Angstrom rootfs (root filesystem)

 

#Grab a copy of the rootfs image

$ wget http://www.liquidware.com/code/rootfs-ext2.tar.bz2

$ sudo mv ./rootfs-ext2.tar.bz2 ~/rootfs-ext2.tar.bz2

 

#mount the ext2 partition

$ sudo mount /dev/sdi2 /tmp/bbext

 

#start fresh

$ sudo rm -rf /tmp/bbext/*

 

#go into the drive

$ cd /tmp/bbext

 

#extract the rootfs

$ sudo tar -xvf ~/rootfs-ext2.tar.bz2

$ sync

$ sync

$ cd ..

$ sudo umount /dev/sdi2