情况背景说明:
家里有一台HP LaserJet 1010老打印机(以下简称打印机),修修弄弄,一直能正常工作。因为夫人用的多,通过USB连接在夫人的笔记本上,打印我笔记本上的文档就有点不方便,因为我用的少,也就凑合着。
我的数据大多数放在网盘上,但经历了所用网盘关停,更换网盘导数据以及手机过户导致与手机绑定的网盘数据丢失等经历后,去年春节时咬牙给家里添置了一台铁威马的F4-221四盘位NAS服务器做为家庭存储中心。
因为这台NAS24小时不关机,我就想着能否用这台NAS做打印服务器,以便发挥NAS的更大的作用。
通过铁威马微信公众号向铁威马官方资询,铁威马给我推荐了应用中心里面的VirtualHere,根据官方提供的论坛贴子中的步骤安装后,感觉功能确实挺强大,但使用了一段时间后就提示购买使用许可。在论坛中咨询后得知,原来是VirtualHere是收费软件,只提供免费试用十天,而购买费用是49美元。根据汇率我算了一下大概约三百多人民币,这个价格可以在淘宝上买两个维斯易联的无线打印服务器了,实在是不划算,也不符合我将NAS作用更大化的初衷。
实在不死心,想到这台NAS使用的是Linux的内核,于是开始上网查找Linux在打印机共享方面的方案,看到有关于cups的相关介绍。我本人对Linux一知半解,只能不断尝试着看能不能解决。以经历多次失败后找到以下解决方案。
技术背景说明:
铁威马NAS虽然使用Linux,但一些Linux下的命令在其NAS中并不提供,对于我这样的新手很难安装第三方软件。但该NAS中提供了docker,通过镜像的方式可以运行一些软件。所以cups的安装与运行只能通过docker来实现。
铁威马型号:F4-221
TOS版本:4.2.08-2101111540
实施步骤:
一、开通SSH权限
在控制面板-终端与SNMP-Telnet / SSH中启用ssh,如下图。
二、在应用中心中安装docker。
如下图。
三、使用putty通过ssh登录NAS的root帐号
密码默认与NAS的admin帐号一样。关于putty的使用不详述了。如下图。
四、执行以下命令
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
此命令参考:
https://sre.ink/docker-install-cups-print-system
https://github.com/mnbf9rca/cups-google-print
该命令执行过程中同时包括了镜像安装与运行,所以有一个下载安装的过程,需要一点耐心,如下图。命令执行完成后即可关闭putty程序。
五、对镜像进行设置
回到TOS界面,打开docker,并在窗口中找到刚安装的“cups-google-print”,该容器应该已经执行,此时需要先停止执行,如下图。
选择该容器,点击编辑,如下图。
在弹出的编辑界面中选中常规设置,勾选启用自动重新启动,如下图。
我对docker了解的并不多,之所以勾选该项是按我自己的理解启用该项会在容器因意外停止运行会能自动重新启动,或是重启NAS系统时,该容器能自动启动。如果这儿的理解不对,请帮我指出,谢谢。
在编辑界面中选择卷,如下图。
这个界面中已经挂载好了四个路径,基本不需要设置什么,只需要注意只读下面的勾不要打上即可。实际测试中,发现打开只读的勾后,后面对打印机时行配置时,会报错。
另外,这儿解释一下为什么开始安装cups-google-print镜像之所以不在UI界面中操作,而是通过命令行的方式进行安装,就是因为在这儿手工挂载文件夹时,这四个路径在UI界面中没有办法选择到,我尝试手工输入似乎也不可以。只能在命令行中用
-v
参数来手工挂载。
编辑界面中选择网络,如下图。
在网络名称中选择host,如果已经是host了,保持就行。
编辑界面中选择端口设置,如下图。
查看此处是否已经有相应端口了,如果没有则点击新增,然后按图中设置将网络端口改为631,其他不需要改变。
编辑界面中选择环境,如下图。
基本上这个界面中不需要改动什么,但画圈的地方要注意,这个是后期登录cups所需要的帐号密码。后期如果需要更改密码,可以到这儿来修改。
所有设置完成后,点击下面的应用,启动窗口。如下图。
六、安装或设置打印机
登录cups管理界面。
在浏览器输入https://"nas ip":631(将引号中的内容替换成你NAS的真实IP地址)。注意,前面使用的是https而不是http,当然如果错输成http也没有关系,会自动给出一个提示界面和正确的链接,点击正确的链接也可以登录。如下图。
如果直接输入https地址的话,会要求输入帐号密码,此帐号密码即为编辑界面中环境中所显示的帐号密码,如果上面ssh中的安装指令安装的cups,则已经设置用户名和密码为admin/cups。如下图。
登录后显示界面如下图。
点击红圈处的Adding Printers and Classes,出现下图界面。
点击红圈处的Add Printer,出现新的界面如下图。
在这个界面中,如果你的打印机已经连接到NAS上且已经打开电源,此处会自动检测到打印机,强调一下,我使用的是HP LaserJet 1010打印机,未对其他品牌打印机进行测试。
根据我的打印机型号,我在此处选择HP LaserJet 1010 USB 00CNFG838407 HPLIP(HP LaserJet1010),然后点击下方的Continue,出现新的界面,如下图。
在这个界面中,Location处随便输入一串字符,我习惯输入TNAS01。
Sharing处要将Share This Printer打勾,这样后面其他电脑才能通过网络使用该打印机。
最后点击Continue按钮,出现新的界面,如下图。
在此界面中,根据打印机的型号在Make处选择打印机的型号,我的型号是HP,默认已经是了。不知道是自动检测出来的,还是默认就是HP。然后在下方的Model界面中选择相应的打印机型号。如果列表中没有对应的打印机型号,也可以通过选择文件来手工安装ppd格式的打印机驱动。列表中已经包含我的打印机,所以我直接选择第一个,然后点击下方的 Add Printer按钮,出现打印机设置界面,如下图。
这个界面中如果没有特别需求,直接保持默认即可,直接点击下方Set Default Options将设置保存为默认值。
最后当出现如下图的界面时,打印机即安装并共享成功。
七、在Windows中安装共享打印机
在Windows中安装网络打印机的过程不再仔细描述,只提一个注意点。
Windows7和Windows10(XP没有测试)在安装网络共享打印机时,有可能自已扫描到该打印机,如下图。
或下图。
如果直接安装上面两张图片中自动扫描到的打印机,会出现在Windows上打印空白没有文字的情况,但是图形好像是可以打印的,如下图。
我猜测是自动扫描安装的打印机驱动并不适合该打印机,没有条件做更多的测试,所以不知道其他型号的打印机是否有这样的问题出现。
正确的方法是在添加网络打印机的界面选择我所需的打印机未列出,如下图。
在弹出的对话框中手工输入打印机的路径。此处的路径应为:
http://“NAS IP”:631/printers/“打印机名称”
说明:将引号中的内容换成自己NAS的IP地址,并将引号去掉。
如下图。
最后根据提示选择适合的Windows版本驱动进行安装,如下图。
如果Windows没有自带打印机的驱动,可以至打印机厂商的官方主页下载对应的打印机的相应Windows版本驱动。
其他品牌型号打印机可以参照此方法尝试安装。
以上是一次技术尝试,特记录以备忘并供其他技术人员参考。