PVE 8.2 LXC 容器直通 USB 设备实现局域网共享打印机

Anye
Anye
发布于 2024-05-25 / 53 阅读
0
0

PVE 8.2 LXC 容器直通 USB 设备实现局域网共享打印机

前言

这也可能是一个小众需求。

办公室里放了一台小主机安装了 PVE 当小服务器用,跑一些乱七八糟的服务,之前安装了 Windows 10 LTSC 版本,专门连接打印机实现办公室内共享。但是吧, 别的服务都跑在 LXC 的 Debian 容器上,单单为了一台打印机而装了 Windows 占用那么高的内存,还卡卡的,不符合我这折腾的习惯。

正好,PVE 更新了 8.2 系统,LXC 容器可以直接在 资源 处直接添加 Device Passthrough ,避免了直接编辑 conf 文件的麻烦。(嘿嘿,谁不喜欢图形化)

那么话不多说,直接进入正题。

技术栈

  • PVE LXC 直通[1]

  • OpenPrinting CUPS[2]

  • HP Linux Imaging and Printing[3]

PVE 下查看 USB 设备挂载路径并直通到 LXC 容器

PVE 8.2 的安装以及 LXC 容器的安装在这里不再赘述,如有需要可以看我这篇文章 《环境配置快速复制-PVE速配》 的内容。

PVE 查看 USB 设备挂载路径的方式很简单,在 PVE 的 shell 中执行 lsusb 命令进行查询,比如我这里

root@pve:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 045: ID 03f0:1053 HP, Inc Ink Tank 310 series
Bus 001 Device 003: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

可以看到 HP, Inc Ink Tank 310 series 这个打印机是 001 总线的 045 设备,那么它的设备路径就是 /dev/bus/usb/001/045 ,记住这个路径,下面会用到。

打开需要配置为共享打印机的容器,点击 资源 添加 Device PassthroughDevice Path 填写之前找到的设备路径 /dev/bus/usb/001/045 ,添加即可。

安装 CUPS 软件及打印机驱动

apt install cups hplip -y
systemctl enable cups
systemctl start cups

之前安装了 CUPS 后,死活找不到打印机,一度怀疑是打印机太老了没有驱动,但是想想也不太可能,经过在网上多方查找之后,无果,尝试安装 Ubuntu 桌面版后却发现可以直接驱动打印机,最后一通查找才发现 hplip 里带有该打印机的 PPD 文件。

关于 cups 的配置修改如下

nano /etc/cups/cupsd.conf
  • Browsing Off 改为 Browsing On, 这样是为了让局域网内的其他设备能够搜索到打印机 把 Listen localhost:631 改为 Port 631, 这样是能够让局域网访问WEB面板

  • 需要确保 CUPS 正在侦听所有接口。

<Location />
  Order allow,deny
</Location>

改为

<Location />
  Order allow,deny
  Allow @LOCAL
</Location>
  • /admin目录添加访问权限

<Location /admin>
  Order allow,deny
</Location>

改为

<Location /admin>
  AuthType Default
  Require valid-user
  Order allow,deny
  Allow @LOCAL
</Location>
  • 保存并关闭文件。然后重新启动 CUPS 以使更改生效:

systemctl restart cups

查找添加打印机

进入 https://IP:631/admin ,在 Printers 项中点击 Find New Printers,添加打印机(我这里是 HP, Inc Ink Tank 310 series ),选择对应名称的 ppd 文件安装,最后即可在 https://IP:631/printers/ 查看到添加的打印机。

关于共享操作,各种系统下均可以在局域网中搜索到共享打印机,直接添加即可。

参考资料

[1] https://pve.proxmox.com/pve-docs/chapter-pct.html

[2] https://openprinting.github.io/cups/

[3] https://developers.hp.com/hp-linux-imaging-and-printing


评论