CUPS是一个能够让传统的、简易的、带usb接口的打印机变成可以通过网络直接打印包括苹果的airprint的服务
本来N1的openwrt固件就集成了USB打印机,已经能实现通过内网直接打印,但是手机上的文件每次都需要发送到电脑才可以完成打印,所以有没有办法能够实现通过苹果自带的airprint直接打印呢?
答案是肯定的,就是CUPS!!
因为N1本身就运行着Docker CE,所以我更倾向于docker版本的cups。经过一番探索,最终实现了目标,以下记录搭建过程。
- 把打印机的usb接口和N1相连接
- 拉取镜像
docker pull Tigerj/cups-airprint
- 创建容器
docker run \
-d \
--name=cups \
--net=host \
--privileged=true \
--restart=always \
--device /dev/bus/usb \
--device /dev/usb \
-v /var/run/dbus:/var/run/dbus \
-e CUPSADMIN="admin" \
-e CUPSPASSWORD="password" \
tigerj/cups-airprint
- 访问
http://ip:631
账号密码分别是admin/password
- 添加打印机:
Administration
——Add Printesr
一般这个时候直接就能看到你的打印机了,接着勾选Share This Printer
,在Make
选择你的打印机品牌,在Model
处选择打印机的驱动,最后在General
处选择要更改的基本设置即可
如果window电脑要连接这台打印机,需要在cups网页中点击Printers
,选中你的打印机,复制该网页的网址,然后把https改成http
补充创建容器命令解析
docker run \
-d \
--name=cups \
--net=host \
--privileged=true \ //这一句在官方搭建教程中是没有,这一句意义是让容器获得真正的root权限,也是为什么我一直搭建失败的原因
--restart=always \
--device /dev/bus/usb \ //这一句需要根据实际设备usb路径而修改
--device /dev/usb \ //同上,作者只是多写了一个常用的usb路径,可删除
-v /var/run/dbus:/var/run/dbus \
-e CUPSADMIN="admin" \ //cups网页的用户名,可自行修改
-e CUPSPASSWORD="password" \ //cups网页的密码,可自行修改
tigerj/cups-airprint
如果是使用docker creat
命令(镜像作者更推荐)创建容器,记得再补充一句docker start cups
才会启动服务
有了CUPS服务后,就不再需要N1自带的usb打印机以及打印机服务器了
Comments | NOTHING