debian下編譯2.6.13.2核心的步驟及感受(轉)

ba發表於2007-08-12
debian下編譯2.6.13.2核心的步驟及感受(轉)[@more@]編譯核心是每一個真正使用linux的使用者一定要過的一道關。
linux的無窮魅力就在於使用者可以根據自己的需要按需定製一個適合自已的核心。
還有新的硬體老的核心不能識別的話,編譯一個新版的核心沒準就能識別。
兩個星期前我還對編譯核心一無所知的,經過一個高手師兄的指點,現在總算可以
順利編譯核心了。

編譯核心的主要步驟:
1 到上下載核心原始碼,目前已經更新到2.6.13.4
但由於教育網不能隨便訪問國外網站,我到ftp.tsinghua.edu.cn
下載了一個2.6.13.2的核心。反正我的機器是IBM的老PII本子,kernel的新功
能一般用不上,主要是定製一個比較精簡的核心,把用不到的東西去掉,節省資

2 下載linux-2.6.13.2.tar.gz到本地目錄,我下到了root目錄。我看很多人都
放在/usr/src下,可能是習慣問題吧。
3 解壓縮:tar zxvf linux-2.6.13.2.tar.gz
4 這時root目錄下會出現linux-2.6.13.2子目錄
5 進入linux-2.6.13.2目錄,make menuconfig
關鍵的一步,編譯核心的成敗全在這一步了。只要少選了什麼重要的東西,
新kernel就要panic了。
6 配置完後會在當前目錄下面生成一個.config檔案。此檔案具有隱藏屬性
可以用ls -a檢視,剛才編的配置檔案都儲存在這個檔案
7 make 編譯過程,最漫長的過程,建議找個地方看看書過兩個小時再回來
我的CPU比較慢,所以我都是在宿舍晚上make menuconfig ,之後我就睡覺,讓
我的本本自己compile,等到第二天早上肯定能編譯好。
8 make modules_install 安裝配置的模組
9 make install 執行完後會在/boot目錄下面生成一個vmlinuz-2.6.13.2
同時在/arch/i386/boot/下面生成一個bzImage,我看了一下,跟vmlinuz-2.
6.13.2是一樣大小的,所以推測可能就是一樣的檔案。
10 mkinitrd -o /boot/initrd.img-2.6.13.2 關於這個檔案,我看了很多論壇的
帖子,但還是不太清楚這個東西是幹什麼用的,聽說如果編譯時不選擇ramdisk就
不需要。
11 修改/boot/grub/menu.lst 載入新核心
12 reboot


編譯核心的感受:我從國慶假期就在實驗室一直在研究編譯核心,經常到論壇上看相關
的帖子,或者用百度搜資料。我用的版本是hiweed Debian linux 0.7。研二的師兄告
訴我Debian下面用標準方式很難編譯成功。但我就是覺得Debian的編譯方式不如標準方
式用著順手。在假期裡我編了兩次都失敗了,Debian的方式我也試過,安裝完核心後會
把我的Windows選項清掉。假期過完了,又接著編譯,又編譯了兩次,每次還都是這個
錯誤
VFS:Connot open root device "hda12" or unknown-block(0,0)

kernel panic--not syncing:VFS:Uable to mount root fs on unknown-block(0,0)

VFS老師講過是底層的物理裝置和上層使用者間通訊的一個邏輯的過渡層。網友提供的一些
解決方法:

原因一:ext2檔案格式支援沒有編譯進核心,不論你使用ext3或其它檔案格式,ext2支援都
必須直接編譯進核心,不能以核心模組形式編譯。

原因二:如果使用initrd.img啟動系統,則cromfs必須編譯


cromfs在哪裡配置我沒有找到,但我把關於ATA/IDE/SATA/SCSI的選項都編譯進核心就解決
了,不過到現在也不知道什麼原因。


編譯核心的苦惱就是每次配置都有很多選項要選,很多選項都不知道是做什麼用的,去掉
以後會有什麼後果,師兄告訴我很多看似無關的選項去掉後就是啟動不起來。還有我用的
hiweed debian版本無法安裝QT庫和GTK庫,上論壇發帖子求教也沒有求教出結果,到baidu
上搜了一下也沒有相關的資料,以前鄙視red hat醜陋的介面,現在開始羨慕red hat的
方便了,只要在安裝時選擇上Gnome 開發包就行了。而且關於2.6核心的配置資料很少的。

不過有憂必有喜,自己編譯核心畢竟有成就感,很多沒有用的模組我都沒有編譯進核心,啟
動時快了很多。真正感覺到了It's my kernel!選上Frame Buffer,這樣在Terminal裡面
和文字模式下面就可以利用zhcon來顯示中文了,把Embed fonts選中,這樣啟動時介面漂亮
很多的,還會顯示企鵝。自己編的核心連啟動介面都美化了剩下的事情就是閱讀原始碼,真正
明白linux。
的原理,從而更深層次的瞭解作業系統。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950240/,如需轉載,請註明出處,否則將追究法律責任。

相關文章