通过群晖Docker给EPSON L301墨仓打印机装上无线Airprint

2020-05-05 16:00:09 38点赞 464收藏 58评论

EPSON早期的墨仓式打印机在市场上有很大的销量,可能至今还在很多朋友家中服役中。本文记录了我在安装Airprint过程中的一些问题及解决方法,供想让EPSON老墨仓继续发挥余热的朋友们参考。

墨仓式打印机的打印头堵塞是个通病,这台服役七八年但一直黑色喷头有堵塞的L301打印机长期使用高质量打印模式才勉强能用。有点想扔掉买个新的并支持Airprint的打印机,但看看机器还有墨仓里的墨水废弃掉实在可惜。疫情期间小孩的作业打印量忽然增加,就决心趁着在家无聊的时间买个打印头自己更换。换上去终于喷头检查没有断线了,这台打印机还可以再用10年。既然已经复活了L301的打印头,那索性再帮它搞个Airprint吧。

家里有群晖,因为一直开着,用其挂打印机长期在线自然最合适。群晖里面有USB外接打印机支持,打印机设置里面也有Airprint选项,但是DSM里面没有任何L系列的驱动,官网也仅仅能查到L355曾经在DS216系列里面出现过。然后我也试过把L301打印机接到梅林固件的路由器上,华硕有打印驱动工具可以在PC上顺利使用,但在群晖里添加这个路由器上的网络打印机,还是因为没有驱动只好作罢。最后在张大妈这里搜索一下“Airprint”关键字,看了下面两位朋友写的3篇很有价值的文章,花了一个晚上终于搞好了。

低成本的无线打印:群晖上通过Docker容器实现Airprint小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外50金币奖励。群晖NAS得益于高质量的软件设计和方便的使用体验深受家庭用户喜爱。随着使用场景的扩展,各种功能的发掘也随着需求的增长不断出现。打印虽然是个古老的话题了,但是对于有打印需求的用户来说,有些时候还真的离不开。于是利用群晖NAS配合我的昵称已被注册| 100 评论153 收藏1k查看详情低成本的无线打印:群晖上通过Docker容器实现Airprint - 之二小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外50金币奖励。上一篇文章写了怎么利用家里剩余生产力(NAS)实现低成本无线打印(移动打印),看到很多朋友留言反馈各种问题。实在抱歉,这里就不找各种借口了,借这篇文章略作解答,不尽之处望各位朋友海涵。上一篇文章链接:前题回顾:由于驱动支持的原我的昵称已被注册| 39 评论77 收藏428查看详情第一台打印机,借助群晖让丐版打印机也能用手机打印小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外50金币奖励。追加修改(2019-12-2508:59:24):感谢值友提醒,7.1、7.2的内容有些错误,现做以下修改:7.1.看了下当前安装的docker容器是个简易的ubuntu,所以在群晖后台直接输入命令sudodockerexec石子路口| 65 评论71 收藏513查看详情

我的安装过程主要参考这3篇文章,其中第3篇<第一台打印机,借助群晖让丐版打印机也能用手机打印>提供的EPSON驱动下载及升级LSB方法,对我也安装EPSON驱动特别有帮助,我就不重复说明一些细节过程,下面主要是记录我碰到的问题及解决方法,供遇到同样问题的朋友参考。

问题点

  • 使用命令行还是容器向导创建容器

开始我也是参考第3篇文章用端口632建了Docker,装好了发现在容器-详情-终端机里面一直循环报错误。原因应该是这种非命令行方式新建容器过程中,无法在卷里面装载/dev,/var/run/dbus目录。我没有具体研究这两个目录的作用,但是错误信息看起来和其中一个目录有关。

另外考虑到631是CUPS的标准端口,我没有花时间去试验其他端口如632是否能在IOS设备上用系统打印功能直接输出,我尽量想避免因为非标准端口必须安装额外打印App。所以最终我使用了前2篇文章提供的命令行方式,并且用默认631端口建了容器。

  • 命令行新建容器后无法访问CUPS Web控制界面

