PVE的LXC容器系统安装CUPS软件,实现多平台共享的印表机

前言:
家里使用
Canon LBP6030的USB印表机,连接住路由器(Youku1)的Padavan(老毛子)系统实现无线打印,但只能在Windows的平台实现无线打印,然而Apple的系统(如: macOS、IOS)就无法实现,难免有少许不便。
在
SMZDM发现这篇贴文N1刷armbian变身打印服务器,支持全平台无线打印@PC扫瞄 ,可以安装CUPS软件成为印表机伺服器系统,就有了以下的内容记录。
目录内容:
- [实现条件]
- [PVE下安装LXC容器系统(Debian)]
- [LXC直通USB端口]
- [LXC(Debian)安装CUPS软件及印表机驱动]
- [多个系统平台实现印表机安装及列印测试]
- [Windows 10 系统安装印表机]
- [Windows 7 系统安装印表机]
- [macOS 系统安装印表机]
- [android 系统安装印表机]
实现条件:
-
可以安装
CUPS软件的平台如: armbian、ubuntu、centos等,我选取Debian Linux平台
-
可支援平台的印表机驱动程式
如果在OpenPrinting找到支援的驱动程式可忽略这一步
PVE下安装LXC容器系统(Debian)
LXC提供了一个作业系统级的虚拟化环境,基于Linux的系统上安装。而免费的
PVE虚拟伺服器可以很方便地建立一个全新共用内核的Linux系统(即罐头系统)
下载CT模板:
LXC系统的建立
新建的LXC系统暂不用启动
LXC直通USB端口:
印表机
Canon LBP6030的USB口和PVE主机的USB口对接
lsusb查看连接的USB装置
lsusb
看到Bus 001内的Device 003是Canon
查看Canon装置的数字编号是189
ls -al /dev/bus/usb/001
透过
cgroup允许LXC存取PVE的USB装置
cat >> '/etc/pve/lxc/100.conf' << EOF
lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/001 dev/bus/usb/001 none bind,optional,create=dir
EOF
LXC的ID是100#配置文件路径是:/etc/pve/lxc/100.conf
189:* rwm内的装置 # 允许读、写、挂载挂载整个
Bus 001USB端口 # 这样的好处是就算印表机的USB unplug多次而变动Device的编号也不影响挂载
启动新建的LXC容器
在LXC容器内的Console查看是否已经挂载成
dmesg | grep -in 'canon'
1617:[3489934.461195] usb 1-1: Manufacturer: Canon,Inc.
1837:[3494585.821378] usb 1-1: Manufacturer: Canon,Inc.
看到
Manufacturer: Canon,Inc.代表已成功在LXC容器内连入到USB印表机
LXC(Debian)安装CUPS软件及印表机驱动:
CUPS(Common UNIX Printing System,通用Unix列印系统)是Fedora Core3中支援的列印系统,它主要是使用IPP(Internet Printing Protocol)来管理列印工作及伫列,但同时也支援LPD(Line Printer Daemon)和SMB(Server Message Block) 以及AppSocket等通信协定。来自百度
安装CUPS软件
sudo apt update && sudo apt install -y cups
开启CUPS 的远端存取权限
sudo cupsctl --remote-any
将当前的使用者加入到lpadmin群组
sudo usermod -aG lpadmin $USER
如果在OpenPrinting找到支援的印表机,可忽略驱动程式这一步
下载及安装Canon LBP6030的印表机驱动程式
wget https://gdlp01.c-wss.com/gds/0/0100005950/10/linux-UFRIILT-drv-v500-uken-18.tar.gz && tar xzvf linux-UFRIILT-drv-v500-uken-18.tar.gz && sudo dpkg -i ./linux-UFRIILT-drv-v500-uken/64-bit_Driver/Debian/cnrdrvcups-ufr2lt-uk_5.00-1_amd64.deb && rm -rf linux-UFRIILT-drv-v500-uken linux-UFRIILT-drv-v500-uken-18.tar.gz
浏览器输入https://10.1.1.253:631/admin/
LXC系统的IP地址是:10.1.1.253
列印测试页面

安装
CUPS软件成为印表机伺服器系统的设定部份已经完成
多个系统平台实现印表机安装及列印测试:
CUPS软件部署完成后可实现多个平台共享印表机了,在以下范例中我测试了
Windows7、Windows10、macOS、IOS及android均可实现无线打印功能。
Windows 10 系统安装印表机:
透过搜寻安装印表机

手动安装印表机
如透过搜寻找不到印表机 或在跨网段的网络就需要手动安装印表机
浏览器开启http://10.1.1.253:631 CUPS版面,复制路径
贴上路径 # 注意不能为https

Windows 7 系统安装印表机:
以手动安装印表机,需预先准备好印表机在相对应的Windows驱动程式
留意贴上的路径不能为https
选取预先准备好的Windows驱动程式

macOS 系统安装印表机:

android 系统安装印表机:
测试的
android装置是OnePlus 6,在软件商店安装Mopria Print Serviceapp。
结语:
相信最困难的部份应该是印表机的驱动程式安装,如果在OpenPrinting找到相对应的厰商及型号,就会相对简单。
使用
PVE的LXC安装CUPS软件的好处是不用额外多一部Linux装置(或armbian盒子)去配置印表机伺服器,而且Canon官方也有相应的Linux驱动支持。
别外利用
zero-tier等软件手动安装印表机,可实现远端(跨地域)列印。如: 在公司可以直接存取家里的印表机列印文件。