首页
推荐
INYES图床
网盘
Search
1
牛市股票三个买点战法
225 阅读
2
12代CPU在PVE8.0系统下启用硬件直通及核显虚拟SR-IOV vGPU
201 阅读
3
中兴光猫修改mac和sn
195 阅读
4
VSOL V2802RH 2.5g光猫设置
192 阅读
5
华为万兆猫HN8145X6使能+补全AllShell+修改SN+E改XG+切换华为界面
179 阅读
网络笔记
黑群晖
教程类
Docker小天地
cups技术
登录
Search
记忆の风
累计撰写
78
篇文章
累计收到
19
条评论
首页
栏目
网络笔记
黑群晖
教程类
Docker小天地
cups技术
页面
推荐
INYES图床
网盘
搜索到
12
篇与
的结果
2022-06-23
Docker搭建cups打印机服务器
1、Docker搭建脚本如下:X86机器脚本如下: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 "/airprint_data/config":"/config" -v /dev:/dev -v "/airprint_data/services":"/etc/avahi/services" -v /var/run/dbus:/var/run/dbus "mnbf9rca/cups-google-print"docker run \ --name=cups \ --restart=always \ --net=host \ --privileged=true \ -v /var/run/dbus:/var/run/dbus \ -v /airprint_data/config:/config \ -v /airprint_data/services:/services \ --device /dev/bus \ --device /dev/usb \ -e CUPSADMIN="admin" \ -e CUPSPASSWORD="password" \ tigerj/cups-airprint注释:root是后端账号,password是密码。后面步骤都一样,参考老版步骤,选择驱动,共享打印机,直到cups里能打印出测试页面。这时如果去电脑或者手机的打印服务里搜索打印机是搜索不到的。接下来执行命令docker exec cups service dbus start docker exec cups service avahi-daemon start执行之后去电脑或者手机系统自带的打印服务里搜索打印机,怎么样,是不是搜索到了?2、如何进容器里升级LSB{collapse}{collapse-item label="小技巧" open}看了下当前安装的docker容器是个简易的ubuntu,所以直接输入命令sudo docker exec -it docker容器id /bin/bash(docker容器id可以通过命令docker ps获得)就可以进入docker容器中。如果期间出现问题,输入sudo apt-get update 即可。{/collapse-item}{/collapse}我现在推荐的方法是直接用新建的容器名,如上面的“cups”,直接执行sudo docker exec -it cups /bin/bash省去了docker ps查询容器id。新建的容器首先执行sudo apt-get update然后sudo apt-get install lsb安装lsb。这个过程更加网速不同,安装需要大概20-30分钟左右。3、添加打印机驱动因为各个品牌打印机驱动不同,像佳能,有区分liunx32位,liunx64为,liunx arm64位等,下载的有区分debian跟centos(RPM)。像ubuntu就可以直接使用debian的驱动。只要先在docker里面wget XXXX.deb,然后再进行安装。sudo dpkg -i XXXX.deb如此便已经安装好驱动了。现在进入cups后端进行添加驱动吧。4、问题解答:打印机如果断电再开机, 发送打印任务就无法打印了,估计是容器识别不到打印机 必须重启cups。例如:(1)我家云装的是灯大的小钢炮系统,管理热插拔的是mdev, 解决方法是 利用mdev程序检测到打印机接入自动执行脚本让cups重启,在/etc/mdev.conf 文件的最底下添加一行usb/lp0 0:0 660 @/root/cupsstart.sh然后再在root目录里添加一个脚本名字 cupsstart.sh 内容#!/bin/sh docker restart cups保存后,把脚本文件的权限改成0777chmod 777 cupsstart.sh这样,mdev程序检测到打印机接入,就会触发执行脚本,脚本执行cups重启,很完美,无论cups容器有没有打开,只要打印机通电,容器都会启动或者重启。(PS:后来发现这段代码有个小瑕疵,会导致后面无法再添加新打印机,不过估计这不是问题,因为家里也就一台打印机,原因是,再添加打印机的时候会导致/dev/usb/lp0 这个节点重新挂载,从而触发脚本重启cups,导致添加打印机界面无法进入,这是个死循环,我找到了完美的解决方法)方法一:就是不用节点名字/usb/lp0来触发 改为打印机的型号参数 即用$PRODUCT=3f0/3b17/100 0:0 660 @/root/cupsstart.sh代替上面那行代码,此处3f0/3b17/100 是打印机的型号参数,可以执行lsusb命令查看。(2)如果你的设备是armbian系统的话估计要用udev实现开机重启cups(注意:此法只针对docker版cups,如果是原生armbian直装cups,应该不存在这些问题)在/etc/udev/rules.d目录下新建一条规则,如m1005.rules内容如下:ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="03f0", ENV{ID_MODEL_ID}=="3b17", RUN+="/root/cupsstart.sh" ACTION=="remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="3f0/3b17/100", RUN+="/root/cupsstop.sh"注:"3f0/3b17/100"为打印机型号,需要自行更换。其中add段代码中的03f0 3b17 两个数据要跟你你的实际修改,这两个参数可以通过执行lsusb查看到然后在/root目录里建立两个脚本:cupsstart.sh和cupsstop.sh#!/bin/sh docker restart cups docker exec cups cupsaccept M1005 docker exec cups service dbus start docker exec cups service avahi-daemon start这个脚本实现系统一发现打印机接入,就重启cups容器,并设置打印机接受打印任务,另外将avahi服务启动起来。#!/bin/sh docker exec cups cupsreject M1005这个脚本是实现当打印机断电了,设置打印机拒绝打印任务,为什么要这么设置呢,因为打印机断电之后重新上电,cups会接受打印任务,但是却不打印,这时如果重启,重复发送的打印任务全部会打印出来,为了避免这种情况发生,需要在打印机断电之后设置cups拒绝打印任务。好了这样就完美实现,打印机上电自动启动cups,断电cups拒绝打印任务,并且完美支持airprint,安卓,ios,电脑都能直接搜索到打印机。(3)openwrt安装的docker, openwrt管理热插拔的是hotplug。先到目录/etc/hotplug.d/usb,里面有一个10-usb_printer的文件,打开后,修改里面的内容为:#!/bin/sh if [ x"$INTERFACE" = x"7/1/1" ] || [ x"$INTERFACE" = x"7/1/2" ]; then /usr/bin/usb_printer_hotplug "$PRODUCT" "$ACTION" fi sleep 10 /root/cupsstart.sh然后到/root目录添加脚本cupsstart.sh#!/bin/sh docker restart cups保存后,把脚本文件的权限改成0777chmod 777 cupsstart.sh注:N1等盒子使用的cups,多hp驱动,优先使用。docker run \ --name=cups \ --restart=always \ --net=host \ -v /var/run/dbus:/var/run/dbus \ -v /airprint_data/config:/config \ -v /airprint_data/services:/services \ --device /dev/bus \ --device /dev/usb \ -e CUPSADMIN="admin" \ -e CUPSPASSWORD="password" \ jysky007/cups:v1
2022年06月23日
78 阅读
0 评论
0 点赞
2022-05-21
佳能IP3680打印机使用CUPS,无线打印爽歪了
以下在armbian命令行下操作(玩客云,N1等ARM系统刷armbian都行)1、安装cupsapt-get install cups2、安装打印驱动(佳能)apt-get install cups printer-driver-gutenprint具体佳能打印机驱动列表见http://gimp-print.sourceforge.net/p_Supported_Printers.php惠普驱动apt install hplib*3、修改 cups的配置nano /etc/cups/cupsd.conflocalhost:631改成0.0.0.0:631,Browsing off改成Browsing on,并在下面三个地方( Location /,Location /admin,Location /admin/conf)分别添加Allow all4、重启cups服务service cups restart5、安装airprint支持apt-get -y install avahi-daemon avahi-discover libnss-mdns service avahi-daemon restart手动设置重启刷新bonjour修改 /etc/rc.local 增加开机重启Airprint服务sleep 30service avahi-daemon restart电脑打开浏览器输入https://192.168.X.X:631 登录到打印机管理界面PS:管理员登录帐号密码就是armbian系统的选择Add Printer 添加打印机,我的打印机是Canon iP3680 series,看了一下Epson的支持列表没有,就选了个Canon iP3600 series (Canon iP3600 series),安装测试使用正常。(如果能找到相同型号的驱动最好,找不到也可以试试同品牌的其他型号。其它品牌型号打印机可以参考此步骤试试)添加完成后可以打印个测试页试试。IOS端直接打开文档选择打印,选择打印机就出现上面配置好的打印机,直接打印即可。Android手机第一次用,需要先安装CUPS printing (谷歌商店下载)安装完后打开文档选择打印,选定打印机后就可以打印了。
2022年05月21日
81 阅读
0 评论
0 点赞
1
2
3