第一次用向导新建的容器没有问题。命令行新建的容器出现没法连接Web界面问题,也许因为我改了DSM的主机名,所以我把-e HOST_OS="Synology"这个环境变量从参数里面移除了,同时也此步骤移除了-e "TCP_PORT_631"="631",一番折腾后,最后可以工作的命令行参数如下。

SSH里新建容器命令SSH里新建容器命令

  • 如何进容器里升级LSB

第3篇文中的步骤7.1写的进入容器的步骤错误,作者其实在文首有追加修改更正了这个命令名错误,但是我已经一头扎进文中按部就班地执行命令,根本没有注意。我也是第一次使用容器,发现SSH执行错误,在Bing里面搜索如何进容器的方法才解决,这里花了一些时间。

原文进入Docker命令“docker run”错误,正确的是”docker exec“原文进入Docker命令“docker run”错误,正确的是”docker exec“

我现在推荐的方法是直接用新建的容器名,如上面的“airprint“,直接执行sudo docker exec -it airprint /bin/bash,省去了docker ps查询容器id。新建的容器首先执行sudo apt-get update,然后sudo apt-get install lsb安装lsb。这个过程更加网速不同,安装需要大概20-30分钟左右。

  • EPSON L301驱动下载哪一个文件

爱普生国际官网的下载页里列出了多个驱动文件供下载,因为容器是ubuntu系统,.deb是Debian和ubuntu系统格式包,后面也是用对应的dpkg命令安装:sudo dpkg -i epson-inkjet-printer-201207w_1.0.0-1lsb3.2_amd64.deb

搜索L301 Linux驱动搜索L301 Linux驱动

选择_amd64.deb下载选择_amd64.deb下载

dpkg安装好驱动后,在CUPS管理界面就出现了dpkg安装好驱动后,在CUPS管理界面就出现了

  • 最后一个核心问题,如何解决群晖自带CUPS自动重启631端口

装好驱动后手机上打印了一张照片,一切很好,然后休息了一会儿,再次打印发现手机上报打印机脱机错误。然后我发现在DSM的任务计划里面执行下面两个停止系统CUPS的任务后,脱机错误就解决了,打印机马上又能正常工作。但是过一会儿,这个脱机问题又会出现,有时打印中的任务也因此会中断,纸张在打印机在突然停住。

synoservicectl --stop cups-lpd
synoservicectl --stop cupsd

我因此判断631端口被群晖系统自己的CUPS再次启用了,而和容器里的631端口冲突。在新建容器之前,实际上我不仅按照文章1和2停止了DSM系统的CUPS,还根据下面github项目里的提示把 /usr/share/init/cups-service-handler.conf 文件里面的语句注释掉避免再次启动DSM时系统CUPS服务又被自动启动。但似乎群晖还是有其他进程自动检查并再次启动CUPS。如大家在前面文章评论里面提到的,可以增加一个循环任务,定时每分钟地中止系统CUPS服务,但这看起来有点傻并带来一定的系统开销。

https://github.com/yaurora/cups-google-airprintgithub.com去看看

在bing上搜索有没有办法彻底禁止群晖CUPS服务无果,忽然灵机一动,我为什么不能把群晖自己的CUPS从631改到其他的,就像朋友们改容器里的CUPS到632一样。这样在SSH里面用vi或者vim查看文件,在DSM系统里(注意不是容器的ubuntu系统)执行sudo vi /etc/cups/cupsd.conf,进去后按i键到编辑模式,用#注释掉Listen *:631那行,增加Listen *:632。完成修改按ESC再冒号:wq保持退出。再次验证脱机问题解决了,也不用增加中止服务的循环任务了。甚至我又把上面github中说的 /usr/share/init/cups-service-handler.conf 文件注释掉的语句复原了。安装这个思路,我想有可能在新建容器前,我们把系统CUPS的631像这样改掉,也不用单独执行中止服务命令来避免631端口冲突了。我没有时间去验证,朋友们安装的时候可以考虑。

