2009年5月5日 星期二

在linux上安裝Xerox雷射印表機

今天辦公室來了一台全錄的雷射印表機,支援雙面列印;我們大家都用對岸的口吻說著:「激光打印機來囉∼激光!激光!激光!」。可見大家都覺得激光實在是一種很爆笑講法。言歸正傳,要安裝新印表機驅動程式在linux上總是需要一點運氣;根據光碟片上所附得說明文件,這台Xerox Phaser 3428是支援linux的;不過很好笑的是,她並沒有附上for linux的驅動程式或是ppd檔,所以這樣也算是叫做支援linux?

不過,事情總是需要解決。光碟片上所附的安裝程式有windows跟mac版,而且這款網路印表機是支援TCP/IP的,這跟HP給款最新型的設備用他自己的protocol來得友善多了!不過光碟片丟進去卻還是只看到windows的ppd,我完全看不到mac的部份。所幸我後面的資訊工程師他是mac的使用者,他跟我解釋這片xerox的安裝光碟是使用不同的燒錄方式,因此mac的使用者能看到mac的部份,windows使用者能看到windows的部份;linux的使用者呢?由於預設光碟的檔案系統是iso9660,因此也只能看到windows的部份。我身後的資訊工程師是個強者,他說可以提供給我for mac的ppd檔;但是在這之前,我還是想先用自己的方式把xerox印表機給裝起來。
我的想法很簡單,要嘛就是抓光碟上for windows的ppd檔來裝,要嘛就是上xerox的官方網站抓for mac的dmg解壓縮找到ppd來裝;最後如果還是都不行,我就只好用同事給我的mac的ppd檔來安裝。

在linux下我們可以下載for MAC的安裝程式。我是利用http://localhost:631進入印表機管理的話面,他會自動找到xerox的位置,不過在vender裡並沒有預設支援xerox的driver。此時只要指定給他合適的ppd檔,他就可以透過ppd裡所定義的規範去執行功能。雖然The Linux Fundations裡面有提到可以使用HP的hpijs來驅動xerox印表機,不過我並去沒有嘗試;我想把for MAC的驅動程式下載下來,解開並安裝;但是很不幸的,我並沒有辦法從裡面找到ppd檔--他應該包在mac的安裝程式裡面。

由CUPS來新增xerox印表機
Fig1. 由http://localhost:631進入印表機設定頁面,輸入root密碼後選擇「加入印表機」。 Fig2. 輸入自己可以識別的名稱即可。
Fig3. 在這個下拉式選單可以自動找到區域網路內的網路印表機;本圖的ip已被遮蔽。 Fig4. 選擇ppd檔匯入。

下載dmg檔之後,我們要想辦法掛載。linux上可以安裝hfsplus來支援mac的filesystem:

aptitude install hfsplus hfsutils hfsprogs -y
實際上,只要安裝hfsplus即可,後面兩個套件是可以建立filesystem所需要的。以root身份執行
mount -t hfsplus -o loop /path/foo.dmg /path
就可以把dmg檔掛載起來。今天我把機器所附的光碟利用dd複製成iso檔,在linux系統預設讀光碟適用iso9660格式讀取,因此我只能看到for windows的部份;我如果想看到for mac的部份,照樣可以手動掛載他:
mount -t hfs -o loop /path/foo.iso /path
這樣就可以看到hfs的東西了。不過我這麼做並沒有達到目的,因為mac的ppd檔是包在安裝程式裡。那麼,我應該找for windows的ppd檔來下手改改看!

for windows的ppd檔安裝雖然成功,但是設定起來卻是亂碼@@
我們改下載for mac的ppd檔來安裝看看。

該檔是一個ascii,您可以把後面的.txt去掉,也可以保留,cups都可以讀取。
Fig5. 我把該ppd檔轉成unix格式(dos2unix)並匯入,雖然成功了,不過其中的狀態描述會變成亂碼@@,我也不知道原因。 Fig6. (沒有Fig6~)
Fig7. 用mac的ppd檔可以成功加入! Fig8. 設定一切都正常,測試後也可以雙面列印了!!!萬歲!!

小結:
如果今天不是我身後的mac user熱心提供給我mac的ppd檔,今天的測試過程可能很漫長。實際上在linux裡可以用hp通用的driver來驅動xerox 3428;不過事實上印表機的driver就是一個filter而已,某些通用的功能一樣,照常可以列印;只是雙面列印的功能的filter可能各家寫法不太一樣,就喪失了雙面列印的功能。
Linux的使用者總是很認份的解決這些不應該是問題的問題,我想真的不是極度厭惡windows或是極度喜愛unix的人類,還真不會有耐心把時間花在這上面吧??

UNIX is the best !!

沒有留言: