Compile a uBoot Kernel

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 15:27, 24 November 2008 by Sdnalloh (Talk | contribs)

Jump to: navigation, search

This is a tutorial of how to compile a uBoot kernel from vanilla gentoo-sources.

Get the sources

Right now (24 Nov 2008) the latest stable version is gentoo-sources-2.6.26-r2. If you want a newer kernel, simply edit /etc/portage/package.keywords and add this line: sys-kernel/gentoo-sources ~ppc

then download the kernel sources

  1. emerge -ua gentoo-sources

make a link to the kernel sources

  1. cd /usr/src
  2. ln -sfn linux-2.6.26-gentoo-r2 linux

Edit your kernel config

Clean up before you begin

  1. cd /usr/src/linux
  2. make mrproper

Use the default KuroBox config

  1. cp arch/powerpc/configs/linkstation_defconfig .config

Make sure the config is sane

  1. make menuconfig

The default config is minimal. You'll have to enable support for any non-standard things you may be using. I use reiserfs and netatalk, so I enabled support for that filesystem and also for appletalk.

Compile your kernel

  1. make uImage && make modules && make modules_install

Sit back and listen to music. Go to the store. Wash the dog.

Backup your old kernel and dtb file

  1. cp /boot/uImage /boot/uImage.bak
  2. cp /boot/kuroboxHG.dtb /boot/kuroboxHG.dtb.bak

Compile the dtb file

  1. cd /usr/src/linux/arch/powerpc/boot/dts
  2. ../dtc -I dts -O dtb -V 16 -o /tmp/kuroboxHG.dtb kuroboxHG.dts
  3. cp /tmp/kuroboxHG.dtb /boot/kuroboxHG.dtb

Install the kernel

  1. cp /usr/src/linux/arch/powerpc/boot/uImage /boot/uImage


  1. reboot

With any luck, you'll be booting your new kernel.


If something goes wrong, simply boot in EM mode and copy your old kernel back.

  1. cp /boot/uImage.bak /boot/uImage
  2. cp /boot/kuroboxHG.dtb.bak /boot/kuroboxHG.dtb
  3. echo -n "OKOK" > /dev/fl3