Information Technology

Information Technology: Gentoo 更新 Kernel

Contributed by TyroneYeh on Jun 04, 2009 - 11:15 AM

好累! 又要再編過啦 @_@! 因為 Kernel 2.6.29 的 CONFIG_KMOD 設定參數不知跑那去了,讓 Madwifi-ng 模組重編造成無線無法軀動不能上網! Orz

另外就是要拿掉  Symmetric multi-processing support (對稱多處理程序的支援) 設定,因為這台只有單 CPU 也不是雙核心!

Symmetric multi-processing support 跟 CONFIG_MSI 有關係, 關了前者就不能開了

來吧! 開始累人的事囉! 寫文件也是很累呀! 這裡是介紹用 Gentoo Linux 編譯新 Kernel 的方法!
Kernel 版本是 linux-2.6.28-gentoo-r6

  1. 因為不要再把 Kernel 2.6.29 版再裝到 Server 上,可以用安裝指令指定版本 (emerge =gentoo-sources-2.6.28-r?)或把 2.6.29 加到 package.mask 中,加 package.mask 會比較好,因為下次更新時才不會又安裝到啦!
    echo "=sys-kernel/linux-headers-2.6.29*" >> /etc/portage/package.mask
    echo "=sys-kernel/gentoo-sources-2.6.29*" >> /etc/portage/package.mask
    emerge linux-headers gentoo-sources
    rm /usr/src/linux
    ln -s /usr/src/linux-2.6.28-gentoo-r6 /usr/src/linux
  2. 使用目前在用的 Kernel Config,使用 genkernel 指令來編譯 kernel 如果沒有這個就要先安裝下 emerge genkernel 來安裝即可,要再設一下 Kernel Config 就加 --menuconfig 參數
    zcat /proc/config.gz > /tmp/kernel-config
    genkernel --kernel-config=/tmp/kernel-config --menuconfig all
  3. 此時會出現下面的字樣,接著就會到  Linux Kernel Configuration 的選單中
    * Gentoo Linux Genkernel; Version 3.4.10.904
    * Running with options: --kernel-config=/tmp/kernel-config --menuconfig all
    grep: /usr/src/linux/.config: 沒有此一檔案或目錄
    * Linux Kernel 2.6.28-gentoo-r6 for x86...
    * kernel: >> Running mrproper...
    * config: Using config from /tmp/kernel-config
    * Previous config backed up to .config.bak
    * >> Running oldconfig...
    * kernel: >> Cleaning...
    * config: >> Invoking menuconfig...
  4. 怪怪,用選單也看不出來那一個是 CONFIG_KMOD, 用斜線「/」來搜尋一下看看,按 / 後輸入「KMOD」(這是要讓 Madwifi-ng 能正常安裝的選項,沒用無線不用特別選擇)
  5. 都選擇好後按 ESC 幾次跳出選單就會開始編譯 Kernel 囉! 出現下面這樣:
    #
    # configuration written to .config
    #


    *** End of Linux kernel configuration.
    *** Execute 'make' to build the kernel or try 'make help'.

    * >> Compiling 2.6.28-gentoo-r6 bzImage...

  6. 會編譯好長一段時間,這時可以先去吃飯或睡覺啦,等編譯好後再設定 grub.conf
    vi /boot/grub/grub.conf
  7. 在檔案新增一段新 Kernel 的設定,原本像這樣:
    default 0
    timeout 5
    splashimage=(hd0,0)/grub/splash.xpm.gz

    title=Gentoo Linux 2.6.28-r4
    root (hd0,0)
    kernel /kernel-genkernel-x86-2.6.28-gentoo-r4 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
    initrd /initramfs-genkernel-x86-2.6.28-gentoo-r4

  8. 在 splashimage 跟 title 之間新增新 Kernel 的設定,最後改成這樣:

  9. default 0
    timeout 5
    splashimage=(hd0,0)/grub/splash.xpm.gz

    title=Gentoo Linux 2.6.28-r6
    root (hd0,0)
    kernel /kernel-genkernel-x86-2.6.28-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
    initrd /initramfs-genkernel-x86-2.6.28-gentoo-r6

    title=Gentoo Linux 2.6.28-r4
    root (hd0,0)
    kernel /kernel-genkernel-x86-2.6.28-gentoo-r4 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
    initrd /initramfs-genkernel-x86-2.6.28-gentoo-r4

  10. 把模組重編一下用 module-rebuild 指令
    module-rebuild rebuild

  11. 要驗收成果啦,就是重開後是不是正常能開機,網路通不通,服務可不可以正常起動
若不正常就要重開用舊 Kernel 開機再編一次,看是硬碟沒抓到還是網卡 Driver 沒選到!! 正常應該不會有 Driver 沒選到的情況,因為是用舊 Kernel 的 Config 來做的! 通常會有問題是新 Kernel 拿掉了什麼支援造成失敗!

參考資料 http://www.gentoo.org/doc/en/kernel-upgrade.xml 

 

Rating

No one has rated this item yet - be the first!

  • Currently 0 / 5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

1 is the lowest and 5 the higher score.

 

發票登錄摘要

使用者數: 137 位
發票張數: 9980張
花費金額: 84931209423元
中獎金額: 2012000元
金額比率: 0 %
Loading