自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

帶你一起學(xué)習(xí)如何編譯Linux內(nèi)核

系統(tǒng) Linux
曾經(jīng)有一段時間,升級 Linux 內(nèi)核讓很多用戶打心里有所畏懼。在那個時候,升級內(nèi)核包含了很多步驟,也需要很多時間。現(xiàn)在,內(nèi)核的安裝可以輕易地通過像 apt 這樣的包管理器來處理。

[[230048]]

 曾經(jīng)有一段時間,升級 Linux 內(nèi)核讓很多用戶打心里有所畏懼。在那個時候,升級內(nèi)核包含了很多步驟,也需要很多時間?,F(xiàn)在,內(nèi)核的安裝可以輕易地通過像 apt 這樣的包管理器來處理。通過添加特定的倉庫,你能很輕易地安裝實驗版本的或者指定版本的內(nèi)核(比如針對音頻產(chǎn)品的實時內(nèi)核)。

考慮一下,既然升級內(nèi)核如此容易,為什么你不愿意自行編譯一個呢?這里列舉一些可能的原因:

  • 你想要簡單了解編譯內(nèi)核的過程
  • 你需要啟用或者禁用內(nèi)核中特定的選項,因為它們沒有出現(xiàn)在標準選項里
  • 你想要啟用標準內(nèi)核中可能沒有添加的硬件支持
  • 你使用的發(fā)行版需要你編譯內(nèi)核
  • 你是一個學(xué)生,而編譯內(nèi)核是你的任務(wù)

不管出于什么原因,懂得如何編譯內(nèi)核是非常有用的,而且可以被視作一個通行權(quán)。當(dāng)我***次編譯一個新的 Linux 內(nèi)核(那是很久以前了),然后嘗試從它啟動,我從中(系統(tǒng)馬上就崩潰了,然后不斷地嘗試和失敗)感受到一種特定的興奮。

既然這樣,讓我們來實驗一下編譯內(nèi)核的過程。我將使用 Ubuntu 16.04 Server 來進行演示。在運行了一次常規(guī)的 sudo apt upgrade 之后,當(dāng)前安裝的內(nèi)核版本是 4.4.0-121。我想要升級內(nèi)核版本到 4.17, 讓我們小心地開始吧。

有一個警告:強烈建議你在虛擬機里實驗這個過程?;谔摂M機,你總能創(chuàng)建一個快照,然后輕松地從任何問題中回退出來。不要在產(chǎn)品機器上使用這種方式升級內(nèi)核,除非你知道你在做什么。 

下載內(nèi)核

我們要做的***件事是下載內(nèi)核源碼。在 Kernel.org 找到你要下載的所需內(nèi)核的 URL。找到 URL 之后,使用如下命令(我以 4.17 RC2 內(nèi)核為例) 來下載源碼文件:

  1. wget https://git.kernel.org/torvalds/t/linux-4.17-rc2.tar.gz

在下載期間,有一些事需要去考慮。 

安裝需要的環(huán)境

為了編譯內(nèi)核,我們首先得安裝一些需要的環(huán)境。這可以通過一個命令來完成:

  1. sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

務(wù)必注意:你將需要至少 128GB 的本地可用磁盤空間來完成內(nèi)核的編譯過程。因此你必須確保有足夠的空間。 

解壓源碼

在新下載的內(nèi)核所在的文件夾下,使用該命令來解壓內(nèi)核:

  1. tar xvzf linux-4.17-rc2.tar.gz

使用命令 cd linux-4.17-rc2 進入新生成的文件夾。 

配置內(nèi)核

在正式編譯內(nèi)核之前,我們首先必須配置需要包含哪些模塊。實際上,有一些非常簡單的方式來配置。使用一個命令,你能拷貝當(dāng)前內(nèi)核的配置文件,然后使用可靠的 menuconfig 命令來做任何必要的更改。使用如下命令來完成:

  1. cp /boot/config-$(uname -r) .config

