老式打印机通过CUPS变身AirPrint网络打印机
社长有一台京瓷ECOSYS FS-1020MFP的打印机,没有连网功能,只能通过USB连接到电脑上打印,放在电脑旁平时偶尔打印一些资料啥的,这次给打印机移动到群辉NAS旁边了,准备在群辉NAS上折腾一下CUPS,来共享打印机,你在软路由、威联通NAS、树莓派、玩客云等linux系统上都可以部署。
什么是 CUPS?
CUPS,全称为Common Unix Printing System,是一种在Unix-like操作系统上实现打印功能的重要工具。它是由Apple Inc开源的打印服务,使用的是IPP (网络打印协议)标准,这是从HTTP中衍生出来的IETF协议。
群晖NAS部署CUPS打印服务器
群晖系统自带CUPS这个服务,但驱动支持的不多,所以我们自行在Docker容器里面部署一个cups服务。
![启动Bonjour服务](https://picx.zhimg.com/80/v2-902739380ea2ceccb8f373f73ac3b9ba_720w.png)
🔺控制面板→文件服务→高级设置,勾选Bonjour服务
![SSH连接](https://pic1.zhimg.com/80/v2-647f5b7aee9d5d64e8f6b2b857e7f5d9_720w.png)
🔺然后在终端机和SNMP里开启群辉的SSH连接功能
接下来需要SSH连接到群辉NAS上,关闭群辉自带的CUPS服务,我的是DSM7.2系统,使用如下代码报错:
synoservicecfg--hard-stop cupsd
synoservicecfg --hard-stop cups-lpd
synoservicectl --stop cupsd
synoservicectl --stop cups-lpd
查询Bing得知,您的群晖NAS的DSM版本是7.0或以上,而synoservicecfg命令已经在DSM 7.0中被替换为systemctl命令。您可以使用systemctl命令来管理服务的启动和停止,例如:
systemctl stop cupsd
如果是DSM7.0以上系统只需要执行这一条命令即可。
Docker部署CUPS
在群辉桌面找到 “File Station” — “docker ”
,在该目录下面新建 airprint
文件夹,然后在 airprint 里面新建两个子文件夹 avahi
以及 config
![新增文件夹](https://picx.zhimg.com/80/v2-82d18563a50e0ac8dcfdbc7a451dd9a9_720w.png)
先切换成管理员
sudo -i
运行下面代码
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 "olbat/cupsd"
回到群辉,找到 docker 套件,找到容器,发现已经正常运行了。
![WEB 管理界面](https://pica.zhimg.com/80/v2-9a1e95e025c9580dc2e98a01651ecda2_720w.png)
现在,可以访问 http://群辉IP:631 ,看到 CUPS 的 WEB 管理界面了。
CUPS添加打印机
先把打印机连接到群辉NAS的usb接口上,来到Administration
点击Add Printer
添加打印机,第一次会要求输入账号密码,默认都是print。
![Kyocera FS-1020MFP](https://picx.zhimg.com/80/v2-f42b131629feca9dac33a0c3fe0027d3_720w.png)
🔺可以看到已经正确识别出来了打印机,点击下一步,名称随意,共享这个打印机即可
添加打印机驱动
如果你的打印机有对应的驱动直接选择即可,我这个型号没有驱动,只能手动安装了,官网有linux下的PDD格式驱动就有希望,最后发现Github上有大佬分享,记录下如何手动新增驱动。
下载地址:https://github.com/mnorin/kyocera-ppd-installer
思路是先把驱动和安装脚本上传到docker容器里,然后运行安装文件进行安装,文件上传使用共享文件夹最简单。
![](https://picx.zhimg.com/80/v2-7f75e46c56f230a2876c8f6769b52cb1_720w.png)
🔺把下载好的对应驱动和脚本上传到前面新建的config
文件夹
SSH连接群辉NAS,切换管理员模式,进入容器:
docker exec -it airprint /bin/bash
进入config文件夹:
cd config
安装驱动命令:
bash kyocera_ppds_installer.sh
![安装过程](https://pic1.zhimg.com/80/v2-1dae7d25858b40cc354d16ff21f5bdce_720w.png)
🔺可以看到支持好几种型号,选Y安装,提示安装成功
![驱动成功](https://picx.zhimg.com/80/v2-1782e1c6230038ba7e8cb47621bc2752_720w.png)
🔺安装成功后,来到网页版重新选择驱动,发现已经有了对应驱动。
各种终端打印测试
Windows电脑和Mac电脑直接添加打印机即可,很简单。
苹果手机或者ipad直接分享选择对应打印机即可打印。
![安卓手机](https://picx.zhimg.com/80/v2-2e553d809c683e5035a1b470ff22d95c_720w.png)
安卓手机找到对应的打印选项,不同手机位置可能不同,选择对应打印机打印即可。
如何远程(外网)打印?
远程打印也就外网的情况打印有两种思路:
第一:使用vpn服务,搭建openvpn服务后,手机连上vpn后,直接打印。
第二:使用ddns或者内网穿透把打印服务映射出去,添加网络打印机。
总结
通过CUPS能够实现iOS、Android、macOS、Windows等设备的无驱动打印,无论你的打印机是否支持网络打印,只要成功搭建了CUPS,你就可以享受到远程、本地、有线、无线的打印服务,相当于把古董打印机加上了AirPrint共享打印机功能。
![](https://img.senxi.xyz/imgs/2023/03/6144672515224623.jpg)
![扫码关注公众号](https://img.mao.fan/i/2024/05/29/xlbeza-2.jpg)