呼,今天考完中山,這禮拜要繼續衝。
紀錄一下kernel 編譯結果
環境:Ubuntu 10.04 LTS
NB:HP Presorio V3000
第一次build linux kerenl,編譯完kernel之後遇到重新開機卻無法順利開機問題。
build steps如下:
1.下載linux-2.6.37.2.tar.bz2
2.cd linux-source
3.cp /boot/config-2.6.32-28-generic .config
4.make clean
5.sudo make menuconfig
6.Load .config file , exit and saved.
7.make-kpkg --revision 0.0.1 --initrd kernel_image kernel_headers
8.build done.
9.dpkg -i linux-headers-2.6.37.2_0.0.1_amd64.deb
10.dpkg -i linux-image-2.6.37.2_0.0.1_amd64.deb
以上,build 完之後,有正常產生headers 及image,然後下完指令dpkg -i,reboot 電腦,選擇Ubuntu,Linux 2.6.37.2 卻無法正常開啟。
顯示的msg如下:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
後來經過前輩指導,在ubuntu 10.04以後的版本,在最後還要多一個步驟建立 initrd的image檔
cd /boot
sudo mkinitramfs -k -o initrd.img-2.6.37.2_0.0.1_amd64 2.6.37.2_0.0.1_amd64
sudo update-grub2
ref http://www.question-defense.com/2010/09/26/how-to-recompile-your-ubuntu-10-10-kernel-for-patching-or-to-add-support-for-a-specific-device
Update 一下資訊:
1.下載linux-2.6.37.2.tar.bz2
2.cd linux-source
3.cp /boot/config-2.6.32-28-generic .config
4.make clean
5.sudo make menuconfig
6.Load .config file , exit and saved.
7.make-kpkg --revision 0.0.1 --initrd kernel_image kernel_headers
8.build done.
9.dpkg -i linux-headers-2.6.37.2_0.0.1_amd64.deb
10.dpkg -i linux-image-2.6.37.2_0.0.1_amd64.deb
***11.sudo update-initramfs -c -k 2.6.37.2
12.sudo update-grub
13.reboot
以下轉自ptt 的artf08
回覆刪除作者: artf08 (大珍奶,珍奶大) 看板: Linux
標題: Re: [問題] 編譯核心問題
時間: Sun Feb 27 12:50:27 2011
在下新手獻曝,其實也只不過是一些股溝來的步驟(ubuntu10.04,10.10,mint皆測過)
但至少我確定下面這些步驟,我自己試過從rc3~rc5都沒問題
提供想自己編譯kernel玩玩的人參考
我只知道這樣做OK,對於步驟有問題的話請各位高人幫忙解答
1.下載最新的內核 www.kernel.org
(目前最新是kernel 2.6.38),保存到主目錄(/home/user/ 或~/)
2.解壓軟件包:
tar xvf linux-2.6.38-rc6.tar.bz2
3.使用默認的.config 文件:
sudo cp /boot/config-2.6.xx-xx-generic ~/linux-2.6.38-rc6
4.make & install:
cd linux-2.6.38-rc6
sudo make menuconfig
(參考完鳥哥的舊資料後,看懂得部分就自訂,不懂得就預設)
(這邊會出現警告,因為少了編譯需求的某lib,補齊即可)
sudo make
(靜待3小時,1.5G的舊電腦,近期的應該也要1小時左右吧,我猜)
sudo make modules_install
sudo make install
5.創建 initrd:
sudo update-initramfs -k 2.6.38-rc6 -c
6.升級grub:
sudo update-grub
7.重啟就變成新kernel了
update info
回覆刪除before build kernel:
1.apt-get install libncurses5-dev
2.apt-get install kernel-package