Hacking Linux for chumby

From Chumby Wiki
Revision as of 11:08, 27 August 2006 by 24.30.157.165 (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Toolchain

# tar zxvf gcc-3.3.2-glibc-2.3.2.tar.gz
  • create Embedix dir and symlink
# mkdir -p /opt/Embedix/usr/local/arm-linux
# ln -s /usr /opt/Embedix/usr/local/arm-linux/gcc-3.3.2-glibc-2.3.2
  • if it does not already exist, open /usr/bin/arm-linux-make with your favorite editor and enter:
#!/bin/sh
echo make ARCH=arm CROSS=arm-linux- CC=arm-linux-gcc AR=arm-linux-ar NM=arm-linux-nm RANLIB=arm-linux-ranlib CXX=arm-linux-g++ AS=arm-linux-as LD=arm-linux-ld STRIP=arm-linux-strip BUILDCC=gcc BUILD_CC=gcc CC_FOR_BUILD=gcc "$@"
exec make ARCH=arm CROSS=arm-linux- CC=arm-linux-gcc AR=arm-linux-ar NM=arm-linux-nm RANLIB=arm-linux-ranlib CXX=arm-linux-g++ AS=arm-linux-as LD=arm-linux-ld STRIP=arm-linux-strip BUILDCC=gcc BUILD_CC=gcc CC_FOR_BUILD=gcc "$@"
  • set /usr/bin/arm-linux-make executable
# chmod +x /usr/bin/arm-linux-make

Kernel

The Alpha chumby runs a modified linux 2.4.20 kernel.

The BSP is distributed via a CD image, or from a link that is forthcoming.

Compiling the Kernel

  • create the parent directory
mkdir ~/imx21
cd ~/imx21
  • download copy the following iMX21 linux kernel source tarball to ~/imx21:

Linux-2.4.20.tar.bz2

  • untar/unbzip the iMX21 linux kernel source
[root@vm_machine imx21]# tar xvjf linux-2.4.20.tar.bz2
  • copy the following patch files to ~/imx21:

Patch_mx21_rel3.1
Patch_mx21_rel3.1_bugfix_20050923
Chumby_kernel.diff

  • change dirs to linux-2.4.20 and apply patches:
[root@vm_machine imx21]# cd linux-2.4.20
[root@vm_machine linux-2.4.20]# cat ../Patch_mx21_rel3.1 |patch -p1
[root@vm_machine linux-2.4.20]# cat ../Patch_mx21_rel3.1_bugfix_20050923 |patch -p1
[root@vm_machine linux-2.4.20]# cat ../Chumby_kernel.diff |patch -p1
  • copy the mx2.config to .config
[root@vm_machine linux-2.4.20]# cp mx2.config .config
  • run 'make menuconfig' and exit, saving the file (this step is necessary in order to create the autoconf target)
[root@vm_machine linux-2.4.20]# make menuconfig
  • run 'make dep' in order to create dependency tree
[root@vm_machine linux-2.4.20]# make dep
  • build the image by running 'make Image'
[root@vm_machine linux-2.4.20]# make Image
  • the following Image should be created:
[root@vm_machine linux-2.4.20]# ls -la arch/arm/boot/Image
-rwxr-xr-x    1 root     root      2176064 Apr 19 18:49 arch/arm/boot/Image