有時需要一些個人需求,因此必須重新編譯kernel,以支援新的功能或者需求,因此需要重新編譯kernel,筆者參考了許多網路資訊後,最近也編了幾次核心,就貼出來和大家分享,如果有誤,也請高手指教。
1.$ sudo vim /etc/apt/sources.list <=可以換成自己比較喜歡的套件來源位址,小弟偏好使用高速計算機中心的套件來源。
2.$ sudo apt-get update <=更新到目前最新的套件資訊。
3.$ sudo apt-get install debhelper modutils kernel-package libncurses5-dev libncurses5 build-essential bin86 linux-kernel-devel fakeroot <=安裝編譯核心所需的相關套件
4.下載Kernel-Sources,在此筆者是使用手動下載2.6.24核心原始碼與Patch的方式來做說明。
前往ftp://free.nchc.org.tw/ubuntu/pool/main/l/linux/ ,下載linux_2.6.24.orig.tar.gz與linux_2.6.24-21.42.diff.gz,並將此兩個檔案下載到/usr/src的目錄底下。
5.$ sudo tar zxvf linux_(輸入你下載或安裝的Kernel Source版號).orig.tar.gz
6.$ sudo cd linux_xxxxx(xxx是解壓的版號)
7.$ /usr/src/linux-xxxxx/sudo zcat(bzip2 -dc) ../linux-2.6.24-21.42.diff.gz(bz2) | patch -p1 <=將最新版本的Patch安裝上去
8.$ sudo cp -vi /boot/config-`uname -r` .config
9.$/usr/src/linux-xxxxx/ sudo make menuconfig
10.會出現文字模式的選單,請自行選擇所需要項目,必要的可以考慮編譯成核心(*),非必要的可以選擇編譯成模組(M),最後要記得儲存configure
11.$/usr/src/linux-xxxxx/make-kpkg clean <=清理核心的動作,如果曾經編譯過,非必要,但建議
12. $/usr/src/linux-xxxxx/fakeroot make-kpkg --initrd --revision=2.6.24-21.42-1(=後面輸入自己想要的編號或文字) kernel_image kernel_headers
13.喝個水,看的報紙,上個網...waiting(依所選的項目多寡與系統處理速度決定時間的快慢)
14.如果編譯完成後,會在/usr/src/的目錄下看到linux-image-xxxxx.deb與linux-headers-xxxxx.deb的檔案
15.sudo dpkg -i linux-*.deb <=就會將剛剛所編譯好的兩個新核心檔案給安裝起來
16.# sudo vim /boot/grub/menu.lst <= 理論上在上一步會自動將Grub也設定好,還是自己檢查一下/boot/grub/menu.lst
17.如果都沒問題...就可以使用新核心重開機囉
資料來源: 1. https://help.ubuntu.com/community/Kernel/Compile
2. http://freesf.tnc.edu.tw/docs/debian/ch-kernel.zh-tw.html