ZZ:linux內核編譯安裝!

2011-11-11 03:27 作者:網絡 來源:網絡 瀏覽: 164次 我要評論 (0條) 字號:  

摘要:本來,這篇文章我是一邊做一邊寫的,但是在編譯的時候由於時間太長,就去幹了點別的事情,而後遠程ssh查看電腦編譯完成,就遠程給關機了,結果文章忘了保存了!!! 在編譯安裝之前,我們肯定要有源碼包(廢話),源碼包在哪下載呢,linux內核官網地址爲 htt


本來,這篇文章我是一邊做一邊寫的,但是在編譯的時候由於時間太長,就去幹了點別的事情,而後遠程ssh查看電腦編譯完成,就遠程給關機了,結果……文章忘了保存了!!!
在編譯安裝之前,我們肯定要有源碼包(廢話),源碼包在哪下載呢,linux內核官網地址爲
http://www.kernel.org/,你看着辦把!
現在linux最新的內核穩定版爲3.0.8,今天就拿它做實驗了!
下載完成後解壓,由於我比較懶,直接右鍵解壓,命令太麻煩了!
解壓完以後用終端進入解壓目錄
cd linux-3.0.8
然後編譯
make menuconfig
這裏提示有個錯誤,本來記錄下來了,但是……
反正錯誤的大概意思是缺少一個叫Ncurses軟件包
然後用atp-get安裝那個軟件包提示找不到
TAB一下發現好多,於是直接全部安裝了!
sudo apt-get install ncurses*
好像是提示消耗90多MB的空間,不過不怕,我的硬盤夠大,所以,如果你跟我一樣菜的話,建議用塊大硬盤……
然後重新執行編譯命令
make menuconfig
OK,出來一個界面了
這裏說下這個界面的操作把
方向鍵上下左右不用說了把,select是進入子配置菜單,exit返回上一菜單,help幫助,不過都是鳥語……
[ ] 這樣的空的表示不在內核編譯使用
[M] 這個M表示編譯爲模塊,需要時可以加載
這個就是說編譯進內核
 

然後裏面各個菜單的作用呢,打死我也不說!(我根本就不知道,需要知道的問百度把!)

直接默認沒有修改,按ESC鍵或者exit退出,提示保存,在YES那裏回車就行了!

配置完成後就可以編譯了

make

編譯的過程那是相當快,如果你不着急的話……

因爲當時出去了,也沒記用了多長時間

編譯完成後就安裝

make modules_install

這個完成了就執行

make install

我看的書上這樣就OK了,但是……

我沒有這樣搞成功

 

如果用普通用戶權限執行結果是這樣子的
sh /home/kuanger/software/linux-3.0.8/arch/x86/boot/install.sh 3.0.8 arch/x86/boot/bzImage \
System.map "/boot"
mv:是否覆蓋"/boot/vmlinuz-3.0.8.old",而不理會權限模式0644 (rw-r--r--)?
這裏有個這樣的提示,無論我輸入什麼,都出現下面的內容
/sbin/installkernel: 70: cannot create /boot/vmlinuz-3.0.8: Permission denied
make[1]: *** [install] 錯誤 2
make: *** [install] 錯誤 2
如果用root用戶執行的結果是這樣子的
sh /home/kuanger/software/linux-3.0.8/arch/x86/boot/install.sh 3.0.8 arch/x86/boot/bzImage \
System.map "/boot"
根本不提示錯誤,但好像也沒安裝上!
進入/boot目錄看了一下,發現有3.0.8內核的文件了,於是想手動改一下grub試試
sudo gedit --encoding=utf8 /boot/grub/grub.cfg
用--encoding是因爲直接打開有亂碼,但是utf8編碼好像也不對,但是出來沒亂碼了……管它對與錯的把!
找到原來的內核是這麼一段東西
menuentry 'Ubuntu,Linux 2.6.32-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 326fa59a-f57a-4324-9864-032244d74a6d
linux        /vmlinuz-2.6.32-35-generic root=UUID=d59bb8e5-6b8f-406b-b1c1-7e8de0e210bd ro   quiet splash
initrd        /initrd.img-2.6.32-35-generic
}
於是將它複製後粘貼到上面,將原來的2.6.32改成3.0.8的,發現boot目錄沒有3.0.8的initrd.img,於是百度之,找到這麼個命令
makinitramfs -o /boot/initrd-2.6.33.1.img 2.6.33.1
將這個命令的2.6.33.1改成3.0.8後執行,提示錯誤
未找到 'makinitramfs' 命令,您要輸入的是否是:
命令 'mkinitramfs' 來自於包 'initramfs-tools' (main)
makinitramfs:找不到命令
我想,可能是它爹給它改名字了吧,於是將命令改成它推薦的那個
mkinitramfs -o /boot/initrd-3.0.8.img 3.0.8
這個是需要權限的哦,因爲要在boot目錄下寫入文件,你有兩個選擇,一是通過su命令切換到root用戶,二是在命令前加sudo
執行完成以後,/boot目錄多了一個名爲initrd.img-3.0.8.img的文件,繼續改我們的grub.cfg吧
最後修改的效果是這樣子的
menuentry 'Ubuntu,Linux 3.0.8' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 326fa59a-f57a-4324-9864-032244d74a6d
        linux        /vmlinuz-3.0.8 root=UUID=d59bb8e5-6b8f-406b-b1c1-7e8de0e210bd ro   quiet splash
        initrd        /initrd.img-3.0.8.img
}
改完以後保存,重啓,在grub那裏選擇這個3.0.8啓動,出現錯誤了,不過,等待,還是能啓動的,哈哈!
啓動起來後提示什麼分辨率錯誤,以低分辨率運行,管他高低把,運行了再說!
嘿嘿,還真起來了,查看一下現在的內核
uname -a
還真是3.0.8了,哈哈,不過……不如原來的好用唉!還是重啓切換回去吧!
一次小小的嘗試,呵呵,還是很有意思的,生命在於折騰嘛!

(責任編輯:admin)
發佈了21 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章