導航:首頁 > 操作系統 > linux怎麼編譯內核

linux怎麼編譯內核

發布時間:2025-01-10 12:07:14

㈠ 談一談關於linux內核編譯詳解原理

前言:啟動盤製作旨在解決內核編譯可能導致的系統崩潰問題。內核編譯不當時,系統可能無法正常啟動,表現為左上角閃爍的標識。啟動盤能從外部設備引導系統啟動,從而進行系統恢復。

1. 編譯前准備:需要一個大於8G的USB啟動盤,格式化為ext3、ext4或VFAT。下載一個鏡像文件,假設為ubuntu-16.04-64.iso。准備一台裝有Linux系統的主機,最好裝有Centos或Ubuntu,並具有root許可權。

2. 安裝引導程序:根據自己的U盤分區(通過lsblk -l查看),為ubuntu-16.04-64.iso和USB存儲設備創建掛載點。

3. 創建臨時掛載點:為鏡像和U盤創建掛載點。

4. 掛載ubuntu-16.04-64.iso:使用-loop選項,使鏡像像設備塊一樣工作,此時掛載點可以看成插入了U盤,其中包含待燒錄的系統。

5. 掛載USB存儲設備:將USB掛載到指定路徑。

6. 復制isolinux文件到U盤:從鏡像中復制isolinux文件到U盤。

7. 復制isolinux.cfg:復制鏡像中的isolinux.cfg到U盤。

8. 卸載鏡像和U盤掛載點:完成復制後,卸載鏡像和掛載點。

9. 重啟系統,插入USB啟動盤,嘗試從U盤啟動系統。

10. 下載、配置並構建內核:下載內核,檢查U盤空間,安裝編譯所需軟體,解壓內核包,配置內核,編譯內核。

11. 安裝內核:安裝驅動程序,執行安裝命令,復制內核到/boot目錄,初始化RAM盤,復制System.map,創建符號鏈接,重啟系統。

12. 測試和調試內核:使用Netconsole配置調試用控制台,更改啟動時內核選項,更新grub,初始化Netconsole模塊,配置Netconsole選項,設置接受方設置,監控內核崩潰信息。

㈡ 如何編譯Linux內核

一、編譯環境

ubuntu 5.10,要編譯的內核源碼版本2.6.12 二、下載並解壓源代碼 首先從linux內核的官網www.kernel.org把源代碼下載下來。為了和後面實驗要求符合,我們要下載使用O(1)調度器的源碼。因此這里下載了2.6.12版本源碼。下載 下linux-2.6.12.tar.bz2,將下載源碼放入/usr/src/目錄下。如下圖所示: 解壓該源碼: 三、構建編譯環境 現在我們得到的只是源代碼,只是許許多多的文本文件,要想使這些文件成為可以運行的程序,需要使用編譯器進行編譯以及鏈接。編譯器有很多,但在里linux下一般都使用gnu的開源編譯器套件,這里包括gcc等,現在我們安裝基本的編譯器套件,如圖所示: 四、安裝ncurses庫 這里使用Ubuntu系統,因為系統自帶的ncurses庫在支持make menuconfig的時候會出錯,所以,依然要安裝ncurses庫,這里我們從源碼安裝。首先去ncurses官網http://ftp.gnu.org/pub/gnu/ncurses/ 上下載源碼。這里我們下載5.9版本,並通過簡單的安裝方式.configure 和make、make install方式安裝。如下圖所示: 五、配置內核 一切准備工作做完,現在我們就可以配置內核了,這里我們使用make menuconfig方式。如下圖: 在使用make menuconfig這個命令後,會出現如下的字元界面,我們就可以在這個界面上對內核進行配置。但是如果這不是你第一次配置這個內核,那麼請先運行:make mrproper來清除以前的配置,回到默認配置,然後再運行:make menuconfig.
在這里,我們以對cpu支持的配置為例,其餘的選項就不一一詳述,首先查看本機的cpu類型,如下圖:

在這里我們可以看到,我的電腦的cpu是AMD Athlon的,因此我們在cpu選項裡面選用AMD,如下圖所示:

在這里需要注意的是:
A、 cpu的設置在linux內核編譯過程中,不是必需的,即使保持默認的386選項(我們剛才把它改成了AMD),內核也能正常運行,只不過運行慢一些而已。
B、 一般容易出問題的地方在於Device Driver的設置。我在一開始就遇到了在內核編譯完,通過grub引導系統過程中報 「ALERT! /dev/sda1 does not exist . Dropping to a shell!」的錯誤。這是因為硬碟驅動沒有配置好而造成的。運行lspci命令,查看到下面這行:

由此確定,需要配置SCSI、PCI-X、Fusion-MPT驅動,需要在響應的驅動選項里將[M]設置為[*],因為硬碟驅動是在系統開機的時候載入,所以不能以模塊形式載入。

把這幾個驅動內部的選項全部改為[*]:

六、編譯內核

對內核的配置完成之後,現在就可以開始編譯內核了,只需要一個簡單的make命令即可,之後我們就只能慢慢等,直到編譯完成,在我的電腦上,大概用了25分鍾。下圖是運行make後的部分輸出。

七、安裝內核
編譯完成之後,我們需要安裝內核,主要分為如下幾步:
1)、安裝模塊

安裝模塊,對於內核來說,每一個內核版本有自己的模塊目錄,默認在/lib/moles/內核版本號這個目錄下,make moles_install會創建對應的目錄,並把對應的模塊文件拷貝過去。注意,這一步必須要在編譯過內核再做。

2)、拷貝bzImage文件

bzImage文件是內核映像文件,是啟動內核所必需的,我們應當把它拷貝到/boot目錄下。在這里,我為自己新建了一個目錄,我們把它拷貝過去,並且按照一般內核映像文件的命名方式為它改名為vmlinuz-2.6.12。

3)、製作initrd文件
initrd文件命名為initrd.img-2.6.12

4)、修改grub啟動項
要能引導起我們的新系統,需要更改grub配置,增加啟動選項。ubuntu 5.10的grub版本比較低,配置文件為/boot/grub/menu.lst,高版本的grub可能在/boot/grub/grub.cfg里。在原有啟動項基礎上,添加我們自己的啟動項,並把它設為默認啟動項,配置如下:

5)重啟
不出意外的話,我們的內核已經正常載入了,運行uname -a,會發現,內核版本已經是2.6.12了。

閱讀全文

與linux怎麼編譯內核相關的資料

熱點內容
壓縮垃圾車的配置部件 瀏覽:918
視頻文件能壓縮嗎 瀏覽:69
什麼叫美國伺服器 瀏覽:230
阿里雲udp伺服器源碼 瀏覽:919
小陳程序員理發 瀏覽:550
白狐問答系統源碼下載 瀏覽:363
手機文件夾怎麼剪輯 瀏覽:517
筆記本加密連接 瀏覽:102
八爪魚xpath源碼 瀏覽:403
圖形源碼怎麼看 瀏覽:633
usb供電單片機 瀏覽:574
解壓筆壞了拿什麼粘 瀏覽:11
怎麼給pdf文件解密 瀏覽:138
浙江微樂麻將源碼 瀏覽:275
安卓10月7號復刻什麼 瀏覽:138
hexstring加密 瀏覽:69
創造捷徑顯示未指定文件夾 瀏覽:980
編譯和文學的區別 瀏覽:594
openssl安全加密協議 瀏覽:477
如何看一款車的好壞app 瀏覽:935