Linux重新編譯內核


1.  下載內核文件。

內核可以直接從www.kernel.org網站下載,但是網速一般都不理想。建議從國內的開源鏡像站下載。比如:清華大學開源鏡像站(mirrors.tuna.tsinghua.edu.cn)。

直接下載linux-linux-5.10.2內核:

https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/linux-5.10.2.tar.xz

2.  安裝開發工具。

archlinux安裝base-devel工具包即可。(其實可以省略)

pacman -S base-devel

3.  解壓內核。

tar xvf linux-5.10.2.tar.xz

4.  自定義內核。

可以在解壓文件根目錄下創建.config文件,添加linux需要開啟的功能。

Make nconfig(基於curses)是.config的圖形管理界面。使用起來非常方便。還有

make config:純命令行方式。

make gconfig:基於GTK(GNOME)環境窗口界面。

make xconfig:基於Qt(KDE)環境窗口界面。

make defconfig:根據當前運行內核進行配置。

make allyesconfig:默認添加所有配置。

make allnoconfig:默認不添加所有配置。

根據自己的需求定制內核源碼。

y,表示自動啟動,menu config界面顯示為*。n表示禁用,menu config界面顯示為空格。m表示手動啟動,menu config界面顯示為m。

archlinux可以使用 zcat命令獲取當前運行內核的config文件。其它發行版的config文件可能直接放在/boot目錄中。

$ zcat /proc/config.gz > .config  或者touch .config

5.  編譯內核。

在源碼文件根目錄下運行:

make -j 8 #12代表使用的線程數。根據開發平台自己決定。

make [-j #]:全編譯。

make dir/:只編譯 dir目錄中的代碼。

make dir/file.ko:只編譯dir目錄中特定模塊。

※交叉編譯內核:編譯的目標平台與當前平台不相同。

make ARCH=arch_name

※獲取編譯目標平台的使用幫助。

make ARCH=arch_name help

比如:make ARCH=arm help

6.  編譯安裝模塊。

實際上就是復制模塊包到目錄中。運行下面命令,自動將生成的ko文件放到當前運行平台的/lib/modules目錄中。(※此處需要用root權限,否則會失敗)。

# make modules_install

7.  安裝內核

# make install:安裝內核到/boot目錄,並且它會修改grub.cfg文件。

archlinux可以手動安裝:

cp -v arch/x86/boot/bzImage /boot/

8.  清理文件。

安裝完成后清理一下編譯生成的用不到到文件,節省硬盤空間。

※如果這個內核源碼已經編譯過(不是剛從官方網站下載的),最好事先清理一下編譯生成的文件。

make clean:清理生成的多數文件,但會保留config文件,並且備份config文件。

make mrproper:清理所有生成的文件,包含config文件。

make distclean: mrproper、patches等補丁文件以及編輯器備份,都會被清理掉。

9.  卸載內核。

boot中用不到的內核。

修改grub.cfg。

lib/modules中用不到的模塊。

/usr/src/linux/目錄下不需要的內核源碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM