群晖 USB 打印机 HP DJ 1200 (无线打印)
群晖 7.x 连接 USB 打印机 Airprint
问题是在“折腾”中解决的!
手头有一台黑群(DS918+,DSM7.2.1)和一台惠普LaserJet Pro P1106打印机。由于群晖自带打印机驱动列表找不到P1106,所以只能另辟蹊径,在Container Manager中安装CUPS服务,将群晖作为打印服务器。此方案由本人“折腾”一个多星期,参考了众多网友的文章,成功实现了多平台(Win、安卓、ios)无线WiFi打印。此方案已稳定运行3天,供需要者借鉴。
一、停掉群晖自带的CUPS服务
synosystemctl stop cupsd
synosystemctl disable cupsd
为了防止系统重启之后,系统自带的CUPS启动,在群晖控制面板—任务计划里,开机脚本里面加上这两条命令。
二、打开系统Bonjour
三、建立容器
docker run -d --name=airprint --net=host \
--privileged=true \
-e TZ="Asia/Shanghai" \
-e CUPSADMIN="admin" \
-e CUPSPASSWORD="pass" \
-e HOST_OS="Synology" \
-e TCP_PORT_631="631" \
-v /volume1/docker/airprint/config:/config \
-v /volume1/docker/airprint/avahi:/services \
chuckcharlie/cups-avahi-airprint:latest
从启动后,要重新配置一下。
referer
群晖NAS连接打印机HP P1106实现多平台无线wifi打印(一)_网络存储_什么值得买 (smzdm.com)
群晖 7.0 连接 USB 打印机_NAS存储_什么值得买 (smzdm.com)
群晖dsm7.1 实现老款打印机AirPrint - 哔哩哔哩 (bilibili.com)
GitHub - chuckcharlie/cups-avahi-airprint: Docker image for CUPS intended as an AirPrint relay
群晖dsm7.1 实现老款打印机AirPrint - 哔哩哔哩 (bilibili.com)
2022-07-16 22:23:18 2点赞 10收藏 11评论
最近新买了群晖,发现控制面板里面的提到可以通过USB连接打印机,顿时想起了家里因为没有无线打印功能而被遗忘了许久的打印机。不过令人郁闷的是,家里的型号不在群晖的支持列表里,没有办法即插即用,扒了张大妈上的几个帖子
https://post.smzdm.com/p/av7m390m/
https://post.smzdm.com/p/aekzmn6k/
都提到了使用docker的解决方案(即使用CUPS,还配置了AVAHI可以支持airpint,对于我这个重度苹果全家桶用户简直是美滋滋
)。不过群晖系统升级到7.0之后,以前一些文章提到的一些配置有些都失效了,像是关闭CUPS服务的命令synoservicectl都会显示command not found,而且里面提到的docker镜像都有些老旧过时:
一个是镜像是mnbf9rca/cups-google-print,这个镜像可以识别到USB打印机,但是没办法驱动,会一直报错filter error,说是打印机驱动有问题,尝试过重新安装了对应版本的hplip run文件没有起效,个人感觉这个镜像里面的cups和hplip版本都有点低,可能对新的打印机支持不好,有问题的朋友可以换后面提到的那个试试
一个镜像是olbat/cupsd,这个镜像啥都好,唯一不行的就是找不到打印机
最后去github上重搜了一个 chuckcharlie/cups-avahi-airprint:latest,一步到位解决问题,具体操作其实跟之前的几个帖子都一样,要改的有两个部分:
一个是停止群晖CUPS的命令,要用systemctl或者synosystemctl,但其实好像不停止也没什么关系。。因为即便我的打印机已经可以良好运行了,相关的服务还是在运行,而且cups-lpd不知道改成啥了,反正我也没停过
有问题的朋友可以死马当活马医试试
systemctl stop cupsd
另一个就是要换一个镜像,换成chuckcharlie/cups-avahi-airprint,然后改一下对应的映射目录
sudo docker run -d --name=airprint --net=host
--privileged=true
-e TZ="Asia/Shanghai"
-e CUPSADMIN="admin"
-e CUPSPASSWORD="pass"
-e HOST_OS="Synology"
-e TCP_PORT_631="631"
-v /volume1/docker/airprint/config:/config
-v /volume1/docker/airprint/services:/services
chuckcharlie/cups-avahi-airprint:latest
docker run -d --name=airprint \
--net="host" \
--privileged=true \
-e TZ="Asia/Shanghai" \
-e HOST_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 \
znetwork/synology-airprint
docker run -d --name=airprint --net=host \
--privileged=true \
-e TZ="Asia/Shanghai" \
-e HOST_OS="Synology" \
-e "TCP_PORT_631"="631" \
-v /volume1/docker/airprint/config:/config \
-v /volume1/docker/airprint/services:/services \
--device
chuckcharlie/cups-avahi-airprint:latest
docker run -d --name=airprint --net=host \
--privileged=true \
-e TZ="Asia/Shanghai" \
-e CUPSADMIN="admin" \
-e CUPSPASSWORD="pass" \
-e HOST_OS="Synology" \
-e TCP_PORT_631="631" \
-v /volume1/docker/airprint/config:/config \
-v /volume1/docker/airprint/avahi:/services \
chuckcharlie/cups-avahi-airprint:latest
