Difference between revisions of "Hacking Linux for chumby"
(→Building the kernel) |
|||
Line 2: | Line 2: | ||
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. | ||
− | =Alpha Prototype= | + | =Building and Installing a new chumby kernel= |
+ | |||
+ | ==Building 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''' | ||
+ | |||
+ | |||
+ | =DEPRECATED= | ||
+ | ==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 21: | Line 50: | ||
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. | ||
Line 84: | Line 113: | ||
drivers/mfd/chumby-tsc2100.ko | drivers/mfd/chumby-tsc2100.ko | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 14:38, 23 May 2008
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 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
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