ubuntu 內核編譯


網絡的強大再次讓我深深折服……

轉自:http://387424-student-sina-com.iteye.com/blog/728021

第一步:准備工作 

打開終端獲得root權限:sudo su 
然后安裝編譯內核時需要的工具: 

apt-get install build-essential kernel-package libncurses5-dev libqt3-headers 

build-essential  (基本的編程庫(gcc, make等) 


kernel-package   (Debian 系統里生成 kernel-image 的一些配置文件和工具) 
libncurses5-dev  (meke menuconfig要調用的) 
libqt3-headers   (make xconfig要調用的) 
其他工具在升級過程中可以按提示安裝 

第二步:下載內核源代碼linux-2.6.34.tar.gz 
請到www.kernel.org官網下載最新版本linux-2.6.34.tar.gz內核 
假設下載在root目錄,然后解壓到/usr/src/linux-2.6.34目錄里 
cd /usr/src 
tar zxvf /root/linux-2.6.34.tar.gz 
解壓后會在/usr/src生成新文件夾linux-2.6.34 

第三步:配置 
把正在使用中的內核配置文件/usr/src/linux-headers-2.6.32-22-generic /.config 拷到/usr/src/linux-2.6.34目錄下 
cp /usr/src/linux-headers-2.6.32-22-generic/.config /usr/src/linux-2.6.34 
執行: 
cd /usr/src/linux-2.6.34 
make menuconfig 
終端會彈出一個配置界面 
(如果出現問題,可能是第一步的工具沒裝好,可以分別安裝再嘗試。若依然不行,再裝libqt3-compat-headers) 
注意主菜單最后有兩項:load a kernel configuration... 
                  save a kernel configuration... 
先選第一項load ....,意思是,利用當前的內核配置詳單來設置將要編譯的內核,然后選save這一項保存,最后退出配置界面。 


第四步:開如編譯安裝新內核 
執行:sudo make mrproper   (清除以前曾經編譯過的舊文件,如果你是第一次編譯,可不執行) 
執行:sudo make     (編譯,可以加-j4,如果你CPU是雙核心,夠牛的話,因為可以提高速度) 
然后:sudo make install 
再:sudo make modules  (編譯模塊) 
再:sudo make modules_install  (安裝模塊) 
最后創建 initrd文件: 
mkinitramfs -o /boot/initrd.img-2.6.34 

第五步:更新配置GRUB引導列表 
sudo gedit /boot/grub/grub.cfg 
我的grub.cfg添加如下: 
menuentry 'Ubuntu 10.04,Linux 2.6.34' --class ubuntu --class gnu-linux --class gnu --class os { 
recordfail 
insmod ext2 
set root='(hd1,9)' 
search --no-floppy --fs-uuid --set 501d3a42-1d52-4438-99bf-e679da605867 
linux /vmlinuz-2.6.34 root=UUID=33883099-83a5-49f3-9c12-ee6a4d90da9e ro   quiet splash 
initrd /initrd.img-2.6.34 

# 以下是原2.6.32內核啟動項 
menuentry 'Ubuntu,Linux 2.6.32-22-generic' --class ubuntu --class gnu-linux --class gnu --class os { 
recordfail 
insmod ext2 
set root='(hd1,9)' 
search --no-floppy --fs-uuid --set 501d3a42-1d52-4438-99bf-e679da605867 
linux /vmlinuz-2.6.32-22-generic root=UUID=33883099-83a5-49f3-9c12-ee6a4d90da9e ro   quiet splash 
initrd /initrd.img-2.6.32-22-generic 


        到此為止,整個內核的編譯就全部完成啦。 

    不過也許你重啟系統時,雖然啟動菜單中增加了新內核2.6.34的啟動項,但極可能會啟動失敗,出現以下提示:

warning:can't open directory /lib/modules/2.6.34/modules.dep,no such files or directory 


        此時不應氣餒,玩LINUX要有敢食螃蟹的勇氣和毅力,哈哈。靜下心,選擇從舊內核啟動登錄系統,然后執行以下命令(為了避免輸入錯誤,最好復制下面的命令)修改后就能成功啟動新內核了。 


###################################### 
sudo su  (保證獲得root權限,否則會提示權限不夠,不能成功完成任務哦) 
cd /boot 
cp initrd.img-2.6.34 initrd-2.6.34.old (先做一個備份以防萬一,哈哈) 
depmod -a 
update-initramfs -k 2.6.34 -c 
cd /tmp 
gzip -dc /boot/initrd.img-2.6.34| cpio -id 
touch lib/modules/2.6.34/modules.dep 
find ./ | cpio -H newc -o > /boot/initrd.img-2.6.34.new 
gzip /boot/initrd.img-2.6.34.new 
cd /boot 
mv initrd.img-2.6.34.new.gz initrd.img-2.6.34 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM