編譯內核:如何在 Debian 基礎發行版上編譯?
在我們的 上一個條目叫 “Linux 內核:內核基礎” 我們解決一些 基本理論基礎 關於 操作系統內核, 通常; 和 Linux內核, 具體的。
正如我們在其中所表達的,在這一期中,我們將完成所說 基本理論基礎 與他人 重要概念和信息,除了顯示當前程序來實現 “編譯 Linux 內核” 從頭開始,在 Debian GNU/Linux 11 發行版 (Bullseye) 或基於它。
Linux 內核:內核基礎
而且,在你開始閱讀這篇關於 “編譯內核” 的Linux 一般來說,我們會留下一些鏈接到 以前的相關職位 供以後閱讀:

構建內核:構建教程
編譯一個程序是什麼意思?
基本上這個 技術流程(也稱包裝) 在於實現 程序源代碼的轉換 或軟件的一部分,從其源代碼(用於編寫自身的編程語言)到 可讀產品 (高級編程語言可解釋)由計算機。
也就是達到 從您的源代碼轉換 直到變成一個 可執行和功能程序,通過使用 處理器(編譯器軟件) 用於將使用的編程語言轉換為二進制和彙編程序類型的代碼。
當涉及到 開發和編譯 任何一種 包,應用程序和程序, 基本的和原生的,比如 內核 上 Debian GNU / Linux,以下軟件包是合適且必要的,以獲得良好的 發展支援基地,這些是:
apt install autoconf automake autotools-dev build-essential dh-make debhelper debmake devscripts dpkg fakeroot file gfortran git gnupg fp-compiler lintian patch pbuilder perl python quilt xutils-dev
從頭開始編譯 Linux 內核的優缺點
當我們從頭開始為某台計算機自定義編譯和配置特定的內核時,我們可以獲得以下優勢:
- 實現更好的性能和更低的 CPU 消耗。
- 獲得更好的優化和更低的 RAM 內存消耗。
- 提高操作系統的適應性和兼容性。
- 提高操作系統的效率和生產力。
相反,我們可能會產生以下缺點:
- 操作和可用性故障 由於錯誤的配置和編譯過程中引起的問題,所使用的計算機上所需的資源和服務的數量。
- 最初是一項持續、漫長而乏味的工作來生成它,然後再手動更新。 根據所使用的硬件,時間可以從幾分鐘到幾小時不等。
- 長時間的學習和測試,因為需要關於內核中可用的配置選項和計算機(最終硬件)的高水平知識,它將在其中執行。

可用的內核類別
至 編譯內核,我們首先要知道選擇哪個Kernel。 為此,我們必須前往 官方網站 內核,並從現有類別中選擇一個。 以下是哪些:
- 發展主線(Mainline):這個類別包括那些處於開發階段的內核,因此,它們包含新的特性和功能,必須經過測試才能投入穩定版本。 這些由 Linus Torvalds 直接維護和發布,平均每 2-3 個月發布一次。
- 穩定的:這個類別包括那些經過漫長的開發過程的測試後變得穩定的內核,因此它們只能通過指定的官方維護者進行更正。 此外,在下一個 Mainline 可用之前,他們只有幾個錯誤修復版本。
- 長期:這個類別包括那些經過長期開發過程的測試後變得穩定,但在極長的時間(數年)內得到錯誤修復和維護支持的內核。 應用重要錯誤修復的原因可能會變得非常頻繁。

如何在 GNU/Linux Debian Bullseye 發行版中編譯內核?
選擇了一個 特定內核版本,在官方網站上,並且已經知道(複製)您的 下載路徑 通過 壓縮包按鈕 同樣,只需要執行以下程序,我們將以該程序為例, 穩定的 Linux 內核版本 6.0.8:
階段1
cd /usr/src
wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.0.8.tar.xz
sudo unxz linux-6.0.8.tar.xz
sudo tar xvf linux-6.0.8.tar
sudo ln -s linux-6.0.8 linux
cd /usr/src/linux
sudo make clean && make mrproper
sudo cp /boot/config-`uname -r`* .config
make menuconfig
運行最後一個命令會啟動 “內核配置菜單”, 在那裡你可以 配置(自定義)參數 您的偏好或需要。 此外,這裡重要的是不要忘記這是必要的 選中或取消選中 64 位內核選項,取決於想要或需要什麼。 而且,在完成所有更改後,您必須 按保存按鈕 然後呢 退出按鈕.

階段2
此時有 2條可能的路徑 採取:
僅內核安裝
sudo make
sudo make modules_install
sudo make install
sudo update-grub; sudo update-grub2; sudo update-initramfs -u
sudo apt clean; sudo apt autoclean; sudo apt autoremove; sudo apt remove; sudo apt purge

內核安裝和 .deb 文件的生成
要執行此步驟,相關的包的安裝稱為 內核包. 因此,程序如下並開始如下:
sudo wget -c http://ftp.us.debian.org/debian/pool/main/k/kernel-package/kernel-package_13.018+nmu1~bpo9+1_all.deb
sudo apt install ./kernel-package_13.018+nmu1~bpo9+1_all.deb
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
cd /usr/src
sudo dpkg -i *.deb
萬一,在編譯過程中,你得到一個 與內核證書相關的錯誤,它仍然是能夠執行以下操作的選項 命令命令自動修復它:
sed -i '/CONFIG_SYSTEM_TRUSTED_KEYS/s/^/#/g' .config
是的,一切都結束了,剩下的就是重新啟動我們的計算機並測試我們的操作系統如何使用新內核運行。 正如他之前和之後所示,在以下屏幕截圖中:
內核安裝前

內核安裝後


總結
總之,我們希望本教程非常有用,無論是 進階使用者 作為 Distros 或 Respins 的開發者。 這通常需要 “編譯內核” 特定於當前安裝的 GNU/Linux 操作系統或從頭開始生成的操作系統,以便合併 在特定硬件上獲得更好的性能和優化. 大多數情況下,為了實現 降低 CPU 和 RAM 消耗.
雖然,如果有人知道 另一種執行所述程序的有用方法或 知道任何 建議、推薦或更正 對於此處提供的內容,歡迎您通過評論這樣做。 是的,您只是喜歡這個出版物,不要停止評論它並與他人分享。 另外,記得訪問我們的 «主頁» 探索更多新聞,以及加入我們的官方頻道 來自 Linux 電報, 西 組 有關今天主題的更多信息。