工具:
GCC
LD
MAKE
util-linux(fdformat)
module-init-tools(depmod)
tune2fs
JFS(IBM的文件系統)
ReiserFS
XFS(SGI的文件系統)
quota-tools
nfs-utils
udev(udevinfo)
ps
這些工具最好與內核源碼目錄下的Documentation/Changes文件來確定哪些版本的工具能滿足你的需求.即最好是按文件中指定的版本工具進行構建.
最好是在普通用戶下進行構建內核,只在必須使用根用戶時才切換到root用戶.
下載好內核源碼:
內核源碼不能放在/usr/src/linux目錄下,因為這裡存放的是構建系統庫所需要的內核,而不是你自己定制的新內核.不要在/usr/src/目錄下進行內核開發,應該在一個用戶目錄下做這些事情,這樣就不必擔心會對系統造成破壞.
創建內核配置:
1.從頭開始:make config
2.默認配置:make defconfig
3.控制台配置:make menuconfig
4.圖形化方式:make gconfig
5.另一種圖形化方式:make xconfig
構建內核:
make
高級構建內核選項:
1. make -j[num]
其中的num中你物理CPU的個數的兩倍.例如如果你的CPU為雙核,則為make -j4.注意,如果-j 後不加任何數值,則在內核構建過程將為內核源碼樹中每一個子文件夾創建一個新的線程,這樣能夠輕易將你的計算機停止響應.並耗費更長的時間才能完成內核的構建.
2.將輸出的文件放到指定目錄中:
make O=/dir/
3.不同的架構:
make ARCH=x86_64 defconfig
安裝內核:
編譯模塊:
sudo make modules
sudo make modules_install
內在映像:
mkintramfs 3.1.6 -o /boot/initrd.img-3.1.6
其中3.1.6為/lib/modules下的目錄名稱.
會生成:/initrd.img-3.1.6文件
sudo make install
make install
主要會生成一下文件:
config-3.1.6 --內核編譯配置文件內容就是make menuconfig出來的文件.config的內容,只是文件名不同而已
vmlinux-3.1.6
System.map-3.1.6
編譯內核->編譯模塊->安裝模塊->做模塊鏡像->安裝內核
(下面一行是使用uheader工具加速啟動系統的發行版並且/var分區是獨立的時候使用的:)
sudo sed -i 's+^start on starting mountall+start on mounted MOUNTPOINT=/var+' /etc/init/ureadahead.conf
編譯內核時,如果出現:
driver mdio-gpio is already registered
請重新編譯內核,並將mdio-gpio設置為編譯為模塊,而不是編譯進內核裡.
後記:
如果沒有必要的話,還是不要用新的內核來運行電腦,只作研究就好..我發現用新的內核,我的Ubuntu10.04變得很不穩定,時不進自動重啟x-window...呵呵...最好只好把原來的弄回去..呵呵..不過linux還真的想不明白它是怎樣運行的,在運行的時候都可以隨意更換內核的...一個字:強!