Specifications

# git pull git://git.kernel.org/pub/scm/linux/
¯
kernel/git/torvalds/linux-2.6.git
# cd linux-2.6
# cp arch/arm/configs/am200epdkit_defconfig .config
# make CROSS_COMPILE=arm-linux- ARCH=arm oldconfig
# make CROSS_COMPILE=arm-linux- ARCH=arm menuconfig
Then, select Device Drivers→Graphics support→Support for
framebuffer devices, and make sure to turn on the module
option for AM200 E-Ink EPD devkit support. Here’s the next
step, which builds some binaries:
# make CROSS_COMPILE=arm-linux- ARCH=arm
# arm-linux-objcopy -O binary -R .note -R .comment
¯
-S arch/arm/boot/compressed/vmlinux linux.bin
# mkimage -A arm -O linux -T kernel -C none -a 0xa0008000
¯
-e 0xa0008000 -n "uImage" -d linux.bin arch/arm/boot/uImage
This uImage file is what we will feed to the bootloader for
our kernel. We also need to copy the modules that are used
by the framebuffer drivers that we need to support X. We
need to transfer these files to the SD card. The simplest way
is to use an SD card reader and transfer it using your normal
desktop mechanism. For example:
# cp arch/arm/boot/uImage /media/sd/
# cp drivers/video/metronomefb.ko drivers/video/am200epd.ko
¯
drivers/video/sys*.ko drivers/video/fb_sys_fops.ko /media/sd/
Once that’s done, you’re ready to boot your new kernel on
the Gumstix. To do this, you need to interrupt the normal boot
process. On the Gumstix serial console, type
reboot
, and press
any key to interrupt the normal boot process.
After that, you can use the following sequence of u-boot
commands to let u-boot read the SD card, then retrieve and
load the kernel into memory and finally boot from this memory:
# reboot
The system is going down NOW !!
Sending SIGTERM to all processes.
Please stand by while rebooting the system.
Restarting system.
U-Boot 1.1.4 (Nov 6 2006 - 11:20:03) - 400 MHz - 1161
*** Welcome to Gumstix ***
U-Boot code: A3F00000 -> A3F25DE4 BSS: -> A3F5AF00
RAM Configuration:
Bank #0: a0000000 64 MB
Flash: 16 MB
SMC91C1111-0
Can't overwrite "serial#"
Net: SMC91C1111-0
Hit any key to stop autoboot: 0
GUM>
GUM> mmcinit
MMC found. Card description is:
Manufacturer ID = 464450
HW/FW Revision = c c
Product Name = Name 3070FDP?
Serial Number = 7a6a16
Month = 3
Year = 2007
GUM> fatload mmc 1 a2000000 uimage.bin
reading uimage.bin
1094024 bytes read
GUM> bootm
## Booting image at a2000000 ...
Image Name: uImage
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1093960 Bytes = 1 MB
Load Address: a0008000
Entry Point: a0008000
OK
Starting kernel ...
Uncompressing Linux............
.......done, booting the kernel.
Welcome to the Gumstix Linux Distribution!
gumstix login: root
Password:
Welcome to Gumstix!
# uname -a
Linux gumstix 2.6.25gum-00000-ga052754 #16 PREEMPT
¯
Wed Apr 30 22:54:35 EDT 2008 armv5tel unknown
Success! We now have booted a kernel with everything we
need. The next step is adding Xfbdev. With OpenEmbedded,
this step is fairly straightforward; simply execute the follow-
ing command:
# bitbake xserver-kdrive
This generates an appropriate package (.ipk) file in the
gumstix_build/tmp/deploy/ipk/armv5t/ directory. It should look
something like xserver-kdrive-fbdev_1.4-r1_armv5te.ipk. Copy
this file to the SD card, and use the following command to
install it on your Gumstix:
# ipkg install /mnt/mmc/xserver-kdrive-fbdev_1.4-r1_armv5te.ipk
If you have buildroot, the process is somewhat similar, but
you need to do some in-build munging. First, do the following:
# cd gumstix-buildroot
# make menuconfig
# # Go to Package Selection for Target-> then enable
# # the checkbox for the item labeled TinyX.
# # This is the other name for Xfbdev.
# make
This generates the Xfbdev and associated applications,
such as xterm, XLogo, xeyes and others. You can copy these to
www.linuxjournal.com august 2008 | 59