Tip for Debian Kernel upgrades on Sheevaplug

If, like me, you have a Sheevaplug (an armel device) with Debian Squeeze on it, here is a small tip for kernel upgrades...

Since my first installation of Debian on this computer, I was surprised to see that the kernel was always the one that came from the installer (2.6.32-trunk). I just discovered that my /boot/uImage and /boot/uInitrd files were the same than during the first installation, even if aptitude installed 2.6.32-5 kernel image package.

In fact, new initrd and kernel image files were generated during the post-inst of the kernel image package. But, I had to remember that sheevaplug do not use initrd and classic kernel images. It's bootloader, uBoot use a special image file format that can be generated with mkimage. Even if update-initramfs is launched during the kernel package installation, nothing is automagically done with the uBoot images. You have to use mkimage.

But, mkimage is nearly a low level tool: you have to learn lots of configuration options to generate the right files because uBoot can be installed on a lot of different computers. With further investigations, I found the flash-kernel script from Martin Michlmayr that does the configuration of mkimage for the user, depending on the machine where Debian is installed. All you have to do (as root) is:

  • flash-kernel 2.6.32-5-kirkwood for generating the new /boot/uImage and /boot/uInitrd files (backups are generated too)
  • then reboot your computer !

Now, my Sheevaplug uses 2.6.32-5-kirkwood... until the next kernel update !