溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux編譯內(nèi)核的過(guò)程

發(fā)布時(shí)間:2021-09-03 17:16:25 來(lái)源:億速云 閱讀:97 作者:chen 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容主要講解“Linux編譯內(nèi)核的過(guò)程”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Linux編譯內(nèi)核的過(guò)程”吧!

Linux編譯內(nèi)核
準(zhǔn)備工作
通常要運(yùn)行的第一個(gè)命令是:
#cd /usr/src/linux;make mrproper
該命令確保源代碼目錄下沒(méi)有不正確的.o文件以及文件的互相依賴
配置
接下來(lái)的內(nèi)核配置過(guò)程比較煩瑣,但是配置的適當(dāng)與否與日后Linux的運(yùn)行直接相關(guān),有必要了解一下一些主要的且經(jīng)常用到的選項(xiàng)的設(shè)置。
配置內(nèi)核可以根據(jù)需要與愛(ài)好使用下面命令中的一個(gè):
#make config(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)
#make menuconfig(基于文本選單的配置界面,字符終端下推薦使用)
#make xconfig(基于圖形窗口模式的配置界面,Xwindow下推薦使用)
#make oldconfig(如果只想在原來(lái)內(nèi)核配置的基礎(chǔ)上修改一些小地方,會(huì)省去不少麻煩)
這三個(gè)命令中,make xconfig的界面最為友好,如果你可以使用Xwindow,那么就推薦你使用這個(gè)命令.

在繁雜的配置工作完成以后,下面你就可以自己到杯茶耐心等候了。與編譯有關(guān)的命令有如下幾個(gè):
#make dep
#make clean
#make zImage
#make bzImage
#make modules
#make modules_install
#depmod -a
第一個(gè)命令make dep實(shí)際上讀取配置過(guò)程生成的配置文件,來(lái)創(chuàng)建對(duì)應(yīng)于配置的依賴關(guān)系樹,從而決定哪些需要編譯而那些不需要;
第二命令make clean完成刪除前面步驟留下的文件,以避免出現(xiàn)一些錯(cuò)誤;
第三個(gè)命令make zImage和第四個(gè)命令make bzImage實(shí)現(xiàn)完全編譯內(nèi)核,二者生成的內(nèi)核都是使用gzip壓縮的,只要使用一個(gè)就夠了,
它們的區(qū)別在于使用make bzImage可以生成大一點(diǎn)的內(nèi)核,比如在編譯2.4.0版本的內(nèi)核時(shí)如果使用make zImage命令,那么就會(huì)出現(xiàn)system too big的錯(cuò)誤提示。
建議大家使用make bzImage命令。
后面三個(gè)命令只有在你進(jìn)行配置的過(guò)程中,在回答Enable loadable module support (CONFIG_MODULES)時(shí)選了"Yes"才是必要的,
make modules和make modules_install分別生成相應(yīng)的模塊和把模塊拷貝到需要的目錄中。
嚴(yán)格說(shuō)來(lái),第七個(gè)命令和編譯過(guò)程并沒(méi)有關(guān)系,它是生成模塊間的依賴關(guān)系,這樣你啟動(dòng)新內(nèi)核之后,使用modprobe命令加載模塊時(shí)就能正確地定位模塊。

更新
經(jīng)過(guò)以上的步驟,我們終于得到了新版本的內(nèi)核。為了能夠使用新版本的內(nèi)核,我們還需要做一些改動(dòng):
#cp /usr/src/linux/System.map /boot/System.map-2.4.0test8
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.0test8
以上這兩個(gè)文件是我們剛才編譯時(shí)新生成的。下面修改/boot下的兩個(gè)鏈接System.map和vmlinuz,使其指向新內(nèi)核的文件:
#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.0test8 vmlinuz
#ln -s System.map-2.4.0test8 System.map
#shutdown -r now
正常啟動(dòng).您的機(jī)器現(xiàn)在就使用你的新內(nèi)核了.
下面是RH 推薦的編譯方式. 注意edit Makefile
老話新說(shuō),RedHat 公司 推薦編譯內(nèi)核方法
本文部分取自于RH300(RHCE Rapid Track Course)課本.
本文假定你用的是Redhat 7.2,用grub 管理啟動(dòng).準(zhǔn)備編譯7.2 自帶的內(nèi)核
cd /usr/src/linux-2.4
make mrproper
edit Makefile 文件
把EXTRAVERSION= 改成有你特色的文字, 比如:
EXTRAVERSION=-10me
make menuconfig or make xconfig
make dep
make bzImage
make modules
make modules_install
cp System.map /boot/System.map-2.4.7-10me
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.7-10me
new-kernel-pkg --install --mkinitrd --depmod 2.4.7-10me

到此,相信大家對(duì)“Linux編譯內(nèi)核的過(guò)程”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI