2007年9月25日 星期二

書房一角

綠綠又帶一點黃色的牆壁,這就是家中的書房。拍攝的時間是傍晚,所以又加添了一些溫暖黃色燈泡的光感。

牆壁上是SunDay最近重拾繪筆的作品,書桌上散佈著彩色墨水的用具。

書桌是公司最近re-layout淘汰下來的剩餘桌板,自己到IKEA買了灰色的桌腳裝上。一支桌腳100元,一張桌子就是400元,還算划得來。

2007年8月20日 星期一

修改 PCLinuxOS 安裝後的 initrd.img

緣由:
還不是為了能繼續用那台 onboard IDE 壞掉的 notebook,只好把硬碟裝進 1394 外接盒,想說會快一些吧。但是安裝完 PCLinuxOS 之後,其中所帶的 initrd.img 是不能支援 1394 外接盒的,於是就有這篇改裝筆記。

改裝步驟:
  1. 新增一個工作目錄 tmp
  2. cd tmp
  3. cat /boot/initrd.img | gzip -d | cpio -i
  4. cp /lib/modules/2.6.xx-xxx/kernel/driver/ieee1394/ieee1394.ko.gz .
  5. cp /lib/modules/2.6.xx-xxx/kernel/driver/ieee1394/ohci1394.ko.gz .
  6. cp /lib/modules/2.6.xx-xxx/kernel/driver/ieee1394/sbp2.ko.gz .
  7. gzip -d *.gz
  8. mv *.ko lib/
  9. vi init 在上半段有 insmod scsi_mod.ko 的那行之後依序加入
    1. insmod ieee1394.ko
    2. insmod ohci1394.ko
    3. insmod sbp2.ko
  10. 存檔,離開
  11. find | cpio -H newc -o | gzip -9 > /boot/initrd-1394.img
  12. 當然還是要修改 menu.lst 指定使用這個新建立的 initrd-1394.img
測試一下,如此應該就大功告成了。

2007年8月16日 星期四

新買的 2GB SD Card 只能使用 1GB 不到

前一陣子買了一片 Transcend 的 2GB SD Card,該開始用都好好的沒什麼問題。用了一陣子之後檔案當然是有增有減,但是這片 SD Card 似乎不會把檔案真正刪除,只是把它們放入隱藏的回收桶。這個應該是個貼心的小功能,因為一般這種卡片多是用在數位相機,在緊急的時候還有機會把誤刪的珍貴照片給救回來。

前天為了測試 USB 碟開機,一時之間手邊只有這片 SD Card 空間最大,裡面又沒什麼重要的資料,想說就把它重新格式化成可開機的 USB 碟來用。我用的是網路上推薦的 HP 工具程式 HPUSBFW。結果那知 format 之後空間只剩下 976MB,幾乎一半的空間平空消失了,頓時心都涼了一半。測試了一下,format 出來的 SD Card 可以在 ThinkPad R32 以 USB 碟開機。想要的開機功能是有了,但是我那其餘的 1GB 要向誰討啊!

上 Transcend 的網站上找看看有有無工具程式可用,輸入產品型號之後居然只有規格書與型錄可以 download,真是什麼跟什麼。只好再往 FAQ 裡找找,找到了一個j問題跟這個滿相像的【 為什麼我的 SD150 卡使用後,容量會變成更小的容量?】裡頭是有一個回朔工具程式,但是註明只能使用在創見的 SD150 卡 。

經過上一次慘痛的經驗,這次變的有些不敢再亂用一通了,搞不好整個 SD Card 都報廢了該怎麼是好?只好在上網用力的找,結果盡是找到一堆要錢的救援軟體,看的我眼睛都酸了。最後在某個論壇看到有人成功的用過 Transcend 的回朔程式救回他的 SD Card。

在找不到其他工具的情況下,只好咬牙試試看。搭配借來的 INTOPIC 4 合 1 讀卡機,結果程式說我讀卡機不支援大於 1GB 的記憶卡,明明之前是可以的嘛,搞什麼 @~@||

