Raspberry Pi 之 CUPS 與 Cloud Print 設定紀錄

這是一篇對 Raspberry Pi 完全沒碰過的人 (me) 的安裝設定紀錄,免得以後忘光了。

家裡有台 Epson AcuLaser CX17NF,雖然本身可以網路列印,但基本上只能依靠傳統電腦輸出列印。為了讓他跟上時代潮流,能夠直接用 Android、iOS 等行動裝置列印,就必須靠額外的裝置來轉送列印資料,可能方式大概有下面幾種:

  1. 傳統電腦作為伺服器,提供 IPP (Internet Printing Protocol) 與 Cloud Print,但要常時開機。
  2. 高級一點的 寬頻分享器 安裝 Tomato、DD-WRT … 等韌體並安裝 CUPS 與 Cloud Print。
  3. 小型裝置安裝 Linux 與 CUPS、Cloud Print,如 Raspberry Pi (體積小、價格低、資源完整)、基於 Amlogic S905X/S912 的撥放器/開發板 (某些中國製品價格低)、不再使用的Android手機 (反正都不用了 😛 ) …… 等等之類。

目前行動裝置內建直接經由區域網路列印,都以 IPP 的方式為主,無論是 Android Oreo 內建的「預設列印服務」或是 Apple 的 AirPrint (以 IPP 為主的擴充版本)。若是透過雲端列印,目前主要是 Google 的 Cloud Print。對於 Android Oreo 之前的系統,安裝 Mopria Print Service 或 CUPS Printing 即可直接經區域網路列印。

而 Epson AcuLaser CX17NF 這台是富士全錄代工的產品,CUPS 並沒有直接支援,需要另外安裝相對應的驅動程式 (foo2hbpl)。

考量裝置體積、安裝可能遭遇的問題與未來維護上的方便,最後選擇使用 Raspberry Pi 3 B+。外國論壇有人測試使用 Raspberry Pi Zero 系列作為列印伺服器時,因硬體本身效能較差,實際列印前所花的轉譯時間會較久,所以被我排除了。BTW,如果就耗電量、效能與價格來說,Raspberry Pi 3 B+ 並不是最好的選擇 (Raspberry Pi 3 Model B+ Benchmarks, Review, and Comparison)。

新買來的 Raspberry Pi 硬體外殼先安裝好,記憶卡建議選擇循序與隨機讀寫都不錯的卡 (Raspberry Pi microSD card performance comparison – 2018),記憶卡裝上系統 RASPBIAN (Download) 後插上。先接上螢幕,再接上電源開機,否則可能會沒有畫面。電源至少 1A 以上可能就夠了 (FAQs),但是使用的 USB 線材不要太爛,不然可能會造成電壓或電流不足的狀況。開完機後,按照畫面指示設定並慢慢地等待軟體更新完成 (手動更新方式)。若桌面右上角一直出現閃電的符號,可能是電壓不足造成 (dmesg 亦會有錯誤訊息),優先更換一條 USB 線材看看。打開 Raspberry Pi Configuration 可以修改自訂一些系統設定,如果需要遠端連入,可以啟動 SSH 與 VNC。若是不用桌面模式,只使用 CLI (Command Line) 的話,建議語言使用英文,避免系統命令回應的中文顯示不出來。

接著來安裝 CUPS (IPP Server):

sudo apt-get update
sudo apt-get install cups
sudo cupsctl –remote-admin
sudo usermod -a -G lpadmin pi
sudo systemctl restart cups

接著安裝 Epson AcuLaser CX17NF 需要的驅動程式:

wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
tar zxf foo2zjs.tar.gz
cd foo2zjs
make
sudo make install cups

接著設定 CUPS 的印表機。用瀏覽器打開 http://raspberrypi_ip:631/ 並新增印表機,

E1

請啟用選項 “Share This Printer" ,

E2

選擇印表機的驅動程式後,設定預設值。若印表機可以彩色列印,記得預設選項要選 Color。

E4

安裝到這裡,已經可以經由區域網路列印了。

接著來安裝 Cloud Print:

sudo apt-get install cloudprint-service

設定 Cloud Print 所屬的 Google 帳號。用瀏覽器打開下面命令產生的網址,按照說明操作:

sudo cps-auth

重新啟動 Cloud Print:

sudo systemctl restart cloudprintd

安裝完成,測試 區域網路列印 與 雲端列印。

如果重開機後,Cloud Print 沒有正常啟動的話,可以試試開啟 Raspberry Pi Configuration 中的選項 “Wait for network"。若是這樣還是無效的話,按照下面修改 Cloud Print Service 的啟動設定,延遲啟動。

sudo systemctl edit –full cloudprintd

[Service]
ExecStartPre=/bin/sleep 10

BTW, 用有線網路時晶片的溫度似乎會比用無線網路來的高 (?!),查詢晶片溫度的方式:

vcgencmd measure_temp

 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s