Difference between revisions of "Compile a uBoot Kernel"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
Line 7: Line 7:
  
 
then download the kernel sources
 
then download the kernel sources
# emerge -ua gentoo-sources
+
# emerge -ua gentoo-sources
  
 
make a link to the kernel sources
 
make a link to the kernel sources
# cd /usr/src
+
# cd /usr/src
# ln -sfn linux-2.6.26-gentoo-r2 linux
+
# ln -sfn linux-2.6.26-gentoo-r2 linux
  
  
Line 19: Line 19:
  
 
Clean up before you begin
 
Clean up before you begin
# cd /usr/src/linux
+
# cd /usr/src/linux
# make mrproper
+
# make mrproper
  
 
Use the default KuroBox config
 
Use the default KuroBox config
# cp arch/powerpc/configs/linkstation_defconfig .config
+
# cp arch/powerpc/configs/linkstation_defconfig .config
  
 
Make sure the config is sane
 
Make sure the config is sane
# make menuconfig
+
# 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.
 
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.
  
Line 33: Line 33:
 
===Compile your kernel===
 
===Compile your kernel===
  
# make uImage && make modules && make modules_install
+
# make uImage && make modules && make modules_install
  
 
Sit back and listen to music.  Go to the store.  Wash the dog.
 
Sit back and listen to music.  Go to the store.  Wash the dog.
Line 40: Line 40:
 
===Backup your old kernel and dtb file===
 
===Backup your old kernel and dtb file===
  
# cp /boot/uImage /boot/uImage.bak
+
# cp /boot/uImage /boot/uImage.bak
# cp /boot/kuroboxHG.dtb /boot/kuroboxHG.dtb.bak
+
# cp /boot/kuroboxHG.dtb /boot/kuroboxHG.dtb.bak
  
  
Line 47: Line 47:
 
===Compile the dtb file===
 
===Compile the dtb file===
  
# cd /usr/src/linux/arch/powerpc/boot/dts
+
# cd /usr/src/linux/arch/powerpc/boot/dts
# ../dtc -I dts -O dtb -V 16 -o /tmp/kuroboxHG.dtb kuroboxHG.dts
+
# ../dtc -I dts -O dtb -V 16 -o /tmp/kuroboxHG.dtb kuroboxHG.dts
# cp /tmp/kuroboxHG.dtb /boot/kuroboxHG.dtb
+
# cp /tmp/kuroboxHG.dtb /boot/kuroboxHG.dtb
  
  
Line 55: Line 55:
 
===Install the kernel===
 
===Install the kernel===
  
# cp /usr/src/linux/arch/powerpc/boot/uImage /boot/uImage
+
# cp /usr/src/linux/arch/powerpc/boot/uImage /boot/uImage
  
  
Line 61: Line 61:
 
===Reboot===
 
===Reboot===
  
# reboot
+
# reboot
  
 
With any luck, you'll be booting your new kernel.
 
With any luck, you'll be booting your new kernel.
Line 70: Line 70:
 
If something goes wrong, simply boot in EM mode and copy your old kernel back.
 
If something goes wrong, simply boot in EM mode and copy your old kernel back.
  
# cp /boot/uImage.bak /boot/uImage
+
# cp /boot/uImage.bak /boot/uImage
# cp /boot/kuroboxHG.dtb.bak /boot/kuroboxHG.dtb
+
# cp /boot/kuroboxHG.dtb.bak /boot/kuroboxHG.dtb
# echo -n "OKOK" > /dev/fl3
+
# echo -n "OKOK" > /dev/fl3

Revision as of 15:31, 24 November 2008

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

Contents

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

# emerge -ua gentoo-sources

make a link to the kernel sources

# cd /usr/src
# ln -sfn linux-2.6.26-gentoo-r2 linux



Edit your kernel config

Clean up before you begin

# cd /usr/src/linux
# make mrproper

Use the default KuroBox config

# cp arch/powerpc/configs/linkstation_defconfig .config

Make sure the config is sane

# 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

# 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

# cp /boot/uImage /boot/uImage.bak
# cp /boot/kuroboxHG.dtb /boot/kuroboxHG.dtb.bak


Compile the dtb file

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


Install the kernel

# cp /usr/src/linux/arch/powerpc/boot/uImage /boot/uImage


Reboot

# reboot

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


Troubleshooting

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

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