簡體   English   中英

引導新編譯的Linux內核

[英]Booting a newly compiled linux kernel

我已經開始閱讀Essential Linux Device Drivers一書了。 我正在關注編譯和引導到新內核的過程。 但是我無法啟動進入新編譯的內核 - 我在grub中選擇新內核然后..沒有...屏幕保持不變。

以下是我正在采取的步驟,如書中所述(我正在使用內核2.6.24,因為這是本書的基礎) -

  • cd /usr/src/linux-2.6.24(我下載的內核的基地目錄)
  • 干凈
  • cp arch / x86 / configs / i386_defconfig .config
  • make bzImage cp arch / x86 / boot / bzImage / boot / vmlinuz

該書說“你可能需要提醒你的引導程序有關新引導映像的到來。 如果您正在使用GRUB引導加載程序,它會自動計算出來。

好吧,在我的情況下它並沒有自動解決,因為沒有選擇在GRUB中選擇這個內核。 所以我通過在終端中鍵入update-grub手動完成。 這也不起作用。 但是,一旦我將文件名從vmlinuz更改為vmlinuz-2.6.24並輸入update-grub,它就會把它拿起來。 所以在本書的第11頁似乎已經遺漏了多個東西......

書說要重新啟動機器。

無論如何,我現在能夠在GRUB中選擇這個內核,但正如我上面說的那樣,它無法正常啟動,屏幕只是空白而且永遠不會改變。 我錯過了什么嗎? 我完全按照書中的說明進行操作。

大多數自動grub設置包括內核選項,用於隱藏內核嘗試引導時生成的消息。 例如:

/boot/vmlinuz-x.x.x.x-generic root=UUID=something ro quiet splash

在您希望啟動的內核的grub菜單行上,按“e”暫時編輯它,並刪除諸如quiet和splash之類的選項(但保留ro)。

然后啟動臨時修改的行,並查看進度消息,以便了解啟動失敗的位置。

默認配置可能需要initrd (例如,因為文件系統和根設備需要其驅動程序,來自模塊,這是initrd提供的)。

您可以為您的特定硬件適當地配置內核(小心地啟用內核,而不是模塊內,基本驅動程序),或者使用過程來構建帶有initrd的內核包。

您應該找到適合您的Linux發行版和習慣的過程,例如類似這樣那樣的過程 我在Debian上使用:

time fakeroot make-kpkg -j2 --initrd --revision=3.4.2 --append-to-version=-amd64 binary

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM