说明
系统:黑 dsm6.2.1 intel
打印机:奔图 p2510 只有usb,不支持隔空打印
群晖原生接上usb就可以实现windows系统共享打印
每次开电脑很麻烦,所以需求实现 ios的隔空打印
方案
群晖dsm自带的linux打印系统CUPS服务,支持的型号有限
所以需要关闭自带的服务,然后利用群晖docker另起一个新的CUPS服务,用来实现打印机共享
搭建docker ui 替代群晖 docker注册表功能
在安装docker cups之前,还有个需要解决的地方,群晖的docker界面注册表功能,国内可能以后都完犊子啦,所以第一步是搭建一个第三方替换方案。
开启群晖ssh,进入命令行
拉取docker ui镜像
docker pull joinsunsoft/docker.ui-
设置端口,并启动
- 进入web界面
http://ip:8999
ginghan/123456
如果一直提示监控事件已退出,删除容器,然后在ssh中输入
docker run --restart always --name docker.ui -d -v /var/run/docker.sock:/var/run/docker.sock -p 8999:8999 joinsunsoft/docker.ui
- 正常界面如下
搭建docker CUPS(docker linux打印系统)
- 拉取CUPS镜像,镜像选择 mnbf9rca/cups-google-print
mnbf9rca/cups-google-print
创建两个文件夹,在filestation里可以建
/volume2/docker/airprint/config
/volume2/docker/airprint/avahi
我的文件夹在volume2里面,注意一下ssh关闭自带cups服务,并加入计划任务中
synoservicecfg --hard-stop cupsd
synoservicecfg --hard-stop cups-lpd
synoservicectl --stop cupsd
synoservicectl --stop cups-lpd
- 进入ssh,使用mnbf9rca/cups-google-print镜像创建名为airprint的容器,映射631端口,这里还是注意一下volume的名称
docker run -d --name=airprint --net=host \
--privileged=true \
-e "CUPS_USER_ADMIN"="admin" \
-e "CUPS_USER_PASSWORD"="pass" \
-e TZ="Asia/Shanghai" \
-e HOST_OS="Synology" \
-e TCP_PORT_631=631 \
-v /volume2/docker/airprint/config:/config \
-v /dev:/dev \
-v /volume2/docker/airprint/avahi:/etc/avahi/services \
-v /var/run/dbus:/var/run/dbus \
mnbf9rca/cups-google-print
- 访问
http://IP:631
admin/pass
- 添加打印机
-
点击 Add Priner
- 选择识别到的本地打印机,继续
-
添加,选中Sharing共享
-
驱动选择页,cups中没有奔图打印机的驱动,需要我们自行选择PPD文件,这个地方选择红框部分
-
==关键点==解决驱动问题
去奔图官网下载驱动,提取PPD文件和Filter文件
解压后Resources文件夹里有个pantum_1.1.99-1_amd64.deb文件,这个需要用dpkg才能解压,windows下360解压软件能解压出来(好吧,用完就卸载),解压后继续解压里面的date.tar,得到文件夹如下:
ppd文件路径:
usr\share\cups\model\Pantum\Pantum P2510 Series.ppd
Filter文件路径:
usr\lib\cups\filter\pt2510Filter
- cups页面上传ppd文件
- 最后上传Filter文件到cups容器
Filter文件需要传到docker容器中 /usr/lib/cups/filter/ 目录下
首先把pt2510Filter上传到/volume2/docker/airprint/config文件夹下,因为我们映射了config文件夹到容器中,上传使用群晖file station就可以。
ssh后进入容器进行复制
docker ps # 查看有哪些容器
# 上面已经给容器命名为airprint
docker exec -it airprint /bin/bash #进入airprint终端
cp /config/pt2510Filter /usr/lib/cups/filter/ #复制Filter文件到指定文件夹
验证
刷新cups页面,点击Printers标签,Status显示为Idle
打印一个测试页,看一下是否正常
windows连接共享打印机
这个地址从哪里来的?看这里
复制地址栏
airprint隔空打印
点纸张大小
A4在下面,一直向下拉