Unraid 安装CUPS实现共享打印和无线打印
2020-11-29 16:08:34
51点赞
486收藏
51评论
创作立场声明:个人瞎折腾,文中部分内容来自网络,本人并非专业人士,只是将个人的折腾经验分享给大家,如有错误请大家指正
今年上半年买了一台高配蜗牛,蜗牛D的机箱、G5400的cpu、B365的板子,就开始了一系列的折腾,更换了8700t es cpu,带pcie 插槽的蜗牛C机箱,4口pcie 网卡,折腾出了一台windows all in one 机器,软路由、群晖、文件共享等等,用了大半年,一直很稳定,但是也有些美中不足,待机功耗也有些高。最近看了站内大神们unraid的文章,提到了unraid的硬盘休眠功能不错,文件共享、docker、虚拟机等功能也很强大,就将机器换成了unraid系统,折腾过程就不细说了,今天主要说一下unraid下打印机共享的问题。
楼主家里目前有两台打印机,最早买了一台联想的S2001,只能打印不能复印扫描,后来又趁着特价买了一台奔图的M6200NW一体机,后者虽然支持无线功能,但是特别不好用,连接麻烦不说,还动不动就连不上,只能连接电脑重新连接,比家里原来用的hp 4518 无线功能弱爆了。索性后来直接放弃了无线功能,直接跟s2001一样,插在all in one主机上,通过windows共享打印机共享给家里的其他机器使用。
换了unraid系统后,如何实现打印机的共享就成为了折腾目标之一。
方案一、群晖实现
因为新的系统虚拟了群晖系统,而群晖系统自带了打印共享的功能,在“控制面板 – 外接设备 – 打印机”栏目内,但是不知什么原因,添加后可以识别打印机,但是点击打印后会一直不停的打印空白页
,群晖我也不是太熟,网上搜了下也说群晖的打印共享不太好用,遂放弃。
群晖共享打印机页面
方案二、centos实现
网上搜了一圈方案,发现了利用cups可以实现打印机共享,还能实现airprint和android无线打印,功能很强大。网上的经验贴大多是利用centos等linux系统安装实现的。于是新虚拟了一个最小化的centos的虚拟机,按照网上的提示安装cups,成功实现了打印机的共享,具体安装过程可参考网上的相关内容,这里简单说一下:
1、VNC进入centos,安装cupsyum install -y cups
2、启动并设置cupssystemctl start cups
确保防火墙已经放通631端口,楼主一开始就在这里卡了很久,怎么也访问不了设置页面firewall-cmd –permanent –add-port=631/tcp
service firewalld restart
这时候是无法从局域网内访问cups的,原因是因为cups的配置只允许本地访问。
这时候需要编辑cups的配置文件vi /etc/cups/cupsd.conf
将Listen 改为Port 631
在如图位置添加Allow All
然后重启cupsservice cups restart
3、局域网内其他主机打开web输入http://IP:631/admin,输入centos的账号密码,点击添加打印机(add printer),选择local printer中对应的打印机型号,依次点击continue,最后选择厂商和型号,如果没有对应的型号,随便选择一个即可。
4、添加完成后,进入printer界面,点击添加成功的打印机名称,进入打印机页面,记录该网页的网址,即是后续添加打印机的型号。
5、Windows本地添加打印机
添加设备,点击下侧“我所需的打印机未列出”,选择按名称选择打印机。输入4步骤中的打印机网址(http://192.168.6.9:631/printers/Lenovo_S2001,此处注意将https后面的s去掉)。后续关键点就是选驱动,一定要对应型号,不然会出现很多问题。
6、点击确定添加完成,这时候就可以进行打印了。
本人的两台打印机都不在cups的支持范围之内,没有相关的驱动,只能采用上述方式进行共享打印(使用的是windows上安装的驱动),手机打印的话因没有cups上的驱动,打印出来的都是空白。但个人手机上打印的情况不多,能共享就好了哈。
方案三、Unraid 上docker实现
上述方案用了一段时间,偶然间发现虚拟机对整机的功耗影响很大,群主的机器装了4个虚拟机:windows10、openwrt、群晖、centos,带8t、4t、3t三块机械硬盘,其中3t的硬盘直通给群晖使用,结果发现在硬盘休眠的情况下,待机也要接近50w,并不比当初windows时省电。后来有一次关闭windows10虚拟机后再看功率,直接降低5W,再关掉群晖,再降3W,关掉centos也能降2W,openwrt要做旁路由不能关,windows10和群晖可以需要的时候再开,而centos只用了打印共享的功能,想着如果能用unraid的docker实现的话,这2W的功耗就能省出来了。
上unraid的app中搜了下,好像没有cups的应用。网上搜了很多资料,都没有介绍利用unraid上的docker安装cups的,大多都是群晖的docker内安装,看了unraid的还是小众一些。只能参考群晖的帖子进行安装,比如这一篇:
低成本的无线打印:群晖上通过Docker容器实现Airprint欢迎参加#果粉是怎样炼成的#征稿,围观秋季发布会新品!是什么让苹果生态无法割舍?快来讲讲你的果粉炼成记,AirPodsPro等丰厚奖品等你来!>点击这里查看活动详情我的昵称已被注册|赞107评论171收藏1k查看详情
群晖的docker中是可以搜索到cups镜像的,而且上述帖子中楼主也给出了直接安装的代码,但是unraid中不能直接用,需要进行一定的修改,这里直接给出unraid中docker安装cups的命令,大家进入unraid的终端,运行下列命令即可:docker run -d –name=”cups-google-print” –net=”host” –privileged=”true” -e TZ=”UTC” -e HOST_OS=”unRAID” -e “CUPS_USER_ADMIN”=”admin” -e “CUPS_USER_PASSWORD”=”pass” -e “TCP_PORT_631″=”631” -v “/mnt/user/appdata/cups-google-print”:”/config”:rw -v /dev:/dev -v /etc/avahi/services:/avahi -v /var/run/dbus:/var/run/dbus mnbf9rca/cups-google-print
运行完毕,局域网内其他主机打开web输入http://unraid的IP:631 即可访问cups设置页面了,非常简单。
后面安装打印机跟前面一样,大家参考前面内容即可。
至此,实现了docker安装cups,资源占用比虚拟机好多了,功耗也降低2W,美滋滋。楼主的机器,在只保留openwrt虚拟机的情况下,待机功耗最低只要30W。。。
奔图 Pantum M6200NW series cups打印驱动安装
上述方案因为没有在cups中安装对应的打印机驱动,因此手机上虽然能够搜索到打印机,但是却不能正常打印,所以实现上述windows共享之后,就一直研究如何实现手机无线打印。
偶然间看到一篇帖子,提到如果打印机有linux驱动的话,基本都能实现cups中的驱动安装,于是就上奔图网站上搜了下,竟然真有M6200系列的linux驱动,后面就好办了。
进入docker控制台
依次运行以下命令:wget https://global.pantum.com/global/wp-content/uploads/2016/06/Pantum-Ubuntu-Driver-V1-1-5-1.tar.gz
tar -zxvf Pantum-Ubuntu-Driver-V1-1-5-1.tar.gz
sudo dpkg -i Pantum Ubuntu Driver V1.1.5/Resources/pantum-1.1.5-amd64.deb
反斜杠无法显示,最后一条命令大家参考上图
驱动就安装好了,再次进入cups后台,找到原来添加的打印机,选择“Modify Printer”
然后就能发现对应的驱动了,选择正确的驱动提交,然后就可以通过手机打印了。
PS:苹果手机airprint可以直接用,安卓要用的话需要安装个APP,“Android CUPS Print”,大家自行搜索下载安装即可。
如果你的打印机是其他型号,且不在cups支持库中的话,可以上打印机官网搜索linux驱动,利用本方法安装即可。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184217.html原文链接:https://javaforall.cn