只好再向朋友借了一個小小的 Philips USB-SD Reader,這次成功。接著選擇回復容量到 2GB,心中默禱了一下,按下確定,只見讀卡機只見上的小燈閃阿閃的過了好一陣子,成功!!我的 2GB SD Card 救回來了。

有了這個回朔程式在手,我還怕他什麼。接著再試著用 HPUSBFW 製作開機碟,Yes 還是成功。最後查出來是 INTOPIC 的 4 合 1 讀卡機,可能是晶片太舊,以致無法做成 2GB 開機碟,但是在已經格式好的 SD Card 上,卻又不會發生問題。

電子的東西真是難搞。

SAMBA 分享目錄的權限設定

今天在幫同事設定 samba server時發生了以往都不曾遇到過的權限問題。

現象:
Windows 連到 samba 分享出來的資源都發生 "沒有使用權限" 的錯誤。
Server 是 slax6rc4,Samba 是 3.0.25b 分享目錄的 partition 是 ReiserFS 的格式。

但是明明以前的設定在別台機器上都跑的好好的說,怎麼會在這一台才有權限問題呢?不死心,再把可以動的機器設定 sam.conf, testparam, smapasswd 仔細地查了又查,還是看不出問題哩,怎麼這麼怪呢?

最後終於查出來,問題是在目錄的權限一定要開 +x,這樣 samba 的 nmbd, smbd 才能使用該目錄。

唉!今天又長了一個見識。

2007年7月23日 星期一

為 SLAX Server 5.1.8.1 加上 Samba

最近花了一些時間找到了一個小巧的 Linux LiveCD 可以當作 server 使用,kernel 的版本 2.6.16 也還算新。最讓我心動的就是支援 LVM v2,那就是SLAX,一個根據 Slackware 為基礎的 LiveCD。我打算使用 Slax Server 5.1.8.1 這個延伸版本,因為很多我用的到的 service 都已經內建了,但就是獨缺我要用到的 Samba,搞了幾天才把 Samba 弄好,最好在這裡作一下筆記免得日後又忘了。

Step 1 - 下載 module for Samba 3.0.23c
下載點 http://www.slax.org/modules.php?category=network&id=1570&name=Samba+%28Windows+File+Sharing%29

Step 2 - 把下載回來的 .mo 複製到光碟映像檔的 modules 目錄

Step 3 - 重新開機之後 Samba 就會自動在系統中了,只是這時 Samba 的 service 還沒啟動。上面下載回來的 module 是把 Samba 的啟動 script 放在 /root 目錄中,所以要開啟 Samba 是執行 /root/samba 而不是一般的 /etc/rc.d/rc.samba。啟動了之後以為網芳就可以存取了,結果卻總是失敗。關鍵就在下面的 Step 4。

Step 4 - 更改 /etc/rc.d/rc.FireWall 允許開放 Samba Service 需要的 Port。
搞了半天,最後才忽然想到可能是 port 被封鎖了。果不其然,因為這是 for Server 的版本,所以原作者加上了這層安全性的的考量。又因為 5.1.8.1 這個版本沒有包含 Samba,結果就連使用者自行加上的 Samba 也給檔掉了,跑不起來。

首先,使用 vi /etc/rc.d/rc.FireWall 編輯,在約莫第 12 行的 ALLOWED_PORTS 字串中加入 139 及 445 這兩個 port,這是 smbd 需要用到的 tcp port。再於其下插入一行如下:
ALLOWED_UDP_PORTS="137 138"

再往下找到有一段 for ..... done 的迴圈,把這個迴圈 copy 到其下方,但是把其中的 $ALLOWED_PORTS 替換成 $ALLOWED_UDP_PORTS,並且把 tcp 取代為 udp。這樣 nmbd 需要用到的 udp port 137, 138 就可以打開了。

最後重新啟動 rc.firewall 使得更改過的設定生效。
/etc/rc.d/rc.firewall stop
/etc/rc.d/rc.firewall start
如果不放心可以再用 /etc/rc.d/rc.firewall status 確定新的設定是否正確載入。
以上,網路上的芳鄰就可以正常動作了。

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,這樣就快多了,真好!收工!