Linux-3.10.1內(nèi)核的編譯和安裝

1.寫在前面

Linux操作系統(tǒng)包括四個部分:
(1)內(nèi)核:內(nèi)核是一個操作系統(tǒng)的核心羡棵。它負責為其他所有的程序以及服務(wù)提供運行環(huán)境,分配各種軟硬件資源晌姚,管理系統(tǒng)的進程沧奴、內(nèi)存痘括、設(shè)備驅(qū)動程序、文件和網(wǎng)絡(luò)系統(tǒng)滔吠,決定著系統(tǒng)的性能和穩(wěn)定性纲菌。在操作系統(tǒng)中,內(nèi)核的作用類似于人的大腦屠凶。
(2)Shell:Shell是系統(tǒng)的用戶界面驰后,提供了用戶與內(nèi)核進行交互操作的一種接口。
(3)文件系統(tǒng):是文件存放在磁盤等存儲設(shè)備上的組織方法矗愧。Linux系統(tǒng)能支持多種目前流行的文件系統(tǒng)灶芝,如EXT2、EXT3唉韭、FAT夜涕、FAT32、VFAT和ISO9660属愤。
(4)應(yīng)用程序:例如:文本編輯器(vi女器、vim、gedit等)住诸、編程語言驾胆、X Window(圖形界面)、辦公套件贱呐、Internet工具和數(shù)據(jù)庫等丧诺。
其中,
Linux的一個重要特點就是其源代碼的公開性奄薇,任何人都能夠在https://www.kernel.org/上得到任何版本的Linux內(nèi)核源碼驳阎。
靈躍桌面云在使用Windows操作系統(tǒng)中時,通常遇到這樣的困擾:系統(tǒng)運行了一段時間之后馁蒂,出現(xiàn)運行速度越來越慢呵晚、系統(tǒng)盤的數(shù)據(jù)越來越多、剩余容量變得越來越少的問題沫屡。但是饵隙,由于Windows系統(tǒng)不開源,我們無法知道出現(xiàn)這種情況的本質(zhì)原因沮脖。而在Linux操作系統(tǒng)中癞季,利用Linux內(nèi)核的開源特性劫瞳,可從內(nèi)核源碼層定位上述問題,從而對Linux系統(tǒng)進行定制绷柒、優(yōu)化,以滿足功能和性能上的需求涮因。
接下來將以linux-3.10.1版本的內(nèi)核為例废睦,靈躍桌面云帶領(lǐng)大家來詳細了解下如何獲取Linux內(nèi)核源碼,如何編譯养泡、安裝一個屬于自己的Linux內(nèi)核嗜湃。

2.編譯安裝環(huán)境

image.png

注:在下述描述中,涉及在服務(wù)器Ubuntu 12.04操作系統(tǒng)環(huán)境上的所有操作澜掩,均以root身份登錄并執(zhí)行购披。

3.獲取Linux-3.10.1內(nèi)核

通過wget文件下載工具獲取網(wǎng)址https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.1.tar.bz2中的Linux-3.10.1源碼,并保存到系統(tǒng)中的/home/work/kernel/目錄下(也可保存到其它目錄下肩榕,但注意下面的所有操作請在此目錄下進行)刚陡,并解壓。
首先安裝wget和編譯內(nèi)核所需依賴包:
apt-get install wget gcc libncurese5-dev
獲取Linux3-1.10源碼的命令行操作如下:
(1)切換到/home/目錄下
cd /home/
(2)創(chuàng)建work目錄并切換到work目錄下
mkdir work && cd work/
(3)創(chuàng)建kernel目錄并切換到kernel目錄下
mkdir kernel && cd kernel/
(4)通過wget獲取linux-3.10.1內(nèi)核源碼包linux-3.10.1.tar.bz2
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.1.tar.bz2
(5)解壓源碼包linux-3.10.1.tar.bz2
tar –jxvf linux-3.10.1.tar.bz2 –C /home/work/kernel/
(6)解壓后在當前目錄下得到linux-3.10.1文件夾株汉,如下圖所示:

image.png

注:如果Ubuntu 12.04操作系統(tǒng)因為某些原因(例如筐乳,未連接外網(wǎng))無法通過wget獲取linux-3.10.1.tar.bz2,可首先在Windows系統(tǒng)中通過https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.1.tar.bz2下載源碼包乔妈,然后將其拷貝到Ubuntu 12.04系統(tǒng)中的/home/work/kernel/目錄下蝙云。

4.編譯安裝Linux-3.10.1內(nèi)核

