linux kernel 2.6.10 編譯

之前看《linux device drivers》的時候用的是2.6.18的內核,最後發現與驅動有關的內容內核中還真變了不少。 爲了更好地學習linux 驅動,決定編譯一下linux 2.6.10,畢竟那本書就是以這個版本爲基礎的。

用2.6.18的redhat 5.0編譯的時候,可能因爲編譯器版本的問題,出了很多問題,在網上找了很多資料,打補丁、改源文件什麼的,總算編譯成功,但在最後啓動新的內核的時候,竟然找不到系統所在的邏輯卷(我用的是虛擬機環境)。

no volume groups found
volume group"VolGroup00" not found

無奈在網上找了很多資料也無法解決問題。最後發現可能是用高版本內核環境編譯運行低版本內核的問題。如邏輯卷,舊的版本不能兼容新的版本的(此觀點未作驗證)。最後改用如下辦法,終於成功。

1. 安裝redhat 4.8這個發行版用的是2.6.9的內核,在2.6.10之前,而且比較接近,編譯器什麼的與2.6.10內核開發時用的也應當比較接近。

2. make oldconfig 使用老的配置,新的東西都默認。

3. make 編譯。在編譯過程中也沒出現用2.6.18內核編譯的時候出現的各種錯誤。估計是編譯環境比較接近吧。

4. make bzImage

5. make modules

6. make modules_install

7. make install

上面的步驟完成後,/boot下就有了2.6.10內核相關的啓動image,而且/etc/grub.conf文件中也自動正確設置了相關的啓動參數。很方便啊。可以在這個文件中設置默認啓動2.6.10內核,將default=n n設爲正確內核對應的序號就可以了。

最後 reboot.

順便提一句,如果只是想使用2.6.10內核學習ldd3並且又不想編譯內核的話,可安裝ubuntu 5.0.4的發行版,這個版本用的就是2.6.10的內核。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章