注:只支持N1 贝壳云 我家云 粒子云 等arm处理器的机器,集成了大部分的驱动,支持airprint,打印机通电,再部署容器,容器装好了,浏览器打开 192.168.1.xxx:631 打开cups控制界面
docker run \
--name=cups \
--restart=always \
--net=host \
-v /var/run/dbus:/var/run/dbus \
-v ~/airprint_data/config:/config \
-v ~/airprint_data/services:/services \
--device /dev/bus \
--device /dev/usb \
-e CUPSADMIN="admin" \
-e CUPSPASSWORD="password" \
jysky007/cups:v1
代码直接全部复制到ssh界面粘贴执行即可 等待安装完毕
Name栏是给打印机命名,随便写,我就写M1005简单,其它不用写,下面sharing打勾,这样才能共享,点按钮下一步
选择驱动,自带非常多的驱动, N1等ARM处理器的 要选带Foomatic/foo2xqx字样的驱动,别的驱动是适配X86的 据说HP没有提供ARM的插件,我的是M1005 只能选这个能用 如果你的打印机没有驱动可以选择型号相近的带Foomatic/foo2xqx的驱动 然后点击 Add Printer添加打印机。
设置打印机默认参数 不用改直接提交
点上图按钮 打印一张测试页,顺利的话,打印机就工作了。
然后进win10 搜索打印机,正常的话就能搜索到了。
实测 安卓 IOS 都能搜索到打印机。不用安装第三方软件,直接系统自带打印服务里就能搜索到打印机。手机打印建议安装office,不要用wps wps打印好像有兼容问题。
有个问题,打印机如果断电再开机, 发送打印任务就无法打印了,估计是容器识别不到打印机 必须重启cups,
我的我家云装的是灯大的小钢炮系统,管理热插拔的是mdev, 解决方法是 利用mdev程序检测到打印机接入自动执行脚本让cups重启,
在/etc/mdev.conf 文件的最底下添加一行
usb/lp0 0:0 660 @/root/cupsstart.sh
然后再在root目录里添加一个脚本名字 cupsstart.sh 内容
#!/bin/sh
docker restart cups
记得把脚本文件的权限改成0777 ,这样,mdev程序检测到打印机接入,就会触发执行脚本,脚本执行cups重启,很完美,无论cups容器有没有打开,只要打印机通电,容器都会启动或者重启,
(PS:后来发现这段代码有个小瑕疵,会导致后面无法再添加新打印机,不过估计这不是问题,因为家里也就一台打印机,原因是,再添加打印机的时候会导致/dev/usb/lp0 这个节点重新挂载,从而触发脚本重启cups,导致添加打印机界面无法进入,这是个死循环,我找到了完美的解决方法,
方法一。就是不用节点名字/usb/lp0来触发 改为打印机的型号参数 即用
$PRODUCT=3f0/3b17/100 0:0 660 @/root/cupsstart.sh
代替上面那行代码,此处3f0/3b17/100 是打印机的型号参数,可以执行lsusb命令查看。
方法二,就是如果真要再添加打印机或者修改打印机属性,就临时把那个脚本改个名字,这样就不会执行重启cups命令了 嘿嘿。)
如果你的N1是armbian系统的话估计要用udev实现开机重启cups (注意 此法只针对docker版cups,如果是原生armbian直装cups,应该不存在这些问题) 具体可参考博客 https://20122012.xyz/index.php/archives/157/
转自:docker安装cups让打印机实现无线打印(支持PC、IOS、安卓airprint)
https://www.right.com.cn/forum/thread-8220309-1-1.html
(出处: 恩山无线论坛)
- THE END -
最后修改:2023年12月9日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://lg5.top/615.html