Difference between revisions of "Hacking Linux for chumby"

From Chumby Wiki
Jump to: navigation, search
Line 1: Line 1:
 
=Toolchain=
 
=Toolchain=
  
* download the [http://www.chumby.com/resources/Gcc-3.3.2-glibc-2.3.2.tar.gz Chumby Toolchain] to <code>/usr</code>
+
* 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://www.chumby.com/resources/Linux-2.4.20.tar.bz2 Linux-2.4.20.tar.bz2]
+
[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://www.chumby.com/resources/Patch_mx21_rel3.1 Patch_mx21_rel3.1]<br>
+
[http://files.chumby.com/resources/Patch_mx21_rel3.1 Patch_mx21_rel3.1]<br>
[http://www.chumby.com/resources/Patch_mx21_rel3.1_bugfix_20050923 Patch_mx21_rel3.1_bugfix_20050923]<br>
+
[http://files.chumby.com/resources/Patch_mx21_rel3.1_bugfix_20050923 Patch_mx21_rel3.1_bugfix_20050923]<br>
[http://www.chumby.com/resources/Chumby_kernel.diff Chumby_kernel.diff]
+
[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

# 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