Archive for the ‘硬體’ Category
glabel
其實 glabel 在 FreeBSD 上是一個很實用的程式,不過平常可能很少聽到他。之前灌 FreeBSD 有提過 glabel。
當硬碟、隨身碟插在不同的 port,名稱會變來變去。硬碟可能從 /dev/ad0 變成 /dev/ad1,隨身碟可能從 /dev/da3 變成 /dev/da7。原因是作業系統通常指認得硬體插在主機板上那一個 port。
如果插在不同電腦或 port 上名稱會改變是一件非常麻煩的事。因此,就會想給他一個固定的名稱。此時,glabel 就可以發揮公用。
因為 glabel 會將資料寫入硬體當中,因此必須先卸載裝置才能 label 上去。最簡單的方式就是重新開機,然後進入「single user mode」。
使用 glabel 前請先確認 kernel 是否有加 GEOM_LABEL 這個選項(GENERIC 預設有)或有 geom_label.ko 這個模組。沒有的話,請先重新編譯 kernel。
進入 single user mode 之後就可以開始下 # glabel label -v name dev(-v 會增加訊息的詳細程度)。
之前灌新的 mail server 的時候,我就開始用 glabel 了(主要原因其實是建 RAID-Z)。按照 /etc/fstab 的順序 label 比較不會搞混或漏掉:
# glabel label -v swap /dev/ad4s1b # glabel label -v root /dev/ad4s1a # glabel label -v home /dev/ad4s1g # glabel label -v tmp /dev/ad4s1e # glabel label -v usr /dev/ad4s1f # glabel label -v var /dev/ad4s1d
標完後可以用 # glabel status 或 # glabel list 看結果:
# glabel status Name Status Components label/root N/A ad4s1a label/swap N/A ad4s1b label/var N/A ad4s1d label/tmp N/A ad4s1e label/usr N/A ad4s1f label/home N/A ad4s1g
確定 label 成功後就更新一下 /etc/fstab :
# Device Mountpoint FStype Options Dump Pass# /dev/label/swap none swap sw 0 0 /dev/label/root / ufs rw 1 1 /dev/label/home /home ufs rw 2 2 /dev/label/tmp /tmp ufs rw 2 2 /dev/label/usr /usr ufs rw 2 2 /dev/label/var /var ufs rw 2 2
下次開機就會使用這些 label 了。重新開機前,請再三確認 label 有成功和 /etc/fstab 沒有錯誤,因為沒弄好的話可能無法開機,需要用救援光碟去救回來。
這樣就完成了。Man page 上有更詳細的說明。
灌 FreeBSD
最近段考完了,我又灌新機器了。這次換 mail server,是一台 HP DL320 G5p,硬體還不錯,CPU、RAM 都很好,雖然硬碟是 SATA。不過對學校而言 SATA 綽綽有餘了。
CPU 是 Intel Xeon X3210 2.13 GHz,RAM 有 4 GB。目前有兩個 500 GB SATA 硬碟,不過下星期應該會變成 4 顆,因為我打算用 ZFS 建 RAID-Z。灌的作業系統是 FreeBSD 7.2-RELEASE amd64,可惜 8.0-RELEASE 還沒出來。
這次我將過程紀錄下來,不過沒有 screenshots,有空再補。這篇很長,因為有不少設定檔和 shell script。
首先當然從光碟開機,很遺憾,沒有成功。從光碟載入核心之後,跑一陣子,然後會出現 READ_BIG 的錯誤。Timeout 幾次後,一直都無法進入 sysinstall。我就這樣跟他耗了很久。最後,有想出解決的方案:
- 改用 DVD 灌
- 用 FTP 透過網路安裝
- 使用 PXE 開機
- 外接一個光碟機
其實我發現只有 amd64 的 CD 會出現這個問題(我有燒過 CD、驗證 ISO,所以是光碟機的問題)。i386 就有成功跑到 sysinstall。但因為我必須使用 ZFS,i386 不是選擇之一。
第一個方案大概最方便,我最後也是用 DVD 灌成功的。第二個嗎,等 kernel 載入 RAM 之後趕快退出 CD,然後透過 FTP 安裝。第三個方案很麻煩,所以直接跳過。第四個方案要注意一下 BIOS 設定。
另外因為要用 ZFS,所以 RAID controller 沒有設定。只是用 JBOD 罷了。況且他功能也不強,好像只能做 RAID 1、RAID 0。
尋找 Lexmark 印表機的 PPD 檔
自從我跳槽到 FreeBSD 以後,印表機一直沒有設定好,所以每次要列印都必須回到 Windows。今天花了點時間想將印表機弄好,印表機是 Lexmark X5470。不幸的是,聽說 Lexmark 對 Linux 以及其他作業系統的支援非常差(所以下次若要買印表機應該會找 HP 的)。
網路上 Linux 和 FreeBSD 有關印表機設定幾乎都沒有 Lexmark 的,不過論壇上有找到這篇用 LPD,於是一步一步照著做。
最主要的 /etc/printcap:
lp|Lexmark|X5470|Lexmark X5470:\
:lp=/dev/ulpt0:\
:sh:sd=/var/spool/lpd/lp:\
:af=/var/spool/printer/Lexmark5400Series.ppd:\
:if=/usr/local/bin/foomatic-rip:\
:lf=/var/log/lpd-errs:
還有 /etc/group:
daemon:*:1:daemon,root,dennylin93
以及 /etc/devfs.conf:
perm /dev/ulpt0 0664
最後的 /etc/rc.conf:
lpd_enable="YES"
最大的問題是我找不到印表機的 PPD 檔!
找不到當然就在網路上到處挖…結果網路上有人說 Mac 的驅動程式裡有!打電話去 Lexmark,接電話的是一個客服人員。問了 PPD 檔結果沒有下落…下次應該要轉接給技術人員才對…
最後懶得再打電話,於是又到官方網站去下載 DMG 檔(尋找的只是 PPD 檔案,因此隨一個版本都可以)。接下來的工作很簡單:解壓縮,找 PPD 檔。
首先,回到 Windows 因為必須使用 <a href="http://www.7-zip.org/"7-Zip。順便打一下廣告,7-Zip 真的很好用,幾乎可以解壓縮所有格式,壓縮的選擇也很多,而且是免費的!解壓縮完 Lexmark_5400_Web_Installer_10.5.dmg,跑出 0.hfs,所以又解壓縮一次。
這次就有資料夾出現了,所以繼續尋找。找到 Lexmark 5400 Web Installer 10.5/Lexmark 5400 Web Installer 10.5.pkg/Contents/Archive.pax.gz!用 Vim 打開後發現這就是我要的檔案(PPD 檔在裡面)。於是又返回 FreeBSD。
先將檔案解壓縮:$ gunzip -k Archive.pax.gz,得到 Archive.pax。這個仍然是壓縮檔,所以再解壓縮:$ pax -r -f Archive.pax。這次得到了 Library/ 與 System/ 兩個資料夾。在 Library/Printers/PPDs/Contents/Resources/ 底下找到了 Lexmark5400Series.ppd.gz!又是壓縮檔…所以就 $ gunzip -k Lexmark5400Series.ppd.gz,得到了 Lexmark5400Series.ppd :-)。
用了 PPD 檔測了一下印表機還是沒辦法列印。現在還找不出問題,不過 PPD 檔總算找到了。希望印表機能趕快弄好。