Difference between revisions of "Hammer How to buildroot"

From eLinux.org
Jump to: navigation, search
(Added more detailed instructions for building buildroot under ubuntu)
m (Added step to copy kernel config file)
Line 67: Line 67:
 
   ARCH=arm
 
   ARCH=arm
 
   CROSS_COMPILE=arm-linux-
 
   CROSS_COMPILE=arm-linux-
 +
cp hammer-config .config
 
  make oldconfig
 
  make oldconfig
 
  make zImage
 
  make zImage

Revision as of 19:40, 6 January 2008

1) buildroot needs hammer-config copied to .config

2) if you dont have makeinfo installed need to patch /buildroot/toolchain_build_arm/binutils-2.17.50.0.17/missing to comment out line 302 "test -f $file || exit 1"

3) kernel is compiled outside of buildroot

4) copy hammer-config to .config

5) edit Makefile to set the cross compiler path properly

6) make oldconfig

7) make zImage

8) in apex "xr 0x30008000" then send the zImage (arch/arm/boot/zImage) via xmodem

8a) ubuntu 6.06 LTS needs lrzsz installed for xmodem etc. to work in minicom.

9) in apex "boot"

10) cat /proc/version ==> Linux version 2.6.22 (kenm@kenm-desktop) (gcc version 4.1.2) #1 Sat Sep 1 12:50:36 MDT 2007

11) now that you have a working kernel, you may want to configure it for networking, see How_to_Networking

Building under Ubuntu

The following steps were successful using the Gutsy Gibbon release (7.10) of ubuntu. All commands are executed from the command line.

First, you need to install the compilers and tools.

sudo apt-get install build-essential libncurses-dev bison flex texinfo zlib1g-dev gettext libssl-dev wget

Decide where you're going to build everything. I decided to create a directory called hammer in my home directory.

cd ~
mkdir -p hammer/source
cd hammer/source

Note: If you copy the whole directory tree from the CD, you'll get a directory called SOURCE which will be read-only. I prefer lowercase filenames, so I renamed the files. The files on the CD were also truncated to 8.3 filenames, so the names won't match what you see here.

Grab the latest files (these were from the Hammer_Board_Software page). This assumes that you're still in the source directory

wget http://www.elinux.org/images/4/4c/Buildroot-01032008.tar.gz
wget http://www.elinux.org/images/f/ff/Hammer-linux-2.6.22-09122007.diff.gz
wget http://www.elinux.org/images/e/ef/Hammer-kernel-config
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.gz

Build buildroot

tar xzf Buildroot-01032008.tar.gz
cd buildroot
cp Hammer-config .config
make menuconfig
   Exit from menuconfig without making any changes. This creates the .config.cmd file
make
cd ..

Add the cross compiler tools into your path. You may want to add this to your ~/.bashrc, although you should replace $(pwd) with the absolute path to your hammer/source directory.

export PATH=$(pwd)/buildroot/build_arm/staging_dir/bin:${PATH}

Build the kernel:

tar xzf linux-2.6.22.tar.gz
gunzip -c Hammer-linux-2.6.22-09122007.diff.gz | patch -p0
cd linux-2.6.22
edit the Makefile and add the following 2 lines to the top of the Makefile
  ARCH=arm
  CROSS_COMPILE=arm-linux-
cp hammer-config .config
make oldconfig
make zImage

The kernel can be found in arch/arm/boot/zImage