在 OpenWrt 路由器上配置有线 HP 打印机
前言
作为学生,时常有打印的需求。而我的打印机不支持无线打印,每次打印都要打开电脑显然很麻烦。在房间网关更换为带 usb 接口的路由器后,便打算配置无线打印服务器。
必要条件
- 一台 HP 打印机。(我的是 Hewlett-Packard Deskjet 1050)
- 一台带 usb 接口 OpenWrt 路由器。
- 一台电脑(最好有 Linux 环境)。
- 聪明的大脑。
- 灵巧的小手。
- 巧妙的上网方法。
编译 OpenWrt
由于 OpenWrt 项目从 LEDE17 开始就不再提供预编译的 CUPS 软件,到现在的最新版(21.02.3)甚至没有内置在官方源码里,所以我们需要自行编译 CUPS。
如果你不想编译,请直接跳到使用二进制包。编译的好处是可以把 CUPS 内置在固件镜像内,而且可以调整别的内容。
(以下内容参照 OpenWrt 官方 wiki)
配置编译环境
本人是在 Red Hat Enterprise Linux 9 上编译的(Fedora/CentOS 等同理),配置编译环境只用执行以下命令即可:
1 |
|
其他发行版的环境配置命令也可以在 OpenWrt Wiki 找到。
注意:如果你使用 Windows Subsystem for Linux 编译,请删去 PATH 里的 Windows 路径
获取源代码
使用 git 把 OpenWrt 的源代码克隆下来:
1 |
|
checkout 到一个稳定版(这里选择 21.02.3)
1 |
|
获取软件包列表
1 |
|
看看有没有 CUPS 软件包可用
1 |
|
打开菜单之后,按下 / ,输入 libcups 寻找源码仓库内是否含 CUPS:
如果找到了(就如下图),那么恭喜你,你不用配置第三方源。
否则,请往下看。
在寻找完成之后,不要改动任何选项,选择 Exit 再按下<Enter> 直至回到命令行。
添加 CUPS 源码仓库
在源码目录内,运行以下命令以添加 CUPS 仓库:
1 |
|
然后更新仓库列表
1 |
|
(如果你打开这个仓库,你会发现最后更新在 2018 年。请不要担心,这不意味着编译出的 CUPS 不可用)
更改配置
如果你的设备不在 OpenWrt 的官方支持列表里,请直接跳到使用二进制包。
打开 OpenWrt 的下载仓库,定位到你的设备的目录
然后向下,定位到 config.buildinfo,复制链接
回到终端,输入以下命令以使用你设备的配置
1 |
|
在菜单里 Target Profile 处选择你的设备
在菜单里 Target Profile 处选择你的设备
- Network(ing) -> Printing -> cups(不需要选中附加组件,且有可能编译失败)
- Library -> libcups
如果你想要把包内置在固件里的话,把包选择成 [*] ,否则,请选择成 [M]。
按下保存并退出,就可以编译了。
开始编译
1 |
|
这可能会占满你电脑的资源并花费几个小时的时间。你可以在这期间休息一下。
安装 CUPS
编译好之后,你应该能在以下目录找到文件
- 编译好的固件:
bin/targets/<设备平台>/<设备硬件>
- 编译好的包:
bin/targets/<设备平台>/<设备硬件>/packages
比如我使用联想新路由 Mini,是 Realtek MIPS 平台,采用 MT7620 固件,那么我能在bin/targets/ramips/mt7620
找到固件。 - 如果你上面配置 CUPS 选择了 [*],请刷入固件
- 如果你上面选择了 [M],请安装包。(温馨提示:用
ls *cups*
可以找到名称里包含cups
的文件)此时固件的刷入是可选的。
使用二进制包
当然,你也可以不编译,使用别人现成的包。
你可以在以下地方下载编译好的 CUPS 包:
[musl libc 版本] [uClibc libc 版本]
鉴别 musl
和 uClibc
ssh 进入你设备的后台,运行以下命令
1 |
|
1 |
|
1 |
|
配置打印机
好了之后(建议重启一下),打开浏览器,输入网址
1 |
|
进入 CUPS 管理界面。
点击 Administration(应该会需要你输入 root 账户及密码),进入 CUPS 管理后台
点击按钮添加打印机。
记得勾选 Share This Printer。
此时需要你选择一个驱动,不要惊慌。打开惠普 Linux 制图与打印,选择最新版本,下载 tar.gz 文件。
解压,进入 ppd/hpcups 目录
定位到你的打印机(如果打印机的 ppd 文件不在这里面,请在 hplip 包的其他地方找找。),解压出 ppd 文件
并上传到 CUPS 管理界面。
最后选择默认设置
就配置好你的打印机了。
最后你应该能在支持 CUPS 的系统设置里查找到你的打印机,不要忘记在本地设备上配置驱动哦!
后记
配置 CUPS 的初衷是更方便地打印。可惜到毕业之后才配置好,深感哀伤。总而言之,希望这篇文章能对你提供帮助。