现阶段打印机接口主要有:USB、并行、传真、网络和无线网接口(wifi)。目前我们的盒子硬件也就涉及USB、网络两种。
一、网络:
通过网口将打印机接入路由器LAN口、配置打印机时将IP设为路由器LAN口同一网段,那么在局域内的设备应该可以直接访问到打印机,对于路由器来说只提供一个网络数据通道就可以不需要做其它的开发。
二、USB:
openwrt系统有打印机服务的功能,可以参照openwrt系统来实现盒子的打印机功能,实现原理参考此文章:http://lib.youkuaiyun.com/article/embeddeddevelopment/34098。
openwrt系统打印机服务实现的相关技术:
内核配置:
配置内核支持USB打印接口
Device Drivers --->
[*] USB support --->
<*> USB Printer support(选择)
接上打印机后自动生成设备节点/dev/lp0,使用lpinfo –v命令可以查看打印机信息。
涉及相关源码:
- cups,此服务在buildroot里有,可以直接配置上就可以使用,已编译测试过、服务可以正常运行。CUPS实际上是一个集成的服务。包括了前端接收打印命令的相关程序,后端控制打印机硬件的程序,中间则是打印驱动,所以主要的功能是靠cups来实现,对于cups的配置和使用在开发过程中需要和具体业务相结合。
- foo2zjs,打印机驱动,官网下载:http://foo2zjs.rkkda.com/,做过单独编译、编译成功。
- ghostscript,官网地址:http://www.ghostscript.com/download/gsdnld.html,还未做编译验证。
- Hplip,linux下hp打印机驱动,还未做编译验证。