Difference between revisions of "Hacking Linux for chumby"
(→Building the wifi driver) |
(Indent all headlines by one to free up the single-level h1 for the title of the page) |
||
Line 1: | Line 1: | ||
− | =Existing Software= | + | ==Existing Software== |
See existing [[Chumby Software Applications, Scripts and Tools]] already on your Chumby stock linux distro. | See existing [[Chumby Software Applications, Scripts and Tools]] already on your Chumby stock linux distro. | ||
− | =Building and Installing a new chumby kernel= | + | ==Building and Installing a new chumby kernel== |
− | ==Building the chumby 1.7 kernel== | + | ===Building the chumby 1.7 kernel=== |
− | ===Installing the toolchain=== | + | ====Installing the toolchain==== |
First, install the [[GNU Toolchain]] (gcc 4.3.2) | First, install the [[GNU Toolchain]] (gcc 4.3.2) | ||
− | ===Build the kernel=== | + | ====Build the kernel==== |
The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.7: | The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.7: | ||
Line 25: | Line 25: | ||
− | ==Building the chumby 1.6 kernel== | + | ===Building the chumby 1.6 kernel=== |
− | ===Installing the toolchain=== | + | ====Installing the toolchain==== |
First, install the [http://wiki.chumby.com/mediawiki/index.php/GNU_Toolchain#GCC_4.1.2b GCC 4.1.2b toolchain] | First, install the [http://wiki.chumby.com/mediawiki/index.php/GNU_Toolchain#GCC_4.1.2b GCC 4.1.2b toolchain] | ||
− | ===Build the kernel=== | + | ====Build the kernel==== |
The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.6: | The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.6: | ||
Line 47: | Line 47: | ||
− | ==Building the chumby 1.5 kernel== | + | ===Building the chumby 1.5 kernel=== |
− | ===Installing the toolchain=== | + | ====Installing the toolchain==== |
First, install the [http://wiki.chumby.com/mediawiki/index.php/GNU_Toolchain#GCC_4.1.2b GCC 4.1.2b toolchain] | First, install the [http://wiki.chumby.com/mediawiki/index.php/GNU_Toolchain#GCC_4.1.2b GCC 4.1.2b toolchain] | ||
− | ===Build the kernel=== | + | ====Build the kernel==== |
The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.5: | The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.5: | ||
Line 69: | Line 69: | ||
Be sure you build with the correct toolchain! | Be sure you build with the correct toolchain! | ||
− | ==Installing the kernel image== | + | ===Installing the kernel image=== |
* create an '''update2''' directory on the root of a USB storage drive | * create an '''update2''' directory on the root of a USB storage drive | ||
Line 79: | Line 79: | ||
− | =Building the Wi-Fi driver= | + | ==Building the Wi-Fi driver== |
'''Note''': this assumes you've built the chumby 1.7 linux kernel. | '''Note''': this assumes you've built the chumby 1.7 linux kernel. | ||
Line 93: | Line 93: | ||
<br/><br/><br/> | <br/><br/><br/> | ||
− | =DEPRECATED= | + | ==DEPRECATED== |
− | ==Alpha Prototype== | + | ===Alpha Prototype=== |
The Alpha Prototype chumby runs a modified linux 2.4.20 kernel. | The Alpha Prototype chumby runs a modified linux 2.4.20 kernel. | ||
Line 113: | Line 113: | ||
If all goes well, you should end up with an uncompressed kernel image at arch/arm/boot/Image. | If all goes well, you should end up with an uncompressed kernel image at arch/arm/boot/Image. | ||
− | ==Ironforge== | + | ===Ironforge=== |
The "Ironforge" production chumby runs Linux 2.6.16 kernel. | The "Ironforge" production chumby runs Linux 2.6.16 kernel. | ||
Revision as of 15:09, 31 October 2010
Contents
Existing Software
See existing Chumby Software Applications, Scripts and Tools already on your Chumby stock linux distro.
Building and Installing a new chumby kernel
Building the chumby 1.7 kernel
Installing the toolchain
First, install the GNU Toolchain (gcc 4.3.2)
Build the kernel
The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.7:
mkdir kernel cd kernel wget http://files.chumby.com/source/ironforge/build396/align.pl wget http://files.chumby.com/source/ironforge/build1.7.1649/linux-2.6.16-chumby-1.7.0.tar.gz tar zxvf linux-2.6.16-chumby-1.7.0.tar.gz cd linux-2.6.16-chumby-1.7.0 ARCH=arm BOARD=mx21ads CROSS_COMPILE=arm-linux- make perl ../align.pl arch/arm/boot/zImage zip k1.bin.zip arch/arm/boot/zImage
Building the chumby 1.6 kernel
Installing the toolchain
First, install the GCC 4.1.2b toolchain
Build the kernel
The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.6:
mkdir kernel cd kernel wget http://files.chumby.com/source/ironforge/build396/align.pl wget http://files.chumby.com/source/ironforge/build733/linux-2.6.16-chumby-1.6.0.tar.gz tar zxvf linux-2.6.16-chumby-1.6.0.tar.gz cd linux-2.6.16-chumby-1.6.0 ARCH=arm BOARD=mx21ads CROSS_COMPILE=arm-linux- make perl ../align.pl arch/arm/boot/zImage zip k1.bin.zip arch/arm/boot/zImage
Building the chumby 1.5 kernel
Installing the toolchain
First, install the GCC 4.1.2b toolchain
Build the kernel
The following instructions will compile the Linux 2.6.16 kernel shipped with chumby firmware version 1.5:
mkdir kernel cd kernel wget http://files.chumby.com/source/ironforge/build396/align.pl wget http://files.chumby.com/source/ironforge/build565/linux-2.6.16-chumby-1.5.0.tar.gz tar zxvf linux-2.6.16-chumby-1.5.0.tar.gz cd linux-2.6.16-chumby-1.5.0 ARCH=arm BOARD=mx21ads CROSS_COMPILE=arm-linux- make perl ../align.pl arch/arm/boot/zImage zip k1.bin.zip arch/arm/boot/zImage
Be sure you build with the correct toolchain!
Installing the kernel image
- create an update2 directory on the root of a USB storage drive
- copy k1.bin.zip to the update2 directory on the USB storage drive
- insert the USB storage drive into chumby
- hold the touch screen down and power on the chumby (keep holding the screen for 5 seconds)
- once the device has booted into special options mode, click Install updates
- click Install from USB flash drive
Building the Wi-Fi driver
Note: this assumes you've built the chumby 1.7 linux kernel.
If you've followed the steps above to build the chumby 1.7 linux kernel, you should be able to build the Ralink rt73 driver by doing the following:
cd kernel wget http://files.chumby.com/source/ironforge/build1.7.1649/rt73-chumby-1.7.0.tar.gz tar zxvf rt73-chumby-1.7.0.tar.gz cd rt73-chumby-1.7.0/Module/ make ARCH=arm CROSS_COMPILE=arm-linux- KERNDIR=../../linux-2.6.16-chumby-1.7.0 arm
DEPRECATED
Alpha Prototype
The Alpha Prototype chumby runs a modified linux 2.4.20 kernel.
Compiling the Kernel
First, install the GCC Toolchain (gcc 3.3.2) - this toolchain is only for use with the prototypes.
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.
Ironforge
The "Ironforge" production chumby runs Linux 2.6.16 kernel.
First install the GNU Toolchain (gcc 4.1.2) - this toolchain is for use with the production units. Older toolchains may not work.
In order to build the chumby kernel, you can download the kernel source from linux-2.6.16-chumby-1.0.tar.gz and build by doing the following, NOT as root, but as a normal user.
$ mkdir kernel $ cd kernel $ tar zxvf linux-2.6.16-chumby-1.0.tar.gz $ cd linux-2.6.16 $ cp arch/arm/configs/mx21ads_defconfig .config $ ARCH=arm BOARD=mx21ads CROSS_COMPILE=arm-linux- make oldconfig (select 'Y' when asked if you wish to build in the 224 color Turbochef logo) $ ARCH=arm BOARD=mx21ads CROSS_COMPILE=arm-linux- make
If all goes well, you should end up with a compressed kernel image at arch/arm/boot/zImage and all of loadable kernel modules under the drivers directory.
By default, there are only 3 drivers built with this configuration:
$ find drivers -name *.ko
Which should return:
drivers/char/chumby_accel.ko drivers/char/chumby_sense1.ko drivers/char/chumby_timer.ko drivers/mfd/chumby-tsc2100.ko
Warning, this configuration will not get you a working kernel! Do not use just yet...
You might want to enable more modules to get the recommended:
# find drivers -name *.ko
Which should return:
drivers/media/video/cpia.ko drivers/media/video/compat_ioctl32.ko drivers/media/video/cpia_usb.ko drivers/media/video/v4l1-compat.ko drivers/media/video/v4l2-common.ko drivers/media/video/videodev.ko drivers/bluetooth/hci_usb.ko drivers/bluetooth/hci_vhci.ko drivers/video/console/bitblit.ko drivers/video/console/fbcon.ko drivers/video/console/fbcon_ccw.ko drivers/video/console/fbcon_cw.ko drivers/video/console/fbcon_rotate.ko drivers/video/console/fbcon_ud.ko drivers/video/console/font.ko drivers/video/console/softcursor.ko drivers/char/chumby_accel.ko drivers/char/chumby_sense1.ko drivers/char/chumby_timer.ko drivers/usb/media/dsbr100.ko drivers/usb/net/asix.ko drivers/usb/net/cdc_ether.ko drivers/usb/net/pegasus.ko drivers/usb/net/usbnet.ko drivers/usb/input/usbhid.ko drivers/mfd/chumby-tsc2100.ko