開始讀<Linux裝置驅動程式>的時候,一而再的看見要建立自己的核心源碼樹.起初並不是很明白源碼樹是什麼,經過網上的搜尋,找了點概念,其實應該很形象,樹的形式就是主幹,樹枝,樹葉,都是一層一層的,邏輯性比較強,所以,明白了吧,就是核心的邏輯形式.(當然這是網路上看到的).感謝大家的無私奉獻.
現在開始記下我建立的過程,及自己的想法
1.首先要查看自己的OS使用的核心版本如:
a@a-desktop:~$ uname -r
2.6.32-22-generic/*我的也算是很新的版本了*/
2.查看是否在安裝系統的時候安裝了源碼.
a@a-desktop:/usr/src$ ls
linux-headers-2.6.32-16
linux-source-2.6.32/*這是tar jxvf linux-source-2.6.32.tar.bz2後的檔案*/
linux-headers-2.6.32-16-generic
linux-source-2.6.32.tar.bz2/*就是你的os使用核心相對應的版本,這是我才下的,現在正在making呢,呵呵*,對於ubuntu來說,一般在安裝的時候是沒有的,所以,接下來往下做/
linux-headers-2.6.32-22
nvidia-173-173.14.22
linux-headers-2.6.32-22-generic
3.尋找你相應的核心源碼(這裡不用sudo是一樣的)
a@a-desktop:/usr/src$ sudo apt-cache search linux-source
[sudo] password for a:
linux-source - Linux kernel source with Ubuntu patches
linux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patche/*這是我要下的,記住不是整個哦,開始的時候我把-後面的也一起弄進去了,結果提示有錯誤,呵呵,第一次自己按照網上的來還是容易搞錯呢.多學多動手才是硬道理呀,應了高中老師的一句話:革命還未成功,同志仍需努力*/
4.下面就是下載核心了.
a@a-desktop:/usr/src$ sudo apt-get install linux-source-2.6.32
下載完成後,會自動的存放在/usr/src下,即使你不是在a@a-desktop:/usr/src$下操作的.那下下來後會是什麼樣子的呢,呵呵,就是前面第二步中那樣一個壓縮包啦,然後你找了這個壓縮包了,解壓吧.
5.解壓壓縮包
a@a-desktop:/usr/src$sudo tar jxvf linux-source-2.6.32.tar,bz2/*解壓後源碼全部在linux-sourcc-2.6.32檔案中了.
6.進入解壓後源碼的目錄下
a@a-desktop:/usr/src/linux-source-2.6.32$sudo make oldconfig/*我不知道為什麼,總之按照網上的說法來的*/
7.開始安裝吧,make了,(這個要花很長時間,我沒具體的算過,但是據大家說應該是一個小時左右,可是我花了接近兩個小時,讓我等得呀,呵呵)
a@a-desktop:/usr/src/linux-source-2.6.32$sudo make/*建議用sudo,當然也可以在root下make,但是如果直接make,會出現相應的錯誤,我試了兩次的*/
a@a-desktop:/usr/src/linux-source-2.6.32$sudo make bzImage/*這步和上一步可以一起執行,可以不用make,直接進行這一步.
root@a-desktop:/usr/src/linux-source-2.6.32#make modules /*編譯 模組*/
root@a-desktop:/usr/src/linux-source-2.6.32#make modules_install /*安裝 模組*/
執行結束之後,會在/lib/modules下產生新的目錄/lib/modules/2.6.22-14-generic/, 下面的build檔案就是編譯模組的要用到的檔案。至此核心編譯完成。