云计算百科
云计算领域专业知识百科平台

玩客云做打印机服务器连接惠普(HP)LaserJet 1020 Plus打印机实现打印机网络共享

家里有个惠普1020p打印机但是用着不方便,还有之前玩剩下的玩客云盒子,正好组一个打印服务器用。

方案:玩客云刷Armbian20装docker、docker内装cups(苹果开源的打印服务)。

玩客云是Armbian20系统基于debian10 

一、刷armbian系统和安装docker跳过网上能找到很多大佬写的

二、docker安装cupos

docker run -d –restart always –privileged -p 631:631
-v (/tac/dockerrj/cups替换自己目录):/etc/cups
-v /dev/bus/usb:/dev/bus/usb
-v /var/run/dbus:/var/run/dbus ydkn/cups:latest

三、登录cups 端口是631,注意用https连接。 默认账户密码都是 admin

添加打印机

四、发现打印测试页没反应,是hp1020还要在容器中装驱动

进入容器

docker exec -it affectionate_perlman bash

安装驱动

sudo hp-setup -i

一直选默认选项即可如果安装时提示缺少gpg,那就先安装gpg再执行安装驱动命令

apt install -y gnupg

如果你和我一样是debian10的版本还会出现安装gpg失败的问题。因为Debian 10 的官方源已经下线,deb.debian.org / security.debian.org 都不再提供 buster,所以必须改用 👉 archive.debian.org(归档源),并关闭有效期校验。

第 1 步:换成 Debian 10 归档源

cat > /etc/apt/sources.list <<'EOF' deb http://archive.debian.org/debian buster main deb http://archive.debian.org/debian-security buster/updates main EOF

第 2 步:关闭 apt 的有效期校验(必须)

cat > /etc/apt/apt.conf.d/99no-check-valid-until <<'EOF'

Acquire::Check-Valid-Until "false";

EOF

第 3 步:更新

apt update

第 4 步:安装 gpg

apt install -y gnupg

第 5 步:再次尝试安装打印驱动

sudo  hp-setup -i 

执行完毕之后打印机就响起来了。

五、在其他设备中添加共享的打印机

以Windows10为例

电脑上没有驱动的可以去官网下载

六、安装自动发现打印机服务avahi

       在系统中安装avahi服务注意是系统中不是容器中

        apt-get -y install avahi-daemon libnss-mdns  安装

        systemctl restart avahi-daemon          重启

        systemctl enable avahi-daemon         设置开机自启动

这样安卓手机和苹果手机就能直接发现打印机了

七、打印机固件是由Linux发到打印机后存在打印机内存中的,打印机每次重启会丢失固件需要重新执行sudo hp-setup -i 或者hp-firmware -n(这是sudo hp-setup -i 里面的上传固件命令)很麻烦,这里我写了个自动的脚本。

1、先在主系统中查看usb设备的id

2、执行以下命令

# 1. UDEV规则
cat > /etc/udev/rules.d/85-usb-trigger.rules <<'EOF'
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="03f0", ATTR{idProduct}=="你的id", RUN+="/bin/systemctl start usb-trigger.service"
EOF

# 2. Systemd服务
cat > /etc/systemd/system/usb-trigger.service <<'EOF'
[Unit]
Description=Run command in docker when USB inserted

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'docker ps -q –filter "name=affectionate_perlman" | xargs -r -I{} docker exec {} hp-firmware -n'
EOF

# 3. 重新加载
udevadm control –reload-rules
systemctl daemon-reload

上面的命令会监听usb设备插入,然后进入docker执行往打印机发固件的命令,以完成自动化打固件的操作,即使服务器或打印机断电恢复了也没事。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 玩客云做打印机服务器连接惠普(HP)LaserJet 1020 Plus打印机实现打印机网络共享
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!