老式打印机通过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服务
启动Bonjour服务

🔺控制面板→文件服务→高级设置,勾选Bonjour服务

SSH连接
SSH连接

🔺然后在终端机和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

新增文件夹
新增文件夹

先切换成管理员

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 管理界面
WEB 管理界面

现在,可以访问 http://群辉IP:631 ,看到 CUPS 的 WEB 管理界面了。

CUPS添加打印机

先把打印机连接到群辉NAS的usb接口上,来到Administration点击Add Printer添加打印机,第一次会要求输入账号密码,默认都是print

Kyocera FS-1020MFP
Kyocera FS-1020MFP

🔺可以看到已经正确识别出来了打印机,点击下一步,名称随意,共享这个打印机即可

添加打印机驱动

如果你的打印机有对应的驱动直接选择即可,我这个型号没有驱动,只能手动安装了,官网有linux下的PDD格式驱动就有希望,最后发现Github上有大佬分享,记录下如何手动新增驱动。

下载地址:https://github.com/mnorin/kyocera-ppd-installer

思路是先把驱动和安装脚本上传到docker容器里,然后运行安装文件进行安装,文件上传使用共享文件夹最简单。

🔺把下载好的对应驱动和脚本上传到前面新建的config文件夹

SSH连接群辉NAS,切换管理员模式,进入容器:

docker exec -it airprint /bin/bash

进入config文件夹:

cd config

安装驱动命令:

bash kyocera_ppds_installer.sh
安装过程
安装过程

🔺可以看到支持好几种型号,选Y安装,提示安装成功

驱动成功
驱动成功

🔺安装成功后,来到网页版重新选择驱动,发现已经有了对应驱动。

各种终端打印测试

Windows电脑和Mac电脑直接添加打印机即可,很简单。

苹果手机或者ipad直接分享选择对应打印机即可打印。

安卓手机
安卓手机

安卓手机找到对应的打印选项,不同手机位置可能不同,选择对应打印机打印即可。

如何远程(外网)打印?

远程打印也就外网的情况打印有两种思路:

第一:使用vpn服务,搭建openvpn服务后,手机连上vpn后,直接打印。

第二:使用ddns或者内网穿透把打印服务映射出去,添加网络打印机。

总结

通过CUPS能够实现iOS、Android、macOS、Windows等设备的无驱动打印,无论你的打印机是否支持网络打印,只要成功搭建了CUPS,你就可以享受到远程、本地、有线、无线的打印服务,相当于把古董打印机加上了AirPrint共享打印机功能。


$打赏
有任何疑问欢迎关注公众号:"我有一头鲸" 咨询!
打印机 CUPS 远程打印 修改时间:2023-11-26 20:32:42