使用 Ubuntu/MacOS 一段時間了,逐漸習慣把系統管理雜事丟給 OS 去處理,專注於自己的工作開發,也比較不盲目追求 kernel 的版本更新。
近來使用 LTP 時遇到自行編譯 Ubuntu kernel 的需求,總手動編譯、複製檔案與修改 grub.cfg。猜想 Ubuntu 應該有更方便的工具用來包 kernel.deb 檔,求助 google 大神後看到 kernel-package 這個套件,以及相關的 scripts。
科技果然來自人性,重複煩雜的工作就應該丟給電腦去自動化處理。
操作大致參考 How to compile a kernel on Ubuntu 10.04
簡單紀錄如下:
install necessary packages for building kernel image
get kernel source tree
start with the same .config ad the currently running kernel
packing debain kernel package using kernel-package
install customized kernel
generate initrd to your kernel image
find the forder name to your kernel modules
add the initrdfs image to the grub.cfg
now, just reboot!
your new kernel should automatically load.
下篇來寫寫 Linux Test Project 的簡單心得
近來使用 LTP 時遇到自行編譯 Ubuntu kernel 的需求,總手動編譯、複製檔案與修改 grub.cfg。猜想 Ubuntu 應該有更方便的工具用來包 kernel.deb 檔,求助 google 大神後看到 kernel-package 這個套件,以及相關的 scripts。
科技果然來自人性,重複煩雜的工作就應該丟給電腦去自動化處理。
操作大致參考 How to compile a kernel on Ubuntu 10.04
簡單紀錄如下:
install necessary packages for building kernel image
sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev
get kernel source tree
download from kernel.orgor
tar jxvf kernel-x.x.x.tar.bz2
cd kernel-x.x.x
sudo apt-get install linux-source
tar jxvf /usr/src/linux-source-x.x.x.tar.bz2
cd linux-source-x.x.x
start with the same .config ad the currently running kernel
make oldconfigor
make menuconfig
cp -vi /boot/config-'uname -r' .config
make menuconfig
packing debain kernel package using kernel-package
sudo fakeroot make-kpkg clean
sudo fakeroot make-kpkg --initrd --append-to-version=-ltp kernel-image kernel-headers
--initrd create a image package suitable for initrd
install customized kernel
cd ..
sudo dpkg -i linux-image-x.x.x-ltp.deb
sudo dpkg -i linux-headers-x.x.x-ltp.deb
generate initrd to your kernel image
find the forder name to your kernel modules
ls /lib/modules
sudo update-initramfs -c -k x.x.x-ltp
add the initrdfs image to the grub.cfg
sudo update-grub
now, just reboot!
your new kernel should automatically load.
uname -r
下篇來寫寫 Linux Test Project 的簡單心得