玩客云作为一款曾经风靡的轻量级NAS设备,其ARM架构和低功耗特性使其在二手市场依然保持着不错的流通量。而HP LaserJet 1020 Plus这款经典激光打印机,虽然性能稳定耐用,但缺少网络模块的设计让它在多设备共享场景中显得力不从心。将这两者结合,正好可以发挥各自的优势。
我最近在工作室部署了这套方案,实测可以让5台不同系统的设备(Windows/Mac/Android)同时使用这台"高龄"打印机。整个过程涉及USB驱动兼容性处理、CUPS打印系统配置、玩客云性能优化等多个技术环节,下面就把具体实现方法和踩坑经验完整分享出来。
首先需要确认玩客云与打印机的物理兼容性。HP 1020 Plus采用USB 2.0接口,而玩客云(型号WS1408)的USB接口规格如下:
实测发现直接连接会出现供电不足导致打印机频繁掉线。解决方案是:
重要提示:玩客云的充电口在数据传输时仍可供电,这个特性要善加利用
原厂系统功能有限,推荐刷入Armbian系统(基于Debian)。具体版本选择:
刷机步骤简述:
armbian-config完成基础设置在Armbian上安装配置CUPS(Common UNIX Printing System):
bash复制# 安装必要组件
sudo apt update
sudo apt install -y cups hplip
# 添加当前用户到lpadmin组
sudo usermod -aG lpadmin $USER
# 配置CUPS允许远程管理
sudo cupsctl --remote-any
sudo systemctl restart cups
关键配置参数说明:
Listen *:631 允许所有网络接口访问DefaultShared Yes 开启打印机共享MaxLogSize 200m 日志文件大小限制HP 1020 Plus需要特殊处理,因为其采用"主机驱动"模式(每次打印都需要上传固件):
bash复制# 安装foo2zjp驱动
sudo apt install -y printer-driver-foo2zjs
# 下载固件文件
wget -O /usr/share/foo2zjs/firmware/sihp1020.dl https://foo2zjs.rkkda.com/firmware/sihp1020.dl
需要修改CUPS的PPD文件,在/etc/cups/ppd目录下找到对应配置文件,添加:
code复制*cupsFilter: "application/vnd.cups-postscript 0 foomatic-rip"
由于玩客云只有100M网口,建议进行以下优化:
bash复制sudo systemctl disable bluetooth.service
sudo systemctl stop cups-browsed
bash复制sudo ifconfig eth0 mtu 1400
只开放必要端口:
bash复制sudo ufw allow 631/tcp # CUPS服务端口
sudo ufw enable
建议设置访问密码:
bash复制sudo htpasswd -c /etc/cups/passwd admin
http://玩客云IP:631/printers/HP_LaserJet_1020常见问题:如果提示"驱动程序不可用",需要手动指定inf文件位置
通过系统偏好设置添加打印机时:
ipp://玩客云IP:631/printers/HP_LaserJet_1020玩客云只有1GB内存,需要特别优化:
bash复制sudo sed -i 's/JobPrivateAccess default/JobPrivateAccess none/' /etc/cups/cupsd.conf
sudo sed -i 's/JobPrivateValues default/JobPrivateValues none/' /etc/cups/cupsd.conf
bash复制sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
针对HP 1020的特殊需求,创建systemd服务自动上传固件:
bash复制# /etc/systemd/system/hp1020-firmware.service
[Unit]
Description=HP 1020 Firmware Loader
After=cups.service
[Service]
ExecStart=/usr/bin/foo2zjs-loadfw /usr/share/foo2zjs/firmware/sihp1020.dl
User=root
[Install]
WantedBy=multi-user.target
现象:打印机显示"stopped"或"idle"
解决方法:
bash复制# 查看错误日志
sudo tail -f /var/log/cups/error_log
# 常见修复命令
sudo cupsdisable HP_LaserJet_1020
sudo cupsenable HP_LaserJet_1020
处理步骤:
bash复制sudo cancel -a HP_LaserJet_1020
bash复制sudo systemctl restart cups
优化建议:
这套方案我已经稳定运行8个月,期间处理过各种奇葩问题。最关键的几点经验:
PreserveJobHistory No)对于需要更高性能的场景,可以考虑在玩客云上安装lighttpd+php搭建简单的打印任务管理页面,实现更直观的状态监控和任务管理。