Compile a uBoot Kernel
From NAS-Central Buffalo - The Linkstation Wiki
(→Troubleshooting) |
|||
| Line 1: | Line 1: | ||
| - | This is a tutorial of how to compile a uBoot kernel from vanilla gentoo-sources. | + | This is a tutorial of how to compile a 2.6.21+ uBoot kernel from vanilla gentoo-sources, or from kernel.org sources. |
| + | While this article was originally written for Gentoo users, it is basically the same for Debian or others distros. | ||
| - | === | + | ===Prepare the build environment and tools=== |
| + | ====Gentoo==== | ||
| + | Emerge __what tools from portage?__ | ||
| + | ====Debian==== | ||
| + | apt-get install build-essential uboot-mkimage | ||
| + | |||
| + | ===Get the sources=== | ||
| + | ====Gentoo==== | ||
Right now (24 Nov 2008) the latest stable version is gentoo-sources-2.6.26-r2. | Right now (24 Nov 2008) the latest stable version is gentoo-sources-2.6.26-r2. | ||
| Line 14: | Line 22: | ||
# cd /usr/src | # cd /usr/src | ||
# ln -sfn linux-2.6.26-gentoo-r2 linux | # ln -sfn linux-2.6.26-gentoo-r2 linux | ||
| + | |||
| + | ====Debian and other==== | ||
| + | |||
| + | cd /usr/src | ||
| + | wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.1.tar.bz2 | ||
| + | tar xjvf linux-2.6.29.1.tar.bz2 | ||
| + | ln -sfn linux-2.6.29.1 linux | ||
| + | |||
===Edit your kernel config=== | ===Edit your kernel config=== | ||
| Line 25: | Line 41: | ||
Make sure the config is sane: | Make sure the config is sane: | ||
| - | # make menuconfig | + | # make ARCH=powerpc 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. Also, with recent filesystem developments, you may wish to consider '''ext4''' or others. |
| + | For troubleshooting ease, it is a good idea to enable Netconsole kernel access. Enable '''Device drivers -> Networking device support -> Network console logging support (EXPERIMENTAL) | ||
| + | ''' | ||
===Compile your kernel=== | ===Compile your kernel=== | ||
| Line 38: | Line 56: | ||
# 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 | ||
| + | |||
| + | If you have a LS1/HD, then change your .dtb filename as necessary. | ||
===Compile the dtb file=== | ===Compile the dtb file=== | ||
Revision as of 01:22, 10 April 2009
This is a tutorial of how to compile a 2.6.21+ uBoot kernel from vanilla gentoo-sources, or from kernel.org sources. While this article was originally written for Gentoo users, it is basically the same for Debian or others distros.
Contents |
Prepare the build environment and tools
Gentoo
Emerge __what tools from portage?__
Debian
apt-get install build-essential uboot-mkimage
Get the sources
Gentoo
Right now (24 Nov 2008) the latest stable version is gentoo-sources-2.6.26-r2.
If you want a newer kernel, add this line to /etc/portage/package.keywords:
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
Debian and other
cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.1.tar.bz2 tar xjvf linux-2.6.29.1.tar.bz2 ln -sfn linux-2.6.29.1 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 ARCH=powerpc 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. Also, with recent filesystem developments, you may wish to consider ext4 or others.
For troubleshooting ease, it is a good idea to enable Netconsole kernel access. Enable Device drivers -> Networking device support -> Network console logging support (EXPERIMENTAL)
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
If you have a LS1/HD, then change your .dtb filename as necessary.
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

