因為直接改 Kernel 裡的 Local Name 需要一些方法才能正確的編譯。
所以乾脆直接利用 make-kpkg 的 flag 來改比較方便,就是「--append-to-version」。
指令如下:
sudo fakeroot make-kpkg --initrd --append-to-version=-zqpm kernel_image kernel_headers
編出來的檔案在我這邊的情形是
linux-headers-3.1.10-zqpm_3.1.10-zqpm-10.00.Custom_amd64.deb
linux-image-3.1.10-zqpm_3.1.10-zqpm-10.00.Custom_amd64.deb
安裝好後在 grub.cfg 呈現的樣子是
menuentry 'Ubuntu, with Linux 3.1.10-zqpm' --class ubuntu --class gnu-linux --class gnu --class os
理論上來說,重開機後選它登入後 uname -a 顯示類似
Linux 3.1.10-zqpm
2012年3月24日 星期六
[Linux][Ubuntu][Error Message After Compiling]
在 make menuconfig 後於 local version 填入了 zqpm,但在 compile 之後會出現類似
"dpkg-gencontrol: error: package linux-image-3.1.10zqpm not in control info"
這樣的 error message。
原因是在 kernel 資料夾底下 debian/control 這檔案裡的資料與 target file 不符合。
比較直接的解決方法是進行
http://zqpmmemo.blogspot.com/2012/03/linuxubuntucompile-new-kernel.html
的第五步,sudo make-kpkg clean
然後再一次進行第六步。
第六步 Enter 按下去執行指令後立刻開另一個 Terminal。
修改 debian/control 這個檔案。
把開頭為 linux-source、linux-image、linux-header 的字串都加上自己 local version 設定的字串。
以我的狀況就是
linux-source-3.1.10 -> linux-source-3.1.10zqpm
linux-image-3.1.10 -> linux-image-3.1.10zqpm
linux-headers-3.1.10 -> linux-headers-3.1.10zqpm
阿,linux-image-3.1.10-dbg 不用改。
改好後存檔,另一邊的 compile 就讓它自己繼續跑下去吧~
大概這樣子就不會出現 error 了。
方法我自己有試過了,也順利編出在下一步需要用的兩個 .deb 檔了。
不過非人工的作法我還沒找到,似乎跟 make-kpkg 有關。
Reference:
http://ubuntuforums.org/showpost.php?p=9638461&postcount=1488
"dpkg-gencontrol: error: package linux-image-3.1.10zqpm not in control info"
這樣的 error message。
原因是在 kernel 資料夾底下 debian/control 這檔案裡的資料與 target file 不符合。
比較直接的解決方法是進行
http://zqpmmemo.blogspot.com/2012/03/linuxubuntucompile-new-kernel.html
的第五步,sudo make-kpkg clean
然後再一次進行第六步。
第六步 Enter 按下去執行指令後立刻開另一個 Terminal。
修改 debian/control 這個檔案。
把開頭為 linux-source、linux-image、linux-header 的字串都加上自己 local version 設定的字串。
以我的狀況就是
linux-source-3.1.10 -> linux-source-3.1.10zqpm
linux-image-3.1.10 -> linux-image-3.1.10zqpm
linux-headers-3.1.10 -> linux-headers-3.1.10zqpm
阿,linux-image-3.1.10-dbg 不用改。
改好後存檔,另一邊的 compile 就讓它自己繼續跑下去吧~
大概這樣子就不會出現 error 了。
方法我自己有試過了,也順利編出在下一步需要用的兩個 .deb 檔了。
不過非人工的作法我還沒找到,似乎跟 make-kpkg 有關。
Reference:
http://ubuntuforums.org/showpost.php?p=9638461&postcount=1488
2012年3月15日 星期四
[Linux][Ubuntu][Compile a New Kernel]
此處以 3.0.24 做範例,我的 Ubuntu 版本是 10.04。
裡邊有些所需要的 package 自行安裝,反正系統會提醒的。
============================================================
從 http://www.kernel.org/ 下載 linux-3.0.24.tar.bz2 到 /usr/src。
1) sudo tar zxvf linux-3.0.24.tar.bz2
2) sudo cd linux-3.0.24
3) sudo make menuconfig
(有出現錯誤的話看這裡:
http://zqpmmemo.blogspot.com/2012/02/linuxubuntumake-menuconfig-requires.html)
4) 挑選自己想要編的項目,可以以核心 (*) 的型式或是模組 (M) 的型式,完成後退出並儲存 configure。
(會有個 .config 檔產生在同目錄下)
5) sudo make-kpkg clean
(optional)
(沒有 make-kpkg 的話就 sudo apt-get install kernel-package 吧!)
6) sudo fakeroot make-kpkg --initrd --revision=3.0.24 kernel_image kernel_headers
(其實 = 後面可以加上自己想要的編號或文字,只是我習慣直接寫上版本號)
(不過就是會產生等下有點有趣的狀況就是了)
(這個時間會有點長)
7) cd ../
(會產生兩個開頭為 linux- 的 .deb 檔案)
(以我為例的話是 linux-headers-3.0.22_3.0.22_amd64.deb 和 linux-image-3.0.22_3.0.22_amd64.deb)
8) sudo dpkg -i linux-*.deb
9) sudo vi /boot/grub/grub.cfg
(雖然理論上步驟八就會自動幫忙寫入,不過還是自己檢查一下吧)
10) sudo reboot
(沒問題的話就可以 reboot 選自己剛編好的 kernel 開機囉)
Reference:
http://blog.xuite.net/robert1030tw/blog/19639294-Debian%2FUbuntu+%E7%B7%A8%E8%AD%AF%E6%A0%B8%E5%BF%83
裡邊有些所需要的 package 自行安裝,反正系統會提醒的。
============================================================
從 http://www.kernel.org/ 下載 linux-3.0.24.tar.bz2 到 /usr/src。
1) sudo tar zxvf linux-3.0.24.tar.bz2
2) sudo cd linux-3.0.24
3) sudo make menuconfig
(有出現錯誤的話看這裡:
http://zqpmmemo.blogspot.com/2012/02/linuxubuntumake-menuconfig-requires.html)
4) 挑選自己想要編的項目,可以以核心 (*) 的型式或是模組 (M) 的型式,完成後退出並儲存 configure。
(會有個 .config 檔產生在同目錄下)
5) sudo make-kpkg clean
(optional)
(沒有 make-kpkg 的話就 sudo apt-get install kernel-package 吧!)
6) sudo fakeroot make-kpkg --initrd --revision=3.0.24 kernel_image kernel_headers
(其實 = 後面可以加上自己想要的編號或文字,只是我習慣直接寫上版本號)
(不過就是會產生等下有點有趣的狀況就是了)
(這個時間會有點長)
7) cd ../
(會產生兩個開頭為 linux- 的 .deb 檔案)
(以我為例的話是 linux-headers-3.0.22_3.0.22_amd64.deb 和 linux-image-3.0.22_3.0.22_amd64.deb)
8) sudo dpkg -i linux-*.deb
9) sudo vi /boot/grub/grub.cfg
(雖然理論上步驟八就會自動幫忙寫入,不過還是自己檢查一下吧)
10) sudo reboot
(沒問題的話就可以 reboot 選自己剛編好的 kernel 開機囉)
Reference:
http://blog.xuite.net/robert1030tw/blog/19639294-Debian%2FUbuntu+%E7%B7%A8%E8%AD%AF%E6%A0%B8%E5%BF%83
訂閱:
文章 (Atom)