日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说

發布時間:2023/12/10 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

linux內核編程4部曲之一:linux內核編譯(2.6.12版本)圖文解說

linux內核編程4部曲之二:增加linux內核系統調用

linux內核編程4部曲之三:修改O(1)調度算法

linux內核編程4部曲之四:模塊編程

一、編譯環境? ??

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命令,查看到下面這行:

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

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

六、編譯內核

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

七、安裝內核

編譯完成之后,我們需要安裝內核,主要分為如下幾步:

1)、安裝模塊

安裝模塊,對于內核來說,每一個內核版本有自己的模塊目錄,默認在/lib/modules/內核版本號這個目錄下,make modules_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内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。