Ubuntu13.04內核重編與定制
廢話少說,過程記錄如下。
1. 本人的環境如下:
Ubuntu 13.04 雖然13.10已經發布了,但暫時還不想升級。。。
由於已經安裝過了Android的開發環境,所以我已經不再需要安裝其他環境即可編譯內核。
Android開發環境的安裝可以參考這篇文章: 重裝Ubuntu13.04後需要做的事情
2. 下載Kernel源碼
2.1 獲取當前系統的內核版本
通過命令:
[plain]
uname -srv
可以獲取到當前系統的Kernel版本,如:
[cpp]
Linux 3.8.0-32-generic #47-Ubuntu SMP Tue Oct 1 22:35:23 UTC 2013
2.2 根據當前內核版本下載對應的內核代碼
通過命令:
[cpp]
sudo apt-get install linux-source-3.8.0
可以獲取到對應版本的內核代碼
3. 編譯內核
3.1 獲取當前系統的內核配置
通過命令:
[cpp]
cp /boot/config-3.8.0-32-generic .config
可以將當前系統的內核配置copy到你的linux源代碼目錄下並重命名為.config
這個.config裡面就是當前系統的內核配置。
通過命令:
[cpp]
make menuconfig
可以自己配置定制內核,menuconfig的用法非常簡單,這裡就不介紹了。
3.2 重新編譯內核
通過命令:
[cpp]
make bzImage -j6
可以實現6線程編譯,最終得到內核鏡像,保存為 arch/x86/boot/bzImage
3.3 編譯內核模塊
通過命令:
[cpp]
make modules -j6
可以實現6線程編譯所有內核模塊
4. 安裝內核
4.1 安裝內核模塊
通過命令:
[cpp]
sudo make modules_install
可以安裝剛剛編譯出來的內核模塊
4.2 安裝內核鏡像
通過命令:
[cpp]
sudo make install
可以安裝剛剛編譯出來的內核鏡像
注意:
安裝內核的命令會自動更新grub配置,執行完成後重啟即可進入新內核。
如果新內核有問題,在啟動時也可以選擇使用舊內核啟動。
5. 刪除編譯安裝的內核
- 刪除/boot 以及 /lib/modules 下新內核相關的文件或目錄
- 使用命令:
[cpp]
sudo update-grub
即可更新grub啟動菜單