現(xiàn)在你有一個配置文件了,輸入命令 make menuconfig。該命令將打開一個配置工具(圖 1),它可以讓你遍歷每個可用模塊,然后啟用或者禁用你需要或者不需要的模塊。

圖 1: 運行中的 make menuconfig

很有可能你會禁用掉內(nèi)核中的一個重要部分,所以在 menuconfig 期間小心地一步步進行。如果你對某個選項不確定,不要去管它。或者更好的方法是使用我們拷貝的當(dāng)前運行的內(nèi)核的配置文件(因為我們知道它可以工作)。一旦你已經(jīng)遍歷了整個配置列表(它非常長),你就準備好開始編譯了。 

編譯和安裝

現(xiàn)在是時候去實際地編譯內(nèi)核了。***步是使用 make 命令去編譯。調(diào)用 make 命令然后回答必要的問題(圖 2)。這些問題取決于你將升級的現(xiàn)有內(nèi)核以及升級后的內(nèi)核。相信我,將會有非常多的問題要回答,因此你得預(yù)留大量的時間。

圖 2: 回答 make 命令的問題

回答了長篇累牘的問題之后,你就可以用如下的命令安裝那些之前啟用的模塊:

  1. make modules_install

又來了,這個命令將耗費一些時間,所以要么坐下來看著編譯輸出,或者去做些其他事(因為編譯期間不需要你的輸入)??赡艿那闆r是,你想要去進行別的任務(wù)(除非你真的喜歡看著終端界面上飛舞而過的輸出)。

現(xiàn)在我們使用這個命令來安裝內(nèi)核:

  1. sudo make install

又一次,另一個將要耗費大量可觀時間的命令。事實上,make install 命令將比 make modules_install 命令花費更多的時間。去享用午餐,配置一個路由器,將 Linux 安裝在一些服務(wù)器上,或者小睡一會吧。 

啟用內(nèi)核作為引導(dǎo)

一旦 make install 命令完成了,就是時候?qū)?nèi)核啟用來作為引導(dǎo)。使用這個命令來實現(xiàn):

  1. sudo update-initramfs -c -k 4.17-rc2

當(dāng)然,你需要將上述內(nèi)核版本號替換成你編譯完的。當(dāng)命令執(zhí)行完畢后,使用如下命令來更新 grub:

  1. sudo update-grub

現(xiàn)在你可以重啟系統(tǒng)并且選擇新安裝的內(nèi)核了。 

恭喜!

你已經(jīng)編譯了一個 Linux 內(nèi)核!它是一項耗費時間的活動;但是,最終你的 Linux 發(fā)行版將擁有一個定制的內(nèi)核,同時你也將擁有一項被許多 Linux 管理員所傾向忽視的重要技能。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2018-07-31 14:49:45

編程語言Java源碼

2022-12-01 09:59:57

內(nèi)核觀測性方法

2023-11-29 12:09:07

AWS網(wǎng)絡(luò)服務(wù)

2023-03-26 12:45:52

Linux內(nèi)核頭文件

2017-11-15 08:50:59

數(shù)據(jù)庫MySQL執(zhí)

2022-11-24 14:34:41

Hap程序鴻蒙

2022-12-06 15:39:16

鴻蒙主干代碼

2023-06-26 15:14:19

WebGL紋理對象學(xué)習(xí)

2022-02-14 10:16:22

Axios接口HTTP

2021-05-19 10:37:16

WebFlux 前置工具

2010-04-01 13:58:16

WinCE 6.0Cashmere

2021-11-12 11:28:01

Linux 內(nèi)核驅(qū)動Linux 系統(tǒng)

2015-08-21 09:48:11

女朋友編程學(xué)習(xí)編程

2024-02-23 10:25:33

Kubernetes自動擴縮容工作負載

2023-03-28 07:32:37

2024-09-11 09:25:00

2021-11-26 09:44:42

鏈表節(jié)點定位

2021-05-20 07:15:34

RSA-PSS算法簽名

2023-06-20 07:27:07

架構(gòu)組件插件

2020-02-11 12:41:16

Pandas數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號