Linux中對打印機的支持比較有限,很多打印機廠家也很少有專門針對Linux適配的相關(guān)驅(qū)動,今天以I.MX8MP平臺為例,介紹如何適配cups打印協(xié)議,該協(xié)議支持常見打印機通訊協(xié)議,無需復(fù)雜的廠商打印機驅(qū)動。

在部署測試之前我們需要查看cups所支持的一些后端協(xié)議,比如tcp/ip usb等等,在編譯出來的/usr/libexec/cups/backend目錄中可以查看到,如下圖所示:

本篇文章主要是以USB打印機為例,將cups部署在我司I.MX8MP開發(fā)板上。
這里直接從已經(jīng)編譯好的cups開始如何部署,編譯是在yocto工程中進行的,可以使用bitbake -e cups | grep ^SRC_URI命令查看當前yocto工程是否包含相關(guān)配方,如果沒有請按照對應(yīng)的yocto工程適配。編譯出來后主要是有以下目錄,如下圖所示:

其中我們需要將必要的文件對應(yīng)拷貝到開發(fā)板的目錄中,其中包括:
/etc/cups、/usr/lib/、/usr/libexec/cups、/usr/share/cups、/usr/bin/、/usr/sbin/,將所有的目錄拷貝完成后可以通過cupsd -t命令檢查是否有哪些文件缺失,如果所有環(huán)境都正常,會打印如下圖所示的信息:

接下來還需要修改相關(guān)配置文件,將所屬用戶、權(quán)限等與我們當前的環(huán)境對齊,主要是修改/etc/cups/cups-file.con的內(nèi)容,如下圖所示:

以及我們默認移植進來后/usr/libexec/cups/backend目錄下所屬為weston:wetson,需要將其修改為root:lp,以及更改相關(guān)權(quán)限,使用如下命令:
chown -R root:lp /usr/libexec/cups/backend
chmod 2750 /usr/libexec/cups/backend
chmod 0750 /usr/libexec/cups/backend/*
按照上述步驟部署完成后,環(huán)境也就完成了,接下來需要具體設(shè)備的接入以及打印工作。
插入USB打印機,如果正常識別可以在lsusb中查看到自己的打印機設(shè)備,同時也可以使用/usr/libexec/cups/backend/usb命令查看,如果正常被cups識別到如下圖所示:

在以上環(huán)境部署正確,打印機也被完全識別到之后,開啟打印機服務(wù),輸入命令cupsd -l &,服務(wù)會持續(xù)運行在后臺,如果運行之后沒有在后臺中發(fā)現(xiàn)該進程,那么說明前面的配置哪里有問題,可以按照前面的步驟進行自查,正常服務(wù)起來后就可以添加打印機了,以XP237B為例,命令如下:
lpadmin -p XP237B -E -v "usb://Xprinter/XP-237B" -m raw
添加一個名叫XP237B的打印機,-E 使能打印機,-v指定設(shè)備URI,后面直接粘貼上面/usr/libexec/cups/backend/usb里檢測到的內(nèi)容,-m raw使用raw模式,數(shù)據(jù)直通打印機,不做任何數(shù)據(jù)轉(zhuǎn)換,添加完成后就可以直接啟動打印任務(wù)了。
echo -e "SIZE 40 mm,30 mm\nGAP 2 mm,0\nCLS\nTEXT 10,10,"2",0,1,1,"Test"\nPRINT 1\n" | lp -d XP237B
這里主要是以TSPL2指令發(fā)送打印任務(wù),具體解析為:
設(shè)置標簽尺寸為40*30,標簽間隙2mm,清除圖像緩沖區(qū),在坐標(10,10)上打印文本“Test”,打印一份,一切正常就會看到在單張標簽紙的左上角打印Test字樣。
cups是一個功能十分強大的打印機協(xié)議,不僅僅后端協(xié)議支持廣泛,還支持網(wǎng)頁前端顯示相關(guān)打印機以及打印任務(wù),這里就不再展開描述了,有興趣可以仔細參閱相關(guān)文檔及教程。
-
嵌入式
+關(guān)注
關(guān)注
5208文章
20620瀏覽量
336668 -
打印機
+關(guān)注
關(guān)注
10文章
845瀏覽量
48914 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6398瀏覽量
120442
發(fā)布評論請先 登錄
樹莓派之無線打印機
求分享如何特別移植i.MX8MP的信息?
i.MX8MP/Linux 5.4.70.2.3.0 HDMI熱插拔顯示異常是怎么回事?
memtool是否支持i.MX8MP?
i.MX8MP能夠解碼來自8MP USB攝像頭的MJPEG視頻嗎?
如何擴展imx8mp.dtsi中的i.mx8mp cpufreq設(shè)置以降低cpu溫度?
打印機接口技術(shù)
CUPS的打印控制管理系統(tǒng)
RFID打印機和條碼打印機的區(qū)別
強大視覺方案:i.MX8MP與AR0144的完美結(jié)合
基于AR1335和i.MX8MP的視覺方案
技術(shù)分享 | I.MX8MP如何適配CUPS打印機
評論