首先切換到linux-3.10.1文件夾下:
cd linux-3.10.1
配置內(nèi)核:
(1)保持源碼干凈
make mrproper
注:此操作會將歷史編譯過程中配置的內(nèi)核功能配置文件清除掉,所以只有第一次執(zhí)行內(nèi)核編譯前才進行此操作路召,其它情況若需要清除前一次編譯過程的殘留數(shù)據(jù)勃刨,只需用下面的命令:
make clean
此命令僅刪除編譯過程產(chǎn)生的中間文件和目標文件,而不會刪除歷史配置股淡。
(2)設(shè)置內(nèi)核功能選項
make menuconfig
執(zhí)行上面的命令身隐,可在字符界面中顯示功能配置的圖形界面,如下圖:


image.png

根據(jù)上圖中功能提示配置需要的功能揣非,靈悅桌面云在本次實驗中采用的是默認的配置抡医,通過鍵盤上的左右鍵選擇<Save>保存配置,得到新內(nèi)核的配置文件早敬,如下圖:


image.png

使用鍵盤上的左右鍵選擇<OK>按鈕忌傻,通過鍵盤上的回車鍵確認保存配置。
(3)編譯內(nèi)核和模塊
清除暫存的緩存:
make clean
編譯內(nèi)核:
make bzImage
或:
make bzImage –j4
注:其中-j4表示同時編譯的任務(wù)數(shù)搞监。如果操作系統(tǒng)中有4個CPU核心水孩,可通過-j4加快編譯的速度。此編譯過程較長琐驴,請耐心等候俘种。
編譯內(nèi)核模塊:
make modules
(4)安裝內(nèi)核模塊和內(nèi)核
make modules_install
make install

至此秤标,linux-3.10.1內(nèi)核已編譯完成,接下來靈躍桌面云將為大家描述如何修改Ubuntu 12.04操作系統(tǒng)的默認啟動項宙刘,使得系統(tǒng)重啟后進入新編譯的linux-3.10.1內(nèi)核苍姜。

5.配置開機啟動項

(1)更新啟動項列表,如下圖:
update-grub2


image.png

從上圖中可查看系統(tǒng)中所有的內(nèi)核列表悬包,并可得知新編譯的linux-3.10.1位于列表中第一個位置衙猪。
(2)修改默認啟動菜單的配置文件/etc/default/grub
vim /etc/default/grub


image.png

如圖,GTUB_DEFAULT的值決定了系統(tǒng)啟動時從內(nèi)核列表的第幾個內(nèi)核啟動布近。若GTUB_DEFAULT=0垫释,則表示從第一個內(nèi)核啟動。由于新編譯的linux-3.10.1內(nèi)核位于第一個位置撑瞧,因此棵譬,將GTUB_DEFAULT的值修改為0。
保存后预伺,重啟系統(tǒng)订咸,可查看最新的啟動菜單,如下圖:
reboot


image.png

系統(tǒng)默認從最新編譯的“Ubuntu, with Linux 3.10.1”內(nèi)核啟動扭屁。
注:如果想從老版本的內(nèi)核啟動算谈,可通過上下鍵選擇“Previous Linux versions”進入老版本的內(nèi)核列表進行選擇某一個老版本的內(nèi)核。
(3)查看最新編譯的內(nèi)核
進入系統(tǒng)之后料滥,通過下面的命令可查看當前系統(tǒng)中的內(nèi)核版本然眼,如下圖:
uname -a


image.png

如果能夠看到“Linux Ubuntu 3.10.1”,表示linux-3.10.1的內(nèi)核已經(jīng)編譯葵腹、安裝成功高每。
本文轉(zhuǎn)載于 靈躍云 : 原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市践宴,隨后出現(xiàn)的幾起案子鲸匿,更是在濱河造成了極大的恐慌,老刑警劉巖阻肩,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件带欢,死亡現(xiàn)場離奇詭異,居然都是意外死亡烤惊,警方通過查閱死者的電腦和手機乔煞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柒室,“玉大人渡贾,你說我怎么就攤上這事⌒塾遥” “怎么了空骚?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵纺讲,是天一觀的道長。 經(jīng)常有香客問我囤屹,道長熬甚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任牺丙,我火速辦了婚禮则涯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冲簿。我一直安慰自己,他們只是感情好亿昏,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布峦剔。 她就那樣靜靜地躺著,像睡著了一般角钩。 火紅的嫁衣襯著肌膚如雪吝沫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天递礼,我揣著相機與錄音惨险,去河邊找鬼。 笑死脊髓,一個胖子當著我的面吹牛辫愉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播将硝,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼恭朗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了依疼?” 一聲冷哼從身側(cè)響起痰腮,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎律罢,沒想到半個月后膀值,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡误辑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年沧踏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稀余。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡悦冀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睛琳,到底是詐尸還是另有隱情盒蟆,我是刑警寧澤踏烙,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站历等,受9級特大地震影響讨惩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寒屯,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一荐捻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寡夹,春花似錦处面、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至智绸,卻和暖如春野揪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瞧栗。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工斯稳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迹恐。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓挣惰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親系草。 傳聞我的和親對象是個殘疾皇子通熄,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348