首页
Search
1
中兴光猫修改mac和sn
862 阅读
2
VSOL V2802RH 2.5g光猫设置
847 阅读
3
中兴3.0与4.0光猫开启telnet方法
703 阅读
4
牛市股票三个买点战法
671 阅读
5
老毛子padavan固件路由实现电视盒子同时看IPTV和上外网
604 阅读
网络笔记
教程类
登录
Search
记忆の风
累计撰写
82
篇文章
累计收到
2
条评论
首页
栏目
网络笔记
教程类
页面
搜索到
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日
229 阅读
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日
210 阅读
0 评论
0 点赞
1
2
3