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/目錄下不需要的內核源碼。