編譯Linux源碼

編譯Linux源碼

一. 下載內核源碼(這裏使用清華大學鏡像源)

二. 安裝編譯文件需要的軟件

  • 修改源(ubuntu系統)

Ubuntu 的軟件源配置文件是/etc/apt/source-list。將系統自帶的該文件做個備份,將該文件替換爲這裏的內容,即可使用 TUNA 的軟件源鏡像。

  • 安裝必須的軟件
sudo apt-get install libelf-dev
sudo apt-get install libssl-dev
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11

三. 編譯內核

3.1 清理文件(在linux源碼根目錄)

  • 編譯前清理
make clean      # 只清理所有產生的文件
make mrproper   # 清理所有產生的文件與config配置文件
make distclean  # ß清理所有產生的文件與config配置文件,並且編輯過的與補丁文件

3.2 配置(收集硬件信息如cpu型號,網卡等…)

  • 編譯配置, 四種方法選一種, 推薦第二種
make config         # 基於文本模式的交互配置
make menuconfig     # 基於文本模式的菜單模式(推薦使用)
make oldconfig      # 使用已有的.config,但會詢問新增的配置項
make xconfig        # 圖形化的配置(需要安裝圖形化系統)
  1. 使用make menuconfig操作方法:
    1> 按y:編譯>連接>鏡像文件
    2> 按m:編譯
    3> 按n:什麼都不做
    4> 按"空格鍵":y,n輪換

配置完並保存後會在linux源碼根目錄下生成一個.config文件

  1. 利用已有的配置文件模板(.config)
1> linux源碼根目錄/arch/<cpu架構>/configs/<具體某一的CPU文件>,把裏面對應的文件copy並改名爲.config至linux源碼根目錄下

2> 利用當前運行已有的文件(要用ls /boot/ -a查看)把/boot/config-2.6.18-53.e15拷貝並改名爲.config至linux源碼根目錄下執行以上操作就可以用make menuconfig在拷貝.config文件上面修改文件了

3.3 編譯內核

  • 編譯啓動鏡像
make bzImage -j 8
  • 編譯模塊
make modules -j 8

四、安裝內核

4.1 安裝內核

  • 安裝模塊
make modules_install
  • 安裝內核
make install

4.2 更改啓動grub

  • 查看當前
$ cat /proc/version  
Linux version 4.10.0-35-generic (buildd@lcy01-33) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #39~16.04.1-Ubuntu SMP Wed Sep 13 09:02:42 UTC 2017

$cat /boot/grub/grub.cfg | grep 4.10
....

五、卸載內核

刪除 /lib/modules/ 目錄下以內核的版本號爲名稱的目錄
刪除 /usr/src/linux/ 目錄下不需要的內核源碼
刪除 /boot 目錄下啓動的內核和內核映像文件
更改 grub 的配置文件,刪除不需要的內核啓動列表

/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*​
/boot/System-map*KERNEL-VERSION*​
/boot/config-*KERNEL-VERSION*​
/lib/modules
KERNEL-VERSION代表你想卸載的內核的版本號
最後必須更新grub : update-grub。
# 修改啓動項
sudo vim /boot/grub/grub.cfg
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章