电视盒子安装CUPS共享惠普1020为无线网络打印机【新版】
ARM架构电视盒子、开发板以及树莓派安装CUPS,将惠普1020共享为无线网络打印机
2024年1月16日更新:
用于晶晨CPU电视盒子的Armbian目前在github上有社区维护版,似乎是balbes150版本的延续,是自动编译的版本,内核和各种软件都相对较新,地址是:https://github.com/armbian/community,在N1上试用过Armbian_23.02.0-trunk_Aml-s9xx-box_lunar_edge_6.1.4这个版本,似乎并不稳定,一旦apt更新,wifi会断开,暂时没有再深入研究是什么原因。
如果需要长期稳定使用,建议到Armbian官方归档服务器下载稳定版镜像刷入:https://archive.armbian.com/(似乎https://mirror.yandex.ru/mirrors/armbian/archive/aml-s9xx-box/archive/这个地址能显示完整文件名,使用起来较为方便),对于armbian镜像文件的各个不同版本,官方解释如下:
-
legacy,传统版本,通常具有较旧的内核。
-
current,当前版本,通常具有当前主线LTS内核。
-
edge,前沿版本,通常遵循最新的主线内核或第三方开发分支。未经测试,不稳定,随时可能崩溃,仅供有经验的用户使用。armbian官方也特别提醒,不要在生产环境中使用测试或前沿版本。
-
CLI版本,没有桌面环境的服务器版本
-
minimal版本,非常轻量级的服务器变体,只有最低限度,甚至不包括armbian-config。一切都可以通过apt安装。
-
Desktop版本,包含全功能桌面环境的版本
另外github上还有ophub的一个版本相对比较稳定,地址是:https://github.com/ophub/amlogic-s9xxx-armbian
之前写过一篇“N1盒子刷Armbian安装CUPS共享惠普1020为网络打印机”,后续的使用过程中,也发现了一些问题,曾经做过一些补充和修正,最近因为盒子打印的时候又出现了比较烦人的问题,重新做了几次系统,查找了很多资料,目前使用中的系统相对比较稳定,比之前有不少变动,所以想重新写个新版的教程,不再在原来的文章上修修补补了。
目前可以使用两种方法来驱动惠普1020打印机,主要是foo2zjs驱动和惠普官方hplip驱动,通过使用发现惠普官方hplip驱动和插件共享的打印机还是非常稳定的。接下来我们详细说一说通过官方hplip驱动打印机。
本篇文章应该适用所有可以运行armbian或者其他linux发行版(如debian、ubuntu等)的arm开发板、电视盒子、树莓派等。本片文章以N1盒子为例,Armbian的安装不再赘述,其他硬件的系统刷入、安装请自行百度。
TV Box Armbian的作者balbes150已经将瑞芯微(RK)、晶晨(AML)、全志(AW)三个平台合并为一个镜像。自2020年以来该镜像已经不再更新,编译过的镜像下载地址最初在yandex网盘,后来搬到的armbian的官网上https://users.armbian.com/balbes150/arm-64/,今天访问的时候发现arm-64文件夹也已经被删掉了,不知道以后作者还会不会把文件恢复了。这里提供一个我自己百度网盘的地址,大家自行下载: https://pan.baidu.com/s/124540cAzrMEK9Tny0vlbWA?pwd=4mum。N1盒子如果刷入后System load过高,可以考虑换一个稳定版刷入,或者参考这篇文章。
后期新版的Armbian启动时需要修改的配置文件及方法有所变动,作者在论坛上已经有说明:
请注意。Armbian从版本20.08(20200814)开始,使用的DTB的配置顺序将更改。
用于启动系统的初始配置算法已更改。现在使用文件“/extlinux/extlinux.conf”代替文件“uEnv.txt”。编辑文件的规则保持不变。
现在,所有Amlogic型号都需要“u-boot.ext”文件。
在Amlogic上启动之前,必须将现有文件之一“u-boot-*”复制或重命名为“u-boot.ext”。
对于S905(非X)-使用u-boot-s905
对于S905x和S912-使用u-boot-s905x-s912
对于S905x2和S922-使用u-boot-s905x2-s922
对于g12a\g12b型号,现在使用单个文件(文件u-boot.sd和u-boot.usb现在替换为统一的一个u-boot-s922文件)。
晶晨主芯片型号和内部代号对应关系:
GXBB (S905)
GXL (S805X/S905X/D/W/L)
GXM (S912)
G12A (S905X2/D2/Y2)
G12B (S922X/A311D)
SM1 (S905X3/D3)
对于N1的S905D,我使用了u-boot-s905x-s912这个UBOOT文件,经测试可以正常使用。
另外,在根目录下有一个armbian_first_run.txt.template模板文件,如果有需要,我们可以将其中的内容修改后,重命名为armbian_first_run.txt,通过这个文件内的配置,使armbian在第一次运行的时候自动完成网络配置。文件内的具体内容和注释我放在了下面,大家可以根据实际情况去修改:
#-----------------------------------------------------------------
# Armbian first run configuration
# Armbian首次运行配置
# Set optional end user configuration
# 设置可选的最终用户配置
# - Rename this file from /boot/armbian_first_run.txt.template to /boot/armbian_first_run.txt
# - 将此文件从/boot/armbian_first_run.txt.template重命名为/boot/arm bian_first_run.txt
# - Settings below will be applied only on 1st run of Armbian
# - 以下设置仅适用于Armbian的第一次运行
#-----------------------------------------------------------------
#-----------------------------------------------------------------
# General:
# 概述:
# 1 = delete this file, after first run setup is completed.
# 1 = 在第一次运行安装程序完成后删除此文件。
FR_general_delete_this_file_after_completion=1
#-----------------------------------------------------------------
#Networking:
# Change default network settings
# 更改默认网络设置
# Set to 1 to apply any network related settings below
# 设置为1可应用以下任何与网络相关的设置
FR_net_change_defaults=0
# Enable WiFi or Ethernet.
# 启用WiFi或以太网。
# NB: If both are enabled, WiFi will take priority and Ethernet will be disabled.
# 注意:如果两者都启用,WiFi将优先,以太网将被禁用。
FR_net_ethernet_enabled=1
FR_net_wifi_enabled=0
#Enter your WiFi creds
#输入您的WiFi证书
# SECURITY WARN: Your wifi keys will be stored in plaintext, no encryption.
# 安全警告:您的wifi密钥将以明文存储,没有加密。
FR_net_wifi_ssid='MySSID'
FR_net_wifi_key='MyWiFiKEY'
# Country code to enable power ratings and channels for your country. eg: GB US DE | https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
# 启用您所在国家/地区的额定功率和频道的国家/地区代码。例如:GB US DE | https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
FR_net_wifi_countrycode='GB'
#If you want to use a static ip, set it here
#如果您想使用静态ip,请在此处设置
FR_net_use_static=0
FR_net_static_ip='192.168.0.100'
FR_net_static_mask='255.255.255.0'
FR_net_static_gateway='192.168.0.1'
FR_net_static_dns='8.8.8.8 8.8.4.4' #2 entries max, seperated by a space.最多2个条目,用空格分隔。
#-----------------------------------------------------------------
进入系统后,软件源如果需要修改为国内源,请自行百度,目前我使用的版本不修改也会自动选择中科大源。
然后,更新系统,以Ubuntu系统为例(用Debian系统的朋友后面的命令请去掉命令前的sudo):
sudo apt update
sudo apt upgrade
安装相关的软件:
sudo apt install avahi-daemon ghostscript dc foomatic-db-engine cups hplip
这里有一点需要注意,因为之前打印存在各种奇怪的问题,我使用了惠普官方的hplip驱动替代了之前的foo2zjs驱动。如果确实需要安装foo2zjs驱动的朋友,也不用像之前那样需要自己下载源码编译了(事实上原来那个提供驱动的网站现在也不能访问了),foo2zjs驱动可以在apt包管理器里直接安装就可以了。
安装avahi-daemon软件包主要是为了使打印机可以在局域网上直接被发现。有后续有相关的设置。可以用下面的命令查看下服务状态。
sudo systemctl status avahi-daemon.socket
sudo systemctl status avahi-daemon.service
编辑CUPS的配置文件,这里使用nano编辑器(Ctrl+O保存、Ctrl+X退出):
nano /etc/cups/cupsd.conf
首先需要将
Listen localhost:631
改为:
Listen 0.0.0.0:631
下面的配置将使打印机在局域网内可被发现,这一步前提是之前安装了avahi-daemon软件包,将下面设置:
Browsing Off
改为:
Browsing On
新版的CUPS可能会使用Yes和No来表示开关,按照实际情况修改即可。
然后,将以下4段加入Allow all:
# Restrict access to the server...
<Location />
Order allow,deny
Allow all
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow all
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
</Location>
# Restrict access to log files...
<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
</Location>
保存。重启CUPS进程。
sudo service cups restart
Ubuntu用户需要将您的非root管理员账号加入lpadmin用户组。
sudo usermod -a -G lpadmin 您的用户名
下面需要注意的是:惠普LJ1020打印机属于明确需要安装插件才能打印的型号。下面的步骤我们将安装hplip驱动的插件。
首先用下面命令查看一下hplip的版本:
sudo hp-plugin
这样我们会进入惠普打印机驱动插件安装程序,如果直接按“d”下载安装的话,应该不会成功:
arm-64:~:% sudo hp-plugin
HP Linux Imaging and Printing System (ver. 3.20.3)
Plugin Download and Install Utility ver. 2.1
Copyright (c) 2001-18 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.
warning: It is not recommended to run 'hp-plugin' in a root mode.
HP Linux Imaging and Printing System (ver. 3.20.3)
Plugin Download and Install Utility ver. 2.1
Copyright (c) 2001-18 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.
(Note: Defaults for each question are maked with a '*'. Press <enter> to accept the default.)
-----------------------------------------
| PLUG-IN INSTALLATION FOR HPLIP 3.20.3 |
-----------------------------------------
Option Description
---------- --------------------------------------------------
d Download plug-in from HP (recommended)
p Specify a path to the plug-in (advanced)
q Quit hp-plugin (skip installation)
Enter option (d=download*, p=specify path, q=quit) ? d
-------------------
| DOWNLOAD PLUGIN |
-------------------
Checking for network connection... Downloading plug-in from:
Downloading plug-in: [\ ] 0% error: Plugin download failed with error code = 8
error: file does not match its checksum. File may have been corrupted or altered
我们要在上面的内容里找到如下所示的内容,也就是hplip的版本号:
HP Linux Imaging and Printing System (ver. 3.20.3)
记下后面括号中的版本号,这里是3.20.3。这个程序似乎不能直接在线安装插件,所有我们需要先把插件下载到本地,然后再安装插件。所以我们这里可以不按“d”键下载安装,而按“q”键退出插件的安装,下载插件完插件再运行程序安装。
浏览器打开https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/这个网址,找到和版本号对应的两个.run和.run.asc文件,以及不区分版本的.plugin文件,如下图:
可以下载到电脑再上传到盒子里或者直接用wget下载到盒子里,下面简单说下第二种方法:
直接在账号目录下建立存放插件的名字为hp的文件夹,然后进入文件夹:
mkdir hp
cd hp
使用wget下载所需的三个文件:
wget https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-3.20.3-plugin.run
wget https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-3.20.3-plugin.run.asc
wget https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hp_laserjet_1020.plugin
如果wget从IPv6地址下载文件,并且下载不成功的话,可以添加“–inet4-only”参数强制让wget从IPv4地址下载文件:
wget --inet4-only https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-3.20.3-plugin.run
wget --inet4-only https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-3.20.3-plugin.run.asc
wget --inet4-only https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hp_laserjet_1020.plugin
成功下载文件以后,再次使用命令进入插件安装程序:
sudo hp-plugin
然后按照提示按“p”键,输入插件所在的路径(本例路径是“/home/你的账号/hp”),就可以完成插件的安装,期间会询问是否同意许可协议,按“y”同意即可。
USB口连接好打印机并打开电源以后,在电脑浏览器输入:http://N1盒子的IP地址:631/
点击”Administration“,再点击下面”Add Printer“按钮:
出现此页面,点击后面的地址,出现安全警报提示框,选择”是“继续。
会回到”Administration“页面,再次点击”Add Printer“按钮,会要求填入服务器的用户名和密码,填好以后点确定进入下一步。
如果打印机连接正常,本地打印机里会出现惠普1020。选择这台打印机,按继续按钮。
这一步填写打印机的名字、位置,最重要的是要勾选上"Share This Printer",按继续按钮。
这一步选择打印驱动程序。最后点添加打印机按钮。完成打印机的添加。
这一步需要设置一下打印机的默认设置:
添加完打印机以后,在Printers页面,就会出现刚才添加的打印机,点击打印机的名字,可以看到打印机的详细内容(借用之前文章的图片,参考一下就行)。
点击打印机名称后,进入打印机详情页,第一个复选框里选择”Print Test Page“可以打印测试页,测试打印机是否正常。
Windows系统,可以进入控制面板直接添加打印机。系统会发现局域网上的这台打印机。
选择这台打印机,点下一步按钮,开始安装这台打印机。因为我之前安装过惠普1020的驱动,所以这一步直接就安装完成了,没有安装过驱动的朋友需要按正常过程安装一下打印机的驱动即可。
最后,打印机安装完成,可以打印测试页测试打印是否正常。
点击完成按钮完成打印机安装过程,新添加的网络打印机就会出现在打印机列表中。如下图中后缀是arm-64那台打印机。
安卓手机直接在打印服务里就可以看到这台打印机(前提是手机和打印机连接同一个wifi或者在同一网段内),不需要再装那个名为Android CUPS Printe的APP了。比之前方便多了。
在设置内将默认打印服务开启。
然后应该可以发现局域网内这台打印机。
在APP内选择这台打印机即可正常打印。
之前共享的打印机总是有问题,本身打印量不大,一到需要打印的时候就掉链子,点打印按钮之后打印机一直没反应,后来发现,重启盒子后打印机立马就可以接着打印了。因为一直很忙,就这样凑合着用,直到最近实在忍受不了了,就研究了一下,发现打印无响应的时候,打印机会有一个错误提示:
processing since Sun Sep 25 10:44:22 2022 "Filter failed"
Use "pdftops-renderer" option (see README file) to use Ghostscript or MuPDF for the PDF -> PostScript conversion
通过在网上查找资料,出现上述提示而无法打印,有很大可能是打印机硒鼓缺少碳粉导致的,尤其是一些代用硒鼓、重新加过粉的硒鼓,尤其要注意这点。
对于打印的时候因缺少纸张而暂停打印,重新添加纸张后无法继续打印的情况,因为类似1020这样的打印机都没有物理按键可以继续打印,打开并合上一次上盖应该就可以继续打印了,这个在打印机说明书上好像没有提到,但是惠普官方网站有明确说明:
更多推荐
所有评论(0)