Difference between revisions of "Hacking Linux for chumby"

From Chumby Wiki
Jump to: navigation, search
(Kernel)
Line 16: Line 16:
 
=Kernel=
 
=Kernel=
  
The Alpha chumby runs a modified linux 2.4.20 kernel.
+
The Alpha Prototype 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'''
 
'''Compiling the Kernel'''
  
* create the parent directory
+
In order to build the chumby kernel, you can download the kernel source from [http://files.chumby.com/resources/chumby_kernel.tgz chumby_kernel.tgz] and build by doing the following:
mkdir ~/imx21
+
 
cd ~/imx21
+
  # mkdir kernel
*download copy the following iMX21 linux kernel source tarball to ~/imx21:
+
  # cd kernel
[http://files.chumby.com/resources/Linux-2.4.20.tar.bz2 Linux-2.4.20.tar.bz2]
+
  # tar zxvf chumby_kernel.tgz
* untar/unbzip the iMX21 linux kernel source
+
  # make menuconfig
[root@vm_machine imx21]# tar xvjf linux-2.4.20.tar.bz2
+
  (then immediately exit and save the config)
* copy the following patch files to ~/imx21:
+
  # make dep
[http://files.chumby.com/resources/Patch_mx21_rel3.1 Patch_mx21_rel3.1]<br>
+
  # make Image
[http://files.chumby.com/resources/Patch_mx21_rel3.1_bugfix_20050923 Patch_mx21_rel3.1_bugfix_20050923]<br>
+
 
[http://files.chumby.com/resources/Chumby_kernel.diff Chumby_kernel.diff]
+
If all goes well, you should end up with an uncompressed kernel image at arch/arm/boot/Image.
*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
+

Revision as of 08:27, 5 April 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 Prototype chumby runs a modified linux 2.4.20 kernel.

Compiling the Kernel

In order to build the chumby kernel, you can download the kernel source from chumby_kernel.tgz and build by doing the following:

# mkdir kernel
# cd kernel
# tar zxvf chumby_kernel.tgz
# make menuconfig
(then immediately exit and save the config)
# make dep
# make Image

If all goes well, you should end up with an uncompressed kernel image at arch/arm/boot/Image.