HowTo Build Your Own Custom Kernel
From Buffalo NAS-Central
Contents |
[edit] Prerequisite
An i686 host running some flavor of Linux.
[edit] Download All the Required Tarballs
First, download the cross toolchain (arm-2005q3-2-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2), mkimage, and the source archive (linux-2.6.12_lsp.1.7.8.tgz):
$ cd /some_directory $ wget -H -c http://downloads.nas-central.org/LSPro_ARM9/DevelopmentTools/CrossToolchains/CodeSourcery/arm-2005q3-2-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 $ wget -H -c http://downloads.nas-central.org/LSPro_ARM9/DevelopmentTools/CrossToolchains/mkimage $ wget -H -c http://downloads.nas-central.org/LSPro_ARM9/GPL/gpl_ls-gl/linux-2.6.12_lsp.1.7.8.tgz
If the files were not at the locations indicated above, fear not! Just look in every directory on the server (like I did).
[edit] Prepare the Environment
Then, install (i.e., untar) the toolchain and mkimage:
$ cd /some_path $ tar -xjf /some_directory/arm-2005q3-2-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 $ cd bin $ export PATH=`pwd`:$PATH $ cp -p /some_directory/mkimage . $ chmod a+rx mkimage
Strictly speaking mkimage should not go into /some_path/bin. But, hey...
Now untar the source of the kernel in some directory:
$ cd /some_directory $ tar -xzf linux-2.6.12_lsp.1.7.8.tgz $ cd linux-2.6.12_lsp.1.7.8
[edit] Ready, Get Set, Build!
In some_directory you can find the configs Buffalo used to build the kernels shipped with their various firmwares:
$ ls buffalo/
and choose one to use as a template for yours.
$ cp buffalo/buffalo_lsgl_arm_110.config .config
Then you can modify the configuration as you want:
$ make menuconfig
and start up the build!
$ make uImage
If you selected some features to be built as modules, they need to be prepared too.
$ make modules
The kernel and modules will be ready at arch/arm/boot/uImage.
Enjoy!
Categories: Development | Howto | Kernel | LSPro
