嵌入式Linux系統添加通用USB接口的打印機功能,主要包括以下三步。
一.內核添加USB接口的通用打印機識別驅動
在make menuconfig 編譯菜單項選上USB打印機選項:
Device Drivers --->
[*] USB support --->
<*> USB Printer support
插入打印機就可以看到/dev/usb/lp0設備節點了
有了USB接口的打印機設備節點,我們就可以使用相關工具向該節點輸入需要打印的數據了
二.在文件系統中添加打印工具,主要包括以下三個工具:
添加cups工具(主要用於管理打印的服務應用)
添加gohstscript工具(用於轉換文檔格式到打印機能識別的pbm格式);
添加foo2zjs工具(用於發送數據到打印機進行打印);
1.添加cups、gohstscript工具
由於我使用的是Yocto來管理開發Linux系統,而這兩個工具已在Yocto中以下載了該處方,故在Yocto中添加編譯即可。
IMAGE_INSTALL_append = " cups"
IMAGE_INSTALL_append = " gohstscript"
如果不是用yocto開發,可以去以下網址中將cups和gohstscript下載下來,然后設置好編譯器,手動make就好。
https://github.com/apple/cups/releases
http://iweb.dl.sourceforge.net/project/ghostscript/GPL%20Ghostscript/9.04/ghostscript-9.04.tar.bz2
2.添加foo2zjs工具
由於Yocto中沒有關於foo2zjs相關工具的處方,故需要下載安裝包手動編譯,加載到文件系統中。
http://foo2zjs.rkkda.com/
編譯時,具體問題具體分析,配置好編譯器,修改相關makefile的干擾項。
三、將以上三個工具安裝到文件系統中,使用以下命令實現USB打印功能
使用gs工具將pdf文件轉換為pbm文件:
/gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPESIZE=a4 -r600x600 -sDEVICE=pbmraw -sOutputFile=xxx.pbm xxx.pdf
使用foo2zjs工具將pbm文件數據傳輸給lp0設備節點:
/foo2zjs -z3 -p9 -r600x600 xxx.pbm > /dev/usb/lp0
歡迎轉載,歡迎指正,更歡迎點贊。轉載請附原文鏈接。