1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Openwrt编译CUPS 共享打印机给手机和PC-0415更新

Openwrt编译CUPS 共享打印机给手机和PC-0415更新

时间:2021-02-20 17:08:28

相关推荐

Openwrt编译CUPS 共享打印机给手机和PC-0415更新

背景:一台小主机切换成了ESXI,无法连USB打印机共享到局域网了,书房路由换了免费薅的K2P,没有USB口。

3215U小主机安了Ubuntu,编译Android成功,耗时也还可以,昨天LEDE也编译成功了,看样子可以长期Ubuntu下去了。

既然这样,一直听说CUPS比Openwrt的打印机共享好使,正好试试

1. 安装CUPS

sudo apt-get install cups

2. 安装打印机驱动

闲鱼薅的HP1112找了一圈,也没有合适的驱动,敲了lpstat -p后,发现已经识别了,打开网址127.0.0.1:631/printers发现的确识别出来了,省事,便宜有便宜的好处

3. 配置CUPS

打开http://127.0.0.1:631/printers,最好用chrome,打开Administration 那个TAB页,把server下面的勾都选上。

局域网另外一个电脑或者手机访问http://xxxx:631/printers,如果能正常访问,说明配置OK

4. Windows就比较简单了,win10笔记本上,控制面板,添加打印机,选择“安名称共享打印机”,输入http://xxxx:631/printers/xxxx,一路Next,驱动选Win10系统自带得,没有的化,局域网有备份

\\192.168.x.3\hdd400g\apk&Tools

5. Android需要安装CUPS,得上Play市场,局域网也备份了一个

\\192.168.x.3\hdd400g\apk&Tools

安装后在图库里选一张图片选择打印,在选pdf or 打印机得界面等一会,就能自动搜索出xxxx@3215u,选择就可以打印

6. Iphone更简单了,选择一张图片分享,其中有个打印得选项,打印机选xxxx@3215u即可

-01-25刷新

上面写了这么多,其实从开始,一直就是用个703N安装luci-app-printer,用910d共享打印机的方式,原来的HP1112也退休了,换了个Epson L360,自带连供,用的很爽,把孩子上网课打作业这块支撑的很出色。

最近入手了MBP,发现打印成了问题,按网上教程可以识别打印机,但是打印乱码,咨询了淘宝专业卖打印服务器的,也说搞不定910d方式,基本就判了死刑。

不得已,想起了CUPS,因为有之前的经验,在ubuntu上很快就成功了。

以下教程主要说明openwrt上安装cups,因为闲置了一个16M flash的720N,双面胶粘到打印机上,打印机就可以随便塞哪个角落了。

首先,720N刷个可以用的最新版本

Index of /releases/17.01.7/targets/ar71xx/generic/

CUPS的ipk默认没有编译,幸亏有大神编译了,参考GitHub - lexxai/openwrt-musl-cups

720N的cpu架构是mips 24kc

按照教程,openwrt上安装过程很顺利,按上述github说明敲命令即可,打开172.0.0.1:631熟悉的界面,添加打印机,自动识别exsi添加的USB口的L360打印机。

注意,在Make选项里面,openwrt只有raw选项,而ubuntu的列表很全,可以选L210(Epson L210 - CUPS+Gutenprint v5.2.11 (color)),是兼容L360的。估计这个过程就是把驱动打到了ubuntu里,openwrt没有这个步骤。

编辑 cups 配置:sudo vim /etc/cups/cupsd.conf注释 Listen localhost:631,并添加 Port 631在 <Location />, <Location /admin>, <Location /admin/conf> 三个块中添加 Allow all

然后进入网页设置,把Administration下面server里的勾都打上,选择保存设置,会自动重启服务

到这,windows上就可以手动添加CUPS打印机了,手动添加“按名称选择共享打印机(s)”,选http://192.168.1.5:631/printers/EPSON_L360,选择本地的L360驱动,安装即可。

如果要在MAC OS 10.15,iphone,ipad上自动发现打印机,继续往下

首先,iphone,ipad上不能选择驱动,貌似仅支持airprint,那么,需要把驱动安装到openwrt上,这个没有找到任何线索,先搁置

MAC上没有办法手动输入网址,仅支持自动发现,所以就依赖avahi

opkg install avahi-daemon

然后就是编辑你自己的vi /etc/avahi/services/AirPrint-YOUR_PRINTER.service

这个过程走了不少弯路,编辑好后,mac和iphone均发现不了,反复尝试,最终是通过avahi-browse --terminate --resolve _ipp._tcp 命令,对比ubuntu的消息,修改自己的AirPrint-EPSON_L360.service,才让mac和iphone发现打印机。

不贴xxxx.service具体内容了,方法就是安装ubuntu(虚拟机安装),连打印机,装cups,mac就自动发现打印机,敲avahi-browse --terminate --resolve _ipp._tcp 命令,根据内容生成AirPrint-xxxxx.service,注意xxxx要和cups里的一致。

还有一个方法是用python脚本,airprint-generate.py,应该也行,但依赖python3,openwrt够呛,还是需要ubuntu,centos之类,就没有尝试了。具体参考

airprint-generate/airprint-generate.py at master · tjfontaine/airprint-generate · GitHub