将631改到632将631改到632

在Windows里安装打印机的一个小坑,在添加打印机时候开始按照前面文章说的https加密形式的打印机链接,但是一直提示登录用户名密码,用DSM用户名和新建CUPS时候的admin/pass都不行,然后我试了一下http的,居然成功了。所以大家遇到这个问题,可以把hppts改到http试一下。当然我先改了容器里面的/etc/cups/cupsd.conf配置(那些Allow from all)没用再试验的http,没有验证是否仅仅https引起。

通过群晖Docker给EPSON L301墨仓打印机装上无线Airprint

总结

容器里面运行CUPS的方式,让这些老的USB端口的打印机具有的无线打印的功能,墨仓式喷墨打印机从用墨成本上看真的很低了(随机墨水可以支持一个小孩从幼儿园上完小学),有了Airprint支持,这些打印机可被再榨干几年。这个CUPS方法同样适用于其他Linux系统(如树莓派),EPSON其他打印机驱动安装方法也类似。


展开 收起
58评论

  • 精彩
  • 最新
  • 打印头好换吗?购买渠道呢

    校验提示文案

    提交
    同问+1,紫薯补丁

    校验提示文案

    提交
    某宝买香港原装拆机打印头的很多,我就买的120几元的。第一次拆可能要费点时间研究螺丝和卡扣位置,可以看网上拆机视频或者问卖家。我去年拆开打印头泡洗过,比较熟悉,很快半小时左右就换好了。对于堵头问题,我换了打印头发现,只要两星期不用,可能就会轻微堵塞,主要是黑色。喷嘴检查发现断线然后做一下清洗就行,这个不费墨水。特别慎重不要点大墨量清洗,那个要消耗很多墨水(估计1/5)还没有什么作用。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 1瓶墨水够上完小学,太夸张了吧,疫情这几个月就用了一半

    校验提示文案

    提交
    疫情期间把以前整个小学的量都用完了 [害羞]

    校验提示文案

    提交
    收起所有回复
  • 我也到了提取ppd文件后,安装打印测试时出现stopped 错误,但是楼主这些命令是在哪里输入呀?
    用putty登录上去,都提升命令没找到

    校验提示文案

    提交
    不需要提取ppd,第三篇文章中已经说了你碰到的ppd安装问题。所以直接准备好下载的deb文件,在群晖里面用File Station上传到docker/airprint/config目录,接下来的步骤我和上文作者都忘了说明:就是安装lsb相关的命令及这个deb文件,都是在进入容器里的ubuntu系统执行的,进入的方法就是我说的那个exec命令。进入容器的系统里以后,用命令cd /config就到挂载好外部群晖的docker/airprint/config目录,然后在容器里继续执行那句dpkg命令接包deb,完成后驱动就装好了。

    校验提示文案

    提交
    非常感谢楼主,我已经成功进入到容器里ubuntu系统,并且升级安装lsb,然后安装好驱动包,在cpus里面到列表也显示出canon MF210的机型,一切看起来很顺利,就是打印不出来,打印测试页时显示正在向打印机发送数据....但打印机却一点反应也没有.

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 买个华硕网件就可以

    校验提示文案

    提交
    我主路由器是网件刷的梅林,挂打印机可以在PC上远程打印,我主要想用IOS手机或pad直接Airprint,一般路由器的网络打印服务器不行。网件官方固件有Airprint,不知道是否有我的L301驱动。

    校验提示文案

    提交
    收起所有回复
  • 可以扫描吗?

    校验提示文案

    提交
    我的打印机L301没有扫描功能,所以没看扫描

    校验提示文案

    提交
    收起所有回复
  • 楼主,你好。我是第一次接触Linux和docker,现在卡在驱动这里了。您能再详细介绍一下如何进入Ubuntu和安装lsb吗?我输入命令的时候总是显示错误,无法找到文件等,谢谢啦!

    校验提示文案

    提交
    进入ubuntu方法:如果你的docker名称为“airprint“,在ssh登录的群晖系统里执行sudo docker exec -it airprint /bin/bash,提示你输入密码,输入你管理员权限的用户密码。然后在ubuntu里执行sudo apt-get update,完成后再执行sudo apt-get install lsb安装lsb。这个过程需要大概20-30分钟左右。

    校验提示文案

    提交
    收起所有回复
  • 用docker的cups的bug在于你关了打印机再开没法自动重连,必须得先开了打印机再打开cups [观察]

    校验提示文案

    提交
    我的L301在windows里有时也存在先开电脑还是打印机的问题,有时候开打印机电源开不了得拔插头。在Docker到没有注意到你说的问题,昨天试了一下在打印机休眠关闭状态下,手机先发送一个打印然后再去开打印机,打印启动正常

    校验提示文案

    提交
    你打印机还有休眠功能?我是关机后开机连不上cups,必须重启cups

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 按照你的用命令执行添加容器,提示错误,能否再详细说明一下命令的内容 [高兴]

    校验提示文案

    提交
    你把那串命令内容现在记事本里输入好,然后拷贝,再到putty里一次性粘贴整个内容再敲回车键。原因是那个反斜杠的行一行一行直接输入的话,SSH或putty任务是独立命令行。其实原文作者用反斜杠的这个方式也可以把反斜杠变成空格,然后所有行放到一行里面输入执行,但那样会特别长。

    校验提示文案

    提交
    谢谢你,我成功运行了所有的!现在发现一个新问题,就是打印机关闭后再打开电源,cups无法自动连接上去,必须把容器重新启动一下,就可以连接打印了

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 小白盒不是比这便宜嘛

    校验提示文案

    提交
    你说小白盒是树莓派还是其他的硬件?

    校验提示文案

    提交
    玩客云也可以做打印机服务器的,我也成功运行了!只不过嫌多一个设备碍事,不如接群晖好!

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 有毒....进度CUPS后台一直密码不正确,放弃了 [惊喜]

    校验提示文案

    提交
  • 群晖一定要sudo运行docker?安全性太差了吧

    校验提示文案

    提交
  • 很是奇怪群晖为什么没有内置L系列的驱动,我的L850借用了其他驱动才能勉强用AIRprint。

    校验提示文案

    提交
    请问用的什么驱动我的L4150找来找去找不到

    校验提示文案

    提交
    不是官网上有4150的驱动下载吗?Linux版本

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 楼主厉害了。我一般都是用nas网络共享打印机,但是久了不用就没反应,好像无法网络唤醒。

    校验提示文案

    提交
  • 其实通过otg直接用数据线连接手机就能打印。

    校验提示文案

    提交
  • 我们家也是这款,当年700多买的

    校验提示文案

    提交
  • 这机器还是好用,拆洗比较简单。就是脏手。还有这机器搓纸轮容易出问题

    校验提示文案

    提交
  • 有时间写个换喷头的教程吧

    校验提示文案

    提交
  • 按作者的提示:用#注释掉Listen *:631那行,增加Listen *:632,也尝试多种停止系统自带的CUPS,并重启群晖还是无法登陆CUPS管理页面 [皱眉]

    校验提示文案

    提交
  • 脱机问题,可以试试修改群晖自带的cpusd配置etc/cups/cupsd.conf,把自带cups的端口改成其他的,不知道是否可行,观察几天看看。

    校验提示文案

    提交
    哦,楼主讲了这个方法了

    校验提示文案

    提交
    收起所有回复
  • 安装好后用群晖资源管理器查看,cpu利用率很低,5%以内,但随时间推移逐渐升高,1小时后到达25%,进容器内看主要是cupsd占用cpu资源。打印机开不开机现象都一样,不知道是不是个案。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
目录
464
扫一下,分享更方便,购买更轻松