「Beaglebone」「Linux」傳統印表機變成網路印表機,也變成AirPrint(iPhone也可直接列印)





因為獲贈了一台黑白的雷射印表機,但因為是接USB線的,所以需要列印的時候總是要跑到印表機前面接線,光這樣就覺得好麻煩...因此一直想要讓這一台傳統印表機可以有連網功能~

手上剛好有一台閒置的「Beaglebone green wireless」就決定拿它來用了,若沒有的話用「Raspberry Pi」也可以,只要是 Linux 的主機都會可以喔~~

「Beaglebone green wireless」規格如下:
■ TI AM3358 1GHz ARM 雙核心微處理器
■ 512MB DDR3 RAM
■ 3D graphics accelerator
■ 浮點運算器
■ 4GB 8-bit eMMC on-board flash storage
■ Bluetooth 4.1
■ WiFi 802.11 b/g/n
■ 4 USB Port



台灣無線網路版本大約一台 $16xx 左右,有線就比較便宜囉~
官網:https://beagleboard.org/green-wireless

不過大家也可以考慮 Raspberry Pi 便宜,網路教學也多~

我使用的系統版本如下:
$uname -a
Linux beaglebone 4.14.71-ti-r80 #1 SMP PREEMPT Fri Oct 5 23:50:11 UTC 2018 armv7l GNU/Linux


相關步驟如下:

安裝印表機軟體

安裝CUPS,CUPS是蘋果公司發展的一套開源標準的列印系統,其支援MacOSX以及其他Unix-like作業系統,其使用"Internet Printing Protocol"並且對大部分的雷射印表機、噴墨印表機提供完整的列印服務。
官網Wiki

我安裝的版本是 2.2.1
$ sudo apt-get install cups

編輯設定檔
$ sudo vi /etc/cups/cupsd.conf 

修改
「Listen localhost:631」,改成「Listen *:631」,允許任何IP都可以登入到這網頁
「location」、「location admin=""」、「location admin="" conf=""」三個段落,在「Order allow,deny 」的下一行,加入「Allow @Local」,或者「Allow From 127.0.0.1」


將自己帳號加入 lpadmin 列印管理員群組,後面會需要輸入加入的使用者帳密。
$ sudo usermod -aG lpadmin iris
重新啟動 CUPS 服務。
sudo service cups restart

設定印表機 

查看機器IP,BBG比較複雜有多個IP,當中192.168.1.102是我上網的IP

$ ifconfig |grep inet
       inet 192.168.8.1  netmask 255.255.255.0  broadcast 192.168.8.255
        inet6 ****::8ac2:55ff:****:****  prefixlen 64  scopeid 0x20
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        inet 192.168.7.2  netmask 255.255.255.252  broadcast 192.168.7.3
        inet 192.168.6.2  netmask 255.255.255.252  broadcast 192.168.6.3
        inet 192.168.1.102  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 ****::d2b5:c2ff:****:****  prefixlen 64  scopeid 0x20
用瀏覽器連上 CUPS 的 Web 介面:https://192.168.1.102:631,要打上 port 631 喔,如果連不上注意一下是否設定檔沒有設定好或者服務沒重啟,順利的話可以看到這個畫面
切換到「 Administration」 頁籤,把「Allow users to cancel any job (not just their own)」打勾,當然也可以不打勾,看大家的需求囉,按下「Change Settings」將會跳出輸入帳密,若不是連https的話也會跳出此畫面,點選繼續瀏覽就OK了

完成存檔後,就可以來加印表機囉~因為我已經加過了,不然有線印表機可以在「Local Pinters」看到,如果是網路印表機的話可以在下圖紅框處看到
PS. HP LaserJet 4250 其實是網路印表機,我只是拿他做示範。
印表機的選擇,分為三種類型:
Local Printers - 本機印表機
Discovered Network Printers - 搜尋到的網路印表機
Other Network Printers - 其他連線方式的網路印表機
選擇後
設定這台印表機的描述資料,並勾選「Share This Printer」,千萬別忘了勾~
指定印表機的驅動程式,「Make」選擇廠牌,「Model」選擇型號
The Linux Foundation - OpenPrinting 可以查詢 CUPS 支援的印表機所有型號,CUPS不支援的話可以直接到印表機廠商的官網下載 PPD (Postscript Printer Description) 格式的驅動程式來安裝即可,最後點選「Set Default Options」,便完成所有設定。

可以在此頁看到你所加過的印表機
可以開始享受網路印表機囉~~

加入 AirPrint 支援

只需要安裝好 Avahi 及 mDNS 套件就行了
$ sudo apt-get -y install avahi-daemon avahi-discover libnss-mdns 

完成後就可以從 iPhone / iPad / Mac / Ubuntu 網路列印了~~開心~~



如果想要讓Win也可以使用,就還需要安裝 Samba 才行,有機會再來寫囉~

留言

這個網誌中的熱門文章

[MAC] MacBook Air 2012 手動換硬碟

[PHP] 將陣列中重複的值刪除最好方法 array_flip (移除陣列中重複的值)

[Linux] 看懂 Linux Memory Usage 記憶體使用率