免费手机云打印!!!让CUPS焕发你老打印机的第二春
Hello,各位值友们,大家好呀!我是爱玩打印机的米菠萝上期文章我们知道了如何给家里闲置的打印机在连接电脑以后通过oneprinter这个app来实现手机打印。还没看过的戳:
有评论下面说电脑不想24小时开启,或者家中有闲置的电视盒子,想要利用起来让它可以实现低功耗的手机打印行不行?当然可以。

今天我们来看看CUPS这个项目,让闲置的电视盒子+老打印机焕发第二春。
简单介绍
什么是cups
百度百科里是这么介绍的:CUPS(Common UNIX Printing System,通用Unix打印系统)是Fedora Core3中支持的开源打印管理系统,应用于Unix/Linux系统,主要使用IPP(Internet Printing Protocol)管理打印工作及队列,同时支持LPD、SMB、AppSocket、JetDirect等通信协议,可检测网络打印机并提供Web接口设置工具
顾名思义你可以在任意一台安装了Linux的设备上安装他实现便利的打印,所以说无论是x86的电脑还是电视盒子我们都可以安装,甚至连树莓派这种开发板也可以。
准备工作
简单了解完背景之后,我们来看看如何安装吧!
你需要一台电视盒子,Linux系统镜像,一个u盘(64g以下),一台电脑(用来制作启动u盘)
曾经一度喜欢刷盒子买了好多……提示:为了方便大家操作,本文使用的是由神雕大佬基于Ubuntu系统制作的海纳思系统(如果你熟悉其他Linux的话也可以参考本文的安装说明)这个系统不仅仅可以作为打印服务器来用,它本身也是一个非常好用的轻nas系统。
在我们之前玩过的玩客云那篇文章里我们曾经带大家简单上手体验过这个系统,详情戳:
对内存较小,性能较为孱弱的电视盒子这个系统还是比较友好的,近10年来的电视盒子安装之后都是基本可用的。本文以华为EC6108v9c这款老盒子为例进行演示。
首先参考玩客云的文章,我们将其刷为海纳斯系统。
开始刷机
根据你的盒子型号下载对应的系统包下载地址戳:https://ecoo.top/download

根据作者提示,将下载好的几个文件解压好放入u盘根目录,要注意U盘必须格式化为fat32格式,这一步还是比较挑U盘的(我手上好几个都不行,我用读卡器+sd卡的形式才解决的
)
根据电视盒子型号的不同,参考作者给出的方法进行刷机


注意事项(无比珍贵的经验)
你短接操作后,打开电源就亮原来的安卓欢迎屏(或者原来的屏幕),代表短接不成功。重新来!
5-8秒后必须放开短接,否则无法写入文件;
正确短接后,打开电源,黑屏约2分钟,然后会亮“正在刷入激动人心的系统”屏;
超过5分钟一直黑屏,代表U盘不被识别,无法传送文件,请更换U盘或插到另一个usb口;
5分钟后亮起第二张屏“我是小盒子也是大世界”和作者二维码,则代表刷完底包;
此时务必等待5-8分钟系统初始化!匆忙断电请重新刷机!
整个过程如果你无法使用HDMI屏幕观察,也可以通过U盘的闪烁灯(常闪)判断是否在刷入;
如果刷完底包后一直无限重启,就是刷错了固件包,请重新更换正确的固件包。
图片来自官方教程
图片来自官方教程最后,给刷好机的盒子接上网线,在路由器里找到ip就可以开始使用了
我的打印机放在了阳台上那里并没有网线,于是用了路由器做中继实现了真·无线打印


安装cups
虽然说hihas系统的付费版(25元带穿透)已近预装好了cups,不过这太不符合垃圾佬的气质了,接下来我们来看看如何进行安装。cups可以跑在docker环境下也可以直接安装
打开海纳思系统使用ssh链接登录,如果你不想安装ssh工具的话你可以使用网页自带的

点击终端后台就有网页版的ssh。输入帐密登陆进去

输入
sudo -i
获得root权限
下载cups
# 更新源
apt-get update
# 安装cups
apt-get install cups
#安装驱动
mkdir hp
cd hp
#下载驱动
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回车
apt install printer-driver-gutenprint
apt-get install foomatic-db-engine
apt-get install printer-driver-gutenprint # 安装其它品牌打印机驱动
cupsctl --remote-any#运行远程访问输入机器IP:631根据提示添加对应打印机,会弹出登录框输入root账户和密码。
当你看到这个页面时,恭喜你!安装成功啦

添加打印机
在administration页面里找到usb连接的打印机

点击continue继续一路无脑下一步


在这里根据你打印机型号来选择驱动,上文中我们已经安装了hp的插件所以直接按照打印机型号来选就行了


现在恭喜你成功添加好打印机了如果你想要手机airprint,点上面Administration点开Edit Configuration File里面的配置文件Browsing off改为Browsing on改然后保存。

然后重启cups.或者终端输reboot重启盒子
温馨提示:如果你的盒子插上打印机后cups里不显示,lsusb命令却能识别可以试试
# 临时授权 chown lp:lp /dev/usb/lp0 chmod 666 /dev/usb/lp0 # 写入永久udev规则,重启盒子权限不变 cat > /etc/udev/rules.d/99-hp-cp1025.rules <
再回到手机,如果你使用华为,可以直接在你需要打印的文件里选择其他应用打开,再打开华为打印,找到你的打印机就可以愉快的进行打印了!!

忽略我测试的几台打印机……总结
把老旧电视盒子刷入海纳思 Linux,借助 CUPS 搭建独立打印服务器,本质上是一次很典型的硬件再利用实践。曾经被淘汰、即将沦为电子垃圾的 EC6108v9c,在低功耗的 Linux 环境里找到了新定位,不再依附电脑常开,摆脱了传统打印必须主机待机的束缚,搭配 HP 老激光打印机,用极低的硬件成本,补齐了家庭无线打印、AirPrint 的能力。
整个过程也能感受到开源项目的魅力:CUPS 这套成熟的通用打印系统,不挑硬件平台,x86 主机、树莓派、ARM 电视盒子都能兼容,搭配 hplip、foomatic 这类开源打印驱动,让早已停产的老打印机依然可以适配现代手机打印生态。当然实操里也会遇到 ARM 精简系统常见的坑 —— 包源缺失、USB 后端枚举异常、设备权限、驱动插件依赖、banner 过滤器报错,这些都是 ARM 小盒子玩开源服务的常态,需要一点点排查调试,这也是垃圾佬折腾的乐趣所在。
它不只是实现了一个打印功能,更是一种思路:很多闲置数码设备并不是性能彻底报废,只是原本的用途已经被淘汰。只要换一套系统、换一个定位,老硬件依然可以稳定承担轻量服务,既减少电子废弃物,也用低成本搭建属于自己的家庭小服务器。这套方案思路同样可以迁移,后续还能在这台盒子上继续拓展 Docker、轻量 NAS 等其他家庭服务,让这台老盒子持续发挥余热。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
