歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 下構建內核源碼樹圖文教程

Ubuntu 下構建內核源碼樹圖文教程

日期:2017/2/28 16:07:06   编辑:Linux教程

網上好多文章,他大爺的都是轉來轉去,每一篇中用的。索性還是自己整理一篇吧。

網上牛人多,但是小白問題更多,更何況咱們這號不入門的,因為最近學內核,要寫模塊,模塊要在源碼樹下編譯安裝,又習慣了Ubuntu的OS,不忍轉向他方,還是好好擺置擺置它吧,找的幾篇文章不怎麼好用,下邊開始吧。

PS:當前系統是上一篇配置SSH裡Jun從Ubuntu 9.04更新到Ubuntu 10.04的系統。見 http://www.linuxidc.com/Linux/2011-09/42775.htm

這個網上都這麼裝,就這樣來吧。

1.安裝編譯內核所需要的軟件 build-essential、autoconf、automake、cvs、subversion

$ sudo apt-getinstall build-essential kernel-package libncurses5-dev

libncurses5這個軟件包在使用menuconfig配置內核的時候會用到。

2.進入/usr/src ,在這裡構建源碼樹,我們用下面指令查看可用的源碼包:

$ sudo apt-cache search linux-source

我的提示是:

linux-source -Linux kernel source with Ubuntu patches

linux-source-2.6.32- Linux kernel source for version 2.6.32 with Ubuntu patches

3.那麼就讓我們來下載2.6.32版的kernel,通過下邊命令:

$ sudo apt-get install linux-source-2.6.32

等待下載完成。

4.下載完成後,我們進入/usr/src ,默認會在這裡,看看他的目錄結構:(ls 一下)

我的顯示可以看到有兩對兒Linux-header-2.6.* 的目錄,你的應該是只有一對兒,之所以這樣是以為我的是從9.04更新到10.4,Ubuntu會保留歷史版本,不用管它,記住,這裡linux-headers-2.6.32-34-generic 、linux-headers-2.6.32-34、linux-source-2.6.32.tar.bz2 ,這才是我們用到的。linux-source-2.6.32.tar.bz2這個就是剛剛下載好的源碼,我們來解壓一下:

$ sudo tar –xjvf linux-source-2.6.32.tar.bz2

然後為了操作方便,我們給源碼目錄建立一個軟連接:

$ sudo ln –s linux-source-2.6.32 linux

這樣我們就可以通過linux來操作linux-source-2.6.32目錄了。

$ cd linux

5.進入源碼樹內,然後導入原來內核的配置文件:

$ sudo cp ../linux-headers-2.6.32-34-generic/.config ./.config

(注意:在linux-headers-2.6.32-34-generic 目錄下查看文件列表時,可能看不到.config文件,因為 .開頭的文件是隱藏的,要用 $ ls –a 才能看到);

記住當前在源碼樹中。我們執行一下 $ make menuconfig ,把原來的.config導進來。終端會彈出一個配置界面

  最後有兩項:load akernel configuration...

   save a kernel configuration...

選擇load a kernel configuration保存,然後在選擇save akernel configuration再保存退出,並退出配置環境。

6.好的,下面就是激動人心的make時代了,能不能通過呢?我也在期待,因為之前幾次都沒成功哎,悲催。。。

$ make –j4

(ps:這裡-j4是用4個job來完成整個make過程,並發一下,比較快麼,不過如果你的機器比較卡,還是老老實實的不加這個選項make吧,畢竟make內核的時間還是比較長的,我們可以邊看電影,邊等待他的完成。讓我打開一集死神或者海賊王先看著吧,待它編譯ing):

編譯還在持續,真是漫長。。。一會兒還要去打球呢,趕緊。。。。

Copyright © Linux教程網 All Rights Reserved