至此,MAC OS(我用的10.15),iphone,ipad都可以自动发现打印机了,只是iPhone,ipad打印都是乱码,只有MAC上安装驱动后(epson网站下载)可以正常打印

回到openwrt上,对比了安装前的空间,大约消耗2M,可以接受。

后面看看,能否把驱动安装到openwrt上,gutenprint-5.3.4移植到openwrt,支持真正的airprint

所有二进制,上传至baidu盘 我的资源>打印>L360-CUPS

参考文献:

关于驱动,参考,server侧可以安装raw驱动,甚至pdd文件都不要,关键是client要安驱动

CUPS上使用的爱普生打印机PPD文件-OPENWRT专版-恩山无线论坛 - Powered by Discuz!

-04-15刷新

底折腾了openwrt编译cups,没有成功,最近正好有时间,加上N1的无线wifi真是拉跨,经常无线断连,加上N1不支持AP+Client并存,断连后只能有线接电脑重新配置WIFI,忍无可忍,打算把这玩意踢下来,用720N代替,毕竟WIFI非常稳定。

编译并不复杂

1.下载github上的feed 更新源

/obanat/openwrt-printing-packages

2.

./scripts/feeds update -a

./scripts/feeds install -a

3. 然后就可以编译了,注意把print相关的包选上,路径是Network > Printing

4. enjoy!

添加打印机可以选择驱动,我的是Epson L360,实测选L210即可

详细的操作步骤可以参考github上的说明,包含编译错误的解决

GitHub - obanat/openwrt-printing-packages: Printing packages for OpenWrt-mod

再谈下苹果系统的打印

按上述操作,windows打印的问题解决了,但强迫症发作起来,发现还有两个缺陷

1)苹果的手机,pad无法搜索到打印机

2)windows的打印机自动搜索后(需要安装Bonjour),发现的打印机,无法打印

先解决第一个问题:

按github的说法,需要运行一个python脚本,实际有些弯弯绕,记录步骤如下:

1)ubuntu上安装python3,步骤不详细展开了,搜教程吧,包括下载代码编译,最后做个软连接,替换掉ubuntu系统中原本的python2.7

2)pip install pycups,中间会报编译错误,依赖安装cups的dev库

sudo apt-get install libcups2-dev

这个库在usr/include目录增加了cups目录,里面是一堆头文件,保证能编译通过

3)执行如下脚本

./airprint-generate.py -H 192.168.5.5 -d ./ -v

4)把ubuntu下生成的.service文件,例如(AirPrint-EPSON_L360.service),拷贝到openwrt的/etc/avahi/services/目录下,重启openwrt的avahi服务

/etc/init.d/avahi-daemon restart

为了省去上述麻烦,贴了一个service文件如下,就是普通的xml文件,把其中的(rp=printers/EPSON_L360_CUPS)字段改成跟真正的打印机匹配即可

<?xml version="1.0" encoding='UTF-8'?><!DOCTYPE service-group SYSTEM "avahi-service.dtd"><service-group><name replace-wildcards="yes">AirPrint EPSON_L360 @ %h</name><service><type>_ipp._tcp</type><!-- This is key for AirPrint --><subtype>_universal._sub._ipp._tcp</subtype><port>631</port><!-- These are copied from the txt portion of the above output --><txt-record>txtvers=1</txt-record><txt-record>qtotal=1</txt-record><txt-record>rp=printers/EPSON_L360_CUPS</txt-record><txt-record>ty=Epson L210 - CUPS+Gutenprint v5.2.11</txt-record><!-- This is visible in iPhone UI --><txt-record>Color=T</txt-record><txt-record>product=(Epson L210)</txt-record><txt-record>printer-state=3</txt-record><txt-record>printer-type=0x80900E</txt-record><txt-record>priority=0</txt-record><txt-record>URF=DM3</txt-record><txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/pwg-raster,image/urf</txt-record></service></service-group>

经过上述步骤后,ios和windows都可以发现打印机了,IOS也不需要安装驱动,但打印失败,进入cups的web节目查看打印机状态,发现显示如下错误消息:

安装ghostscript.ipk,或者编译openwrt的时候,把ghostscript加上即可

到此,windows和IOS的打印已经完美解决。

上述步骤应该是最小ROM的方式支持windows和IOS ariprint的了,一个16M flash的arm cpu的嵌入式系统即可搞定,相比N1,硬件依赖小多了,实际测试手机上5M的图片打印,相应延迟在5秒以内,应该可以接受。但考虑到720N的内存魔改后也只有64M,估计大的文件打印会比较吃力,还是要搞个内存大些的设备支持,普通家用应该够了。

所有中间文件,备份在

\\xxxxx\share8t\10_一些折腾记录\04-720N-编译带cups的openwrt

openwrt安装cups,参考,要有离线ipk

LEDE/Openwrt 打印机插件 CUPS,在WIN10下添加打印机(打印机连接路由器进行远程打印)_openwrt打印服务器插件_Reven_L的博客-CSDN博客

/post-2678.html

廉价打印机也能玩AirPrint 廉价安装cups打印机

GitHub - TheMMcOfficial/cups-for-openwrt: If you want to install cups on your openwrt router to share a usb printer or to enable airprint on your old usb/network printer follow these steps.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。