甲板人的腦晶片測試場

關於甲板人的電腦及GNU/Linux測試報告。

星期六, 6月 24, 2006

[反省]不順的重灌作業

1.正文

這次重灌桌電, 足足弄了24個小時還沒法弄成滿意的地步。實在讓我意外又生氣。總結來說,這次重灌Debian出現以下問題
  • Debian 3.1rc不能使用linux2.6核心安裝,否則安裝 testing 的任何一個東西都會要求移除kernel-image-2.6.8。如果選擇No取消移除,則整個dpkg都會處於 error、broken狀態,根本無法再安裝任何軟體。
  • 上面那個問題導致我必須自己手動編譯linux-2.6版本。然後,在編譯過程中,產生前一篇文章所述,編譯檔案系統為模組造成無法開機之問題。
  • 最近 testing 的 xorg 進入 xorg 7.0,這造成許多以前沒有的問題。首先,只安裝 xserver-xorg-input-all、xserver-xorg-video-vesa(或其他任何單一模組) 、 xbase-clients 與 xfonts-base 這三者在現在絕對無法成功啟動 X(即使這三者看來似乎構成了完整系統)。因為系統會告訴你找不到/etc/X11/X,也沒有任何 xorg.conf檔案產生。
  • 就算補救上述問題而安裝xserver-xorg或甚至x-window-system-core,也還有個問題揮之不去:現在使用dpkg-reconfigure xserver-xorg設定出來的值,除非在初次安裝,否則根本無法寫入xorg.conf(系統會警告該檔案已經「Customed」,並且不寫入)。
  • 當X好不容易完整可啟動之後,我發現安裝的fluxbox缺少很多themes,而且字體似乎不會根據xorg.conf、/etc/fonts/font.conf的順序設定。這應該不是發行版本的問題,而是我自己找不到此類資訊的問題。但是一周前,同樣 testing 安裝的 fluxbox 卻完全沒有這些問題。
  • 最後完完全全是運氣問題:今天我突然連不上 www.kernel.org 與 ftp.debian.org,偏偏都在我要用的時候。

[記事]編譯Kernel 2.6.17問題與解決

1.正文

系統:Debian GNU/Linux 3.1 testing
現有核心:Linux 2.4.27
編譯前須安裝套件
  • libncurses5-dev
  • make
  • gcc

編譯指令(純文字操作狀態)
  1. (ncftp或w3m下載新的kernel*.tar.bz)->/usr/src
  2. /usr/src# tar jxvf ./linux-2.6.17.1.tar.bz (解開壓縮檔)
  3. /usr/src# cd ./linux-2.6.17.1
  4. /usr/src/linux-2.6.17.1# make menuconfig
進入選單後,有幾個注意事項
  • 預設的config下Processor一律當成386,如果要指定CPU型號的要注意手動選擇。
  • 這非常重要:在File System選項裡,EXT2、EXT3與Reiserfs(如果你要用的話)一定不要編成模組,否則開機會出問題。其它JFS或XFS則是需要決定。
  • 預設的config會自動將Old CD Rom Device (Not ATA or SCSI )全部選上。這通常是不需要的。當然個人硬體狀況不同。
  • 同樣被預設,但我不需要的選項還有ISDN、Wireless整個裝置選項,與部份Graphic裝置選項。
  • 在Sound部分,ALSA並沒有被預設值選取,這個其實關係到系統能不能使用音效,請將之選取,並選擇自己硬體所使用的音效裝置。
  • 如果需要,可以將Frambuff選上。
選完後存檔,依序下指令
  1. make bzImage
  2. make modules
  3. make modules_install
  4. make install
  5. (調整grub或lilo的選單以使用新核心開機)
這邊要注意的是,make modules有時會出問題。所以當編譯過程出現 "depmod ......."等訊息,而不是正常的編譯過程時,就算成功回到shell底下,編出來的東西也不能用。這時,由於我沒有辦法一一研究整個核心原始碼(不知有多少人有能耐...),只能夠重新 make menuconfig ,把一些之前去除或改編成模組的選項編入核心,然後再次 make modules。

最後是調整開機時所用到的initrd.img,這非常重要,因為沒有這一步,核心會找不到模組而無法開機。
  1. mkinitrd -k -o /boot/initrd.img-2.6.17.1 /dev/hdX 2.6.17.1 (hdX->你的系統分區;2.6.17->核心版號)
大致上就是這樣。今天運氣不好,ftp.debian.org與www.kernel.org都有陣子連不上...