Difference between revisions of "Hacking Linux for chumby"
From Chumby Wiki
Line 1: | Line 1: | ||
=Toolchain= | =Toolchain= | ||
− | * download the [http:// | + | * download the [http://files.chumby.com/resources/Gcc-3.3.2-glibc-2.3.2.tar.gz Chumby Toolchain] to <code>/usr</code> |
* extract | * extract | ||
# tar zxvf gcc-3.3.2-glibc-2.3.2.tar.gz | # tar zxvf gcc-3.3.2-glibc-2.3.2.tar.gz | ||
Line 26: | Line 26: | ||
cd ~/imx21 | cd ~/imx21 | ||
*download copy the following iMX21 linux kernel source tarball to ~/imx21: | *download copy the following iMX21 linux kernel source tarball to ~/imx21: | ||
− | [http:// | + | [http://files.chumby.com/resources/Linux-2.4.20.tar.bz2 Linux-2.4.20.tar.bz2] |
* untar/unbzip the iMX21 linux kernel source | * untar/unbzip the iMX21 linux kernel source | ||
[root@vm_machine imx21]# tar xvjf linux-2.4.20.tar.bz2 | [root@vm_machine imx21]# tar xvjf linux-2.4.20.tar.bz2 | ||
* copy the following patch files to ~/imx21: | * copy the following patch files to ~/imx21: | ||
− | [http:// | + | [http://files.chumby.com/resources/Patch_mx21_rel3.1 Patch_mx21_rel3.1]<br> |
− | [http:// | + | [http://files.chumby.com/resources/Patch_mx21_rel3.1_bugfix_20050923 Patch_mx21_rel3.1_bugfix_20050923]<br> |
− | [http:// | + | [http://files.chumby.com/resources/Chumby_kernel.diff Chumby_kernel.diff] |
*change dirs to linux-2.4.20 and apply patches: | *change dirs to linux-2.4.20 and apply patches: | ||
[root@vm_machine imx21]# cd linux-2.4.20 | [root@vm_machine imx21]# cd linux-2.4.20 |
Revision as of 18:52, 18 January 2007
Toolchain
- download the Chumby Toolchain to
/usr
- extract
# 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:
- 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