| 
View
 

Building the Liquidware BeagleBoard Linux Kernel

Page history last edited by kieran 13 years, 7 months ago Saved with comment

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

  • compiler path: /home/eye/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
  • sdcard device: /dev/sdi
  • PC processor: 8 cores
  • mount point for SD card's FAT partition: /tmp/bbfat
  • mount point for SD card's EXT2 partition: /tmp/bbext

 

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

 

Comments (7)

Gary said

at 1:47 pm on Sep 2, 2010

Chris
Question on the version of Code Sourcery Tools you are using. Which version is it? Is it arm2009-q1 or another one?
Also I know I'm making a Noob error here but I get mkimage command not found when running the make uImage command. I am setup with Code Sourcery arm2009-q1 tool.
Thanks
Gary

stephane said

at 2:48 pm on Nov 19, 2010

Chris,

I tested this out but have an image that ends up with "Load Address" and "Entry Point" at 0x00008000.
When I looked into the config to redefine CONFIG_ZBOOT_ROM_TEXT and CONFIG_ZBOOT_ROM_BSS to 0x8, I noticed a mismatch between the config file mentioned (which seems to originate from a kernel build system version 2.6.35-rc4) and the git branch referenced (build system for version 2.6.34-rc3).
As such could I ask you to share either the config for 2.6.34-rc3 that you used for building the kernel that came with the beagletouch?

Thank you very much,
Stephane.

Chris said

at 4:08 pm on Nov 23, 2010

@Gary
I'm using "Sourcery G++ Lite 2010.09-50 for ARM GNU/Linux".

Thanks for pointing this out. The link is now included in the 'Required Packages' section above.

@Stephane
The .config file is uploaded here to the wiki. Please see the 'Get the Linux kernel source' section for the link.

stephane said

at 4:26 am on Nov 28, 2010

Chris,

My point was that the config file (http://antipastohw.pbworks.com/f/.config) uploaded here to the wiki is for a Linux Kernel 2.6.35-rc4.
Whereas the kernel source code (git://github.com/liquidware/liquidware_beagleboard_linux.git) from the liquidware branch referenced in this wiki is for a Linux Kernel 2.6.34-rc3.

Ahmad Al-Masry said

at 12:14 am on Feb 25, 2011

Hay Guys;
Can this work on ubuntu or meego???
and can it work on any version higher or lower of the kernel????
Thanks

kieran said

at 5:16 pm on Apr 1, 2011

Hello,

I've been trying to acquire and build the kernel source from your tree, however the instructions are not entirely correct. The only branch I see after the git clone command on the wikipage is the master branch.

As such I am unable to switch to the liquidware branch. I was able to get your config file though and have successfully built a kernel with that.

Perhaps there is another GIT location I should be cloning from?

Thanks,
Kieran

kieran said

at 4:03 pm on Apr 8, 2011

The git commands were in error for switching to the liquidware branch. I've updated the wiki to reflect that now.

You don't have permission to comment on this page.