總結一下在Ubuntu上編譯Linux內核的過程
1.首先要獲得root權限,方法有二,均驗證過:
a.sudopasswd root
******(輸入原先的root口令)
******(輸入新的root口令,可以保持原樣。我就保持的原樣)
******(再次輸入新的root口令)
su root
輸入一遍設定的密碼
之後就可以在終端中使用root權限了!
b. sudo -s –H
*********(輸入設定的密碼)即可獲得root權限
2. 安裝編譯程序
必須:#(sudo) apt-getinstall build-essential kernel-package libncurses5-dev fakeroot
這一步安裝了編譯內核必須的程序,是必須安的
3.cd到內核下載後放置的目錄進行解壓縮,一般有兩種情況:
a. 如果是bz2格式的話使用 tar -jxvf linux-2.6.33.tar.bz2 或tar xjvf linux-2.6.33.tar.bz2(參考網上和老師ppt,自己未驗證)
b.如果是gz格式的話則root@jb-laptop:/home/jb#tar -zxvf linux-2.6.33.tar.gz
4. 復制源碼到目錄/usr/src/下
root@jb-laptop:/home/jb# mv linux-2.6.38.8 /usr/src/
然後cd到 /usr/src/linux-2.6.33文件夾下進行下面的操作(cd到想要的文件夾下有的需要加/有的則不需要,(?)cd直接返回上級文件夾)
5. makemrproper (其實這一步可以省略,因為是剛下載好的源碼,一定是干淨的;如果使用的是已經編譯過的code,則需要做這一步)
6.配置Kernel選項:make menuconfig (這一步很重要,它決定了你可以個人定制化你的Kernel。當你使用menuconfig時,會有一些選擇列出來) 具體東西有些復雜,下面提供不需要手動配置的方法:cp /boot/config-`uname -r` ./.config(用你現在的內核配置設置新內核)然後make menuconfig,進入一個界面然後先最底下的load……然後save……然後exit
7. makebzImage 編譯內核.(大約15分鐘)
8. makemodules 編譯模塊.(1小時或更久)
9.makemodules_install 安裝模塊
此時/lib/modules/下應該新生成一個KERNEL_VERSION文件.
10.生成新內核make install
把編譯好的內核放入/boot中,會把vmlinuz和System.map復制到/boot目錄下,並建立相關的鏈接
11.完成最後的工作
首先是生成initrd.img。
mkinitramfs2.6.38.8 -o /boot/initrd.img-2.6.38.8
如果系統提示沒有安裝mkinitramfs,那就apt-get install mkinitramfs
接著修改引導程序文件grub.cfg
update-grub
盡量不要手動去修改grub.cfg文件,搞不好連電腦都啟動不了
12.重啟電腦
reboot
然後在grub引導界面上選擇你的新內核
啰嗦了這麼多總算是完成了簡單的內核編譯,寫得有些瑣碎,但是每一步都很明確也經過了驗證。其實這還算是比較偷懶的方式,關於內核選項的配置和把內核映象以及System.map拷貝到/boot/下,還有給自己的linux內核改名字都省略了,至於用到的命令也沒有過多的解釋,需要再查資料加深理解。
Linux Kernel 的詳細介紹:請點這裡
Linux Kernel 的下載地址:請點這裡