2007年4月13日 星期五

Grub gfxboot 多語系開機選單

在試用 SAM Linux 時第一次接觸到 gfxboot,想說這種美美的開機畫面對我們家老婆大人來說,接受度一定會提高不少。其中按下 F2 還可以有 Language 選項,試了一下卻只有英文。可是目錄中明明有一堆其他語系的 .tr 與 .hlp 檔,怎麼會只有英文呢?

打開 boot/grub/menu.lst 一看,發現其中只是多了gfxmenu=(cd)/boot/grub/message 這麼一行而已。也沒有其他多餘的檔案在 boot/grub 目錄中,這個 message 檔還是個 binary file,只好到網路上找找看有沒有修改的方法。

原來這個 message 檔是個 cpio archive,解開來一看 (cat message | cpio -i),裡面包了兩個語系 en/de,另外還多了一個檔案 language,其中列出了兩個語系 en/de,只是最後一行沒有換行,我想問題大概就出在這裡。試了一下,果然沒錯!

把所有語系的 .tr 與 .hlp 檔都加了進來,再把他們的名字都加入 language 中。重新用 cpio 打包
message (ls | cpio -o > message)

哈哈!所有的語系都進來了。

2007年4月11日 星期三

將 B2DpureKGB 跑在外接的 1394 硬碟上

試了幾個中文LiveCD,要能 run 在 1394 上的版本,最方便的好像是 B2DpureKGB。雖然比較喜歡 Opendesktop 的 Pupa5 Live,但是要在開機時就跑在 1394 似乎是有些困難,有試著修改 initrd 加入 1394 必要的模組,居然連 insmod 都不行! 可能是 kernel 在 compile 時就關掉了 dynamic loadable kernel module,真是 orz。
  1. 我的 1394 HDD 是 format 成 ReiserFS,所以要把 reiserfs.ko 加到 modules 目錄,BUILDIN_FS 字串也要加上 reiserfs。
  2. 為了要讓 1394 在 sda,把 Firewire 換到 USB detection 的上面。
  3. 很奇怪的是必須把參數 sbp2_serialize_io=1 拿掉,載入 sbp2.ko 時才不會失敗。
  4. 加入 bootfrom=/dev/sda1 noscsi noeject。
這樣就 OK 了!光碟載入 linux26 與 minirt26.gz 之後就會看到 1394 上的 sda1,然後由 1394 繼續載入 knoppix,這樣就快多了,真好!收工!