本帖最后由 mxf21cn 于 2022-9-10 00:25 编辑
HP1020打印机Airprint真无线打印折腾记录 关键词:HP1020 GDI打印机 群晖 docker CUPS Airprint
缘起:HP LaserJet 1020 Plus打印机因皮实耐用、耗材便宜在家中服务多年,此时主力电脑担当打印服务器的重则;自组建黑裙之后一直由NAS充当打印服务器实现PC to NAS打印(参考链接:https://post.**.com/p/aoowp5w9/)。近两年随着家中移动设备越来越多,PC使用时间越来越少,移动端无线打印需求明显上升,百度后了解,实现方案有如下几个:
1、打印机连接带USB口的路由器,成本虽低但不稳定,有时会掉线需要重现连接,甚至打印量稍大就可能死机,体验不是很好;
2、更换支持网络打印的打印机,除了成本较高其他全是优点;
3、添加“小白盒”等打印盒子,需要单独购买,不同的盒子体验差异较大,而且很多对1020这样的老式GDI打印机支持不是很理想;
4、利用N1盒子、玩客云、小米路由3等刷入openwrt、armbian等实现无线打印,需单独购买额外硬件,刷机、调试学习成本较高;
5、树莓派或者PC通过linux操作系统安装CUPS实现无线打印。
综合来看,如果能利用手中闲置的硬件设备或者购置小米路由3,可以实现低成本改造,性价比最高。
通过进一步查阅资料,HP1020无线打印教程多集中于上诉方法4或者5中的树莓派,其他打印机在Linux或者群晖中利用Docker配置CUPS可以实现Airprint无线打印。那么HP1020能否也利用Docker实现无线打印呢?折腾就此开始。
折腾记录:
通过度娘搜索:Airprint 群晖 Docker,这几篇比较靠前,而且写的比较具体、配图清晰(mnbf9rca/cups-google-print就是噩梦之源)
《低成本的无线打印:群晖上通过Docker容器实现Airprint》 https://post.**.com/p/ar07dnkw/ 《低成本的无线打印:群晖上通过Docker容器实现Airprint - 之二》 https://post.**.com/p/a78ewn8o/ 《廉价打印机也能玩AirPrint》 https://post.**.com/p/aoo6r9o7/
就以上面三文为蓝本,开始抄作业,按照教程一步步操作,输入HTTPS://IP地址:631,出现了CUPS管理界面并“顺利”添加打印机HP1020(内心狂喜,现在有多喜悦后来就有多沮丧),
But怎么测试页打印失败?(噩梦才刚刚开始)
难道是作业抄的不对?再次核对操作步骤,没问题;重装黑裙排除一切干扰,再来一次,还是失败。难道是黑裙版本不对?6.23,失败,换7.01-42218,失败;再换7.10-42661,失败。难道是硬件兼容性问题?H410+10100、N3160、N5095,失败,失败,还是失败。难道只能添加盒子或者VMM虚拟Linux了,可又心有不甘。继续度娘,难道是hplip驱动太老?官网最低也是3.17.11,最高都到了3.22.6,这里怎么才3.14.3?更新hplip,居然失败。继续度娘,各种PPD、sihp1020.dl、foo2zjs-z1驱动,无奈Linux初次接触,在Docker中搞不定呀。实在没办法,那就试试重新安装CUPS吧,来到CUPS官网突然发现WHAT?CUPS的最新版本是2.4,mnbf9rca/cups-google-print自带的CUPS只有1.7,突然灵光一闪,换个docker会不会有转机?搜索CUPS下载第一个注册表“olbat/cupsd”安装,CUPS版本2.4看来有戏,点击添加打印机,Oh my god!用户名、密码居然是错的,继续度娘,原来默认的用户名是print,密码也是print,添加驱动(居然有foo2zjs-z1应该离成功应该不远了),打印测试页,成功!成功!成功!!!!!(内牛满面,查了无数的资料折腾了半个月啊。)
回想半个月的折腾经历,归结起来就一句话:不要用mnbf9rca/cups-google-print,用olbat/cupsd吧。
简单操作步骤如下(具体教程可以参考上面三篇文章,只要换个容器就可以了):
1、启用自动Bonjour打印机共享
打开控制面板->文件服务->高级设置->Bonjour勾选,启用Bonjour服务发现,启用自动Bonjour打印机共享
2、关闭群晖系统的CUPS服务并设置为开机启动
1)打开CMD窗口,SSH登陆群晖后后依次执行下列语句(一句一句复制后,在SSH窗口右键就会自己黏贴)
sudo synoservicecfg --hard-stop cupsd
sudo synoservicecfg --hard-stop cups-lpd
sudo synoservicectl --stop cupsd
sudo synoservicectl --stop cups-lpd
2)建立脚本设置为开机启动
打开控制面板->任务计划->新增->触发的任务->用户定义的脚本
在常规页面,事件选择开机,勾选已启动
在任务设置页面,运行命令,用户定义的脚本,填入上面的关闭群晖系统CPUS服务的4句代码
3、建立Docker容器
1)建立目录结构
在docker目录下建立airprint目录,airprint目录下建立congfig和avahi目录
2)将下列代码粘贴到SSH窗口并执行(复制后,在SSH窗口右键就会自己黏贴)
sudo docker run -d--name=airprint \
--net="host"\
--privileged=true \
-eTZ="Asia/Shanghai" \
-eHOST_OS="Synology" \
-e"TCP_PORT_631"="631" \
-v"/volume1/docker/airprint/config":"/config" \
-v /dev:/dev \
-v "/volume1/docker/airprint/avahi":"/etc/avahi/services"\
-v/var/run/dbus:/var/run/dbus "olbat/cupsd"
注意:以上代码没有添加用户名和密码
4、添加打印机
1)登录管理地址
打开浏览器,在地址栏输入【IP地址】:631,点击Administration,勾选右边的最上面三个对号
2)添加打印机
插入打印机,点击Add Printer,输入用户名:print,密码:print,然后添加打印机驱动
注意:必须添加驱动Foomatic/foo2zjs-z1,其他驱动可能无法驱动打印机。
至此,打印机配置完成。建议先利用群晖助手在Windows中添加打印机(以前碰到过直接添加网络打印机不能打印的问题),不成功的话再用添加网络打印机的方法添加打印机。
经测试:在同一局域网(同一网段)内PC Windows系统无论有线无线 ,MATE10(Android 10),P30、MATE30pro5G、MATE40pro+(鸿蒙系统),iPadpro2021,三星tab8(具体型号忘记了,Android 9) 都成功无线打印,较老的Note3(Android4.5) 三星SM-P350(Android5.02)无法找到打印机。
写下以上这些文字一来纪念自己这半个月的酸甜苦辣,二来给广大网友提个醒,避免重走我的老路。
PS:刚买了小米路由mini,准备抄作业https://www.right.com.cn/forum/thread-8175192-1-1.html,愿一切顺利。
|