UBUNTU 下原始碼安裝方法
開啟終端獲得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-3.0.00.tar.gz
請到www.kernel.org官網下載最新版本linux-3.0.00.tar.gz核心
假設下載在root目錄,然後解壓到/usr/src/linux-3.0.00目錄裡
cd /usr/src
tar zxvf /root/linux-3.0.00.tar.gz
解壓後會在/usr/src生成新資料夾linux-3.0.00
第三步:配置
把正在使用中的核心配置檔案/usr/src/linux-headers-2.6.32-22-generic/.config 拷到/usr/src/linux-3.0.00目錄下
cp /usr/src/linux-headers-2.6.32-22-generic/.config /usr/src/linux-3.0.00
執行:
cd /usr/src/linux-3.0.00
make menuconfig
終端會彈出一個配置介面
注意主選單最後有兩項: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-3.0.00
第五步:更新配置GRUB引導列表
sudo gedit /boot/grub/grub.cfg
我的grub.cfg新增如下:
menuentry 'Ubuntu 11.04,Linux 3.0.00' --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-3.0.00 root=UUID=33883099-83a5-49f3-9c12-ee6a4d90da9e ro quiet splash
initrd /initrd.img-3.0.00
}
#以下是原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
}
到此為止,整個核心的編譯就全部完成啦。
不過也許你重啟系統時,雖然啟動選單中增加了新核心3.0.00的啟動項,但極可能會啟動失敗,出現以下提示:
warning:can't open directory /lib/modules/3.0.00/modules.dep,no such files or directory
此時不應氣餒,玩LINUX要有敢食螃蟹的勇氣和毅力,哈哈。靜下心,選擇從舊核心啟動登入系統,然後執行以下命令(為了避免輸入錯誤,最好複製下面的命令)修改後就能成功啟動新核心了。
######################################
sudo su (保證獲得root許可權,否則會提示許可權不夠,不能成功完成任務哦)
cd /boot
cp initrd.img-3.0.00 initrd-3.0.00.old (先做一個備份以防萬一,哈哈)
depmod -a
update-initramfs -k 3.0.00 -c
cd /tmp
gzip -dc /boot/initrd.img-3.0.00| cpio -id
touch lib/modules/3.0.00/modules.dep
find ./ | cpio -H newc -o > /boot/initrd.img-3.0.00.new
gzip /boot/initrd.img-3.0.00.new
cd /boot
mv initrd.img-3.0.00.new.gz initrd.img-3.0.00
######################################