Skip to content

GuruPlug Kernel

GuruPlug Server Plus Kernel Notes

Kernel Sources

Compile

make guruplug_config
make menuconfig
make-kpkg kernel_image kernel_headers
make uImage

Note: a suitable Kernel image can be downloaded below.

Installation

  • PlugWiki:Reflashing_images_on_the_GuruPlug
  • in u-boot
  • uImage on tftp server on another machine, that has also a rarpd running (Debian packages tftpd, rarpd, file /srv/tftp/uImage, and /etc/ethers with the MAC and IP addresses of the plug)

Testing

  • load the image into RAM, and boot into a bash
rarp 0x6400000 uImage
setenv bootargs console=ttyS0,115200 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs init=/bin/bash
bootm 0x6400000

Production

  • boot into the system using a known running kernel (the shipped one) and install the linux-image and linux-headers .deb packages (see Downloads below), then reboot and go into u-boot
  • load image into RAM, save it to the flash, and boot the system
  • Debian on partition 4 of the SD card:
rarp 0x6400000 uImage
nand erase 0x100000 0x400000
nand write.e 0x6400000 0x100000 0x400000
setenv bootargs 'console=ttyS0,115200 rootwait root=/dev/sdb4'
saveenv
boot

Here’s a dump of my u-boot environment variables:

GuruPlug>> printenv
bootdelay=3
baudrate=115200
ethact=egiga0
ethaddr=00:50:43:01:82:38
eth1addr=00:50:43:01:82:39
bootargs_old=console=ttyS0,115200 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
bootargs=console=ttyS0,115200 rootwait root=/dev/sdb4
bootcmd=nand read.e 0x6400000 0x100000 0x400000; bootm 0x6400000;
stdin=serial
stdout=serial
stderr=serial

Download

Advanced

  • Using a kernel image and an initrd image would be nice.
  • The kernel flash partition is too small (4MiB)
    • Kernel image: ~2.5 MiB
    • initrd image: ~3.5 MiB
mkimage -n linux-2.6.33.3flipflip -A arm -O linux -T kernel -C none -a 0x000800000 -d /boot/vmlinuz-2.6.33.3flipflip /boot/uImage
sed -i '/MODULES/s/most/dep/' /etc/initramfs-tools/initramfs.conf 
update-initramfs -v -c -k 2.6.33.3flipflip
mkimage -n '2.6.33.3flipflip initrd' -A arm -O linux -T ramdisk -C none -a 0x01100000 -d /boot/initrd.img-2.6.33.3flipflip /boot/uInitrd

And then boot using something like this:

setenv bootargs console=ttyS0,115200 rootwait root=/dev/sdc4
setenv bootcmd 'usb start; ext2load usb 1:4 0x1100000 /boot/uInitrd; ext2load usb 1:4 0x0800000 /boot/uImage; bootm 0x000800000 0x01100000;'
boot

See also

created: 2010-05-18, updated: 2015-09-16