打印机设置
首先,您需要 CUPS。如果您有 Hewlett-Packard (HP) 打印机,请添加 HPLIP 软件包。 其中一些软件包在 main 之外,需要配置适当的仓库。 请参阅下面的提示。
# apk add cups cups-pdf cups-filters hplip
cups-pdf@testing
和 hplip@testing
。确认 cups 启动。 您也可以将其设置为在启动时运行。
# rc-service cupsd start
# rc-update add cupsd boot
使用您的 Web 浏览器转到 http://localhost:631
,然后按照步骤“添加打印机”。 它会要求您登录以添加打印机。 以 root 用户身份登录,然后完成步骤。 完成后,您应该可以打印了。
如果这不起作用,您可能还需要单独添加 HPLIP 的依赖项。 目前没有适用于 CUPS DDK、hp-setup
或 foomatic
的软件包。
# apk add ghostscript py3-reportlab libjpeg net-snmp
![]() 需要修改/章节,例如解决容器用户案例场景等。 |
为 USB 打印机配置 mdev
默认情况下,使用 mdev 的 USB 打印机将具有 root:root 所有权和 0660 权限。 由于 cupsd 会尝试以 lp 用户身份打开基于 libusb 的打印机,因此它将没有权限使用 /dev/bus/usb 中的设备。
首先,让我们获取有关 USB 打印机的一些信息。
# lsusb.py -uU | grep Printer 3-2 04b8:0007 00 1IF [USB 2.00, 480 Mbps, 2mA] (EPSON USB2.0 Printer (Hi-speed) 55PKAZZ15776790829)
# grep -H "" /sys/bus/usb/devices/usb3/3-2/{id{Vendor,Product},bcdDevice} /sys/bus/usb/devices/usb3/3-2/idVendor:04b8 /sys/bus/usb/devices/usb3/3-2/idProduct:0007 /sys/bus/usb/devices/usb3/3-2/bcdDevice:0100
这些对于我们区分打印机很重要。
# cat >> /etc/mdev.conf <<EOF SUBSYSTEM=usb;PRODUCT=4b8/7/100;.* root:lp 660 */lib/mdev/usbdev EOF
拔下 USB 电缆并重新插入。 现在,/dev/bus/usb/ 上的 USB 打印机设备将具有有效的 所有权和权限。
# ls -l /dev/bus/usb/002/011 crw-rw---- 1 root lp 189, 138 Apr 14 21:19 /dev/bus/usb/002/011
CUPS 现在可以使用 libusb 来发现本地 USB 打印机。
桌面环境
此外,在桌面环境中,您可以按如下步骤操作。
检查 root 和用户的用户名 (yourusername) 是否已经是 lp
和 lpadmin
组的成员。 注意:如果 yourusername 应该能够使用其密码管理 CUPS 系统,则可以将其添加到 lpadmin
组。
$ groups root
root bin daemon sys adm disk wheel floppy dialout tape video
$ groups yourusername
yourusername disk wheel audio cdrom dialout video users plugdev
如果不是,请添加它们
# adduser root lp # adduser root lpadmin # adduser yourusername lp # adduser yourusername lpadmin
启动 CUPS (cupsd) 并使其在启动之间持久存在;然后重启
# rc-service cupsd start # rc-update add cupsd # reboot
通过 KDE Plasma 设置管理打印机
要从 KDE Plasma 设置管理打印机,需要在 /etc/cups/cups-files.conf 中将 “root” 添加到 SystemGroup。
例如:
SystemGroup root lpadmin
通过命令行管理打印机
感谢 ArchWiki 优秀的 CUPS 页面,提供了以下基本步骤的指导。
定位您的打印机
连接打印机并开机后,确定打印机的 URI。 根据连接是通过 usb 还是 parallel 端口,URI 将带有 usb://
或 parallel:/
前缀。
$ lpinfo -v # network lpd network socket network beh file cups-brf:/ direct usb://HP/LaserJet%202200 network ipp network ipps network https network http direct hp
在上面的示例中,URI 是 usb://HP/LaserJet%202200
查找 .ppd 或 .ppd.gz 驱动
如果您的打印机支持 IPP Everywhere -- 大多数新型号都支持 -- 请参阅 cups-filters 中的 driverless 命令
$ driverless ipp_uri > printer.ppd
或者只需将 -m everywhere 传递给 lpadmin。
否则,您可以运行 lpinfo -m
列出所有可用的驱动程序,然后在结果中搜索以查找特定于您的打印机的 .ppd 或 .ppd.gz。 一个快速的解决方案是使用 --make-and-model
标志和 grep
,通过以这种方式插入打印机的制造商、型号和系列来过滤结果
$ lpinfo --make-and-model "make_and_model_names" -m | grep -i printer_series
- 搜索术语 HP 以查找 Hewlett-Packard 的实例。
- 您不需要完全说明
printer_series
,例如,2200 可能比搜索 2200M 等更可取。
例如,输入
$ lpinfo --make-and-model "HP LaserJet" -m | grep -i 2200
从结果中,您可以选择以下 .ppd 驱动
drv:///hp/hpcups.drv/hp-laserjet_2200_series.ppd
如果需要,可以通过安装 gutenprint 并再次运行 lpinfo
搜索来获得其他驱动程序。 这些可能未指定 .ppd
名称。
# apk add gutenprint gutenprint-doc
配置队列
使用您选择的 queue_name 创建队列。 您选择的打印机名称是一个明显的选择,但不要使用空格。
您还需要成为 root 用户或使用 sudo
,并且还需要插入 URI 和 .ppd 驱动
# lpadmin -p queue_name -E -v "uri" -m driver
使用此示例,您可以按如下方式设置,但还有其他解决方案。
# lpadmin -p HP_LaserJet_2200 -E -v "usb://HP/LaserJet%202200" -m drv:///hp/hpcups.drv/hp-laserjet_2200-pcl3.ppd
此打印队列可以设置为默认
# lpoptions -d HP_LaserJet_2200
打印机设置通常可以在您的 GUI 应用程序的打印菜单中设置,或者通过查看 CUPS lpoptions 页面来设置。 如果您只有一个队列,则可以使用 -l 标志简单地列出队列的可用设置选项(例如页面类型、双面打印等)。星号 (*) 表示当前设置
# lpoptions -l PageSize/Media Size: Card3x5 Hagaki Photo4x6 A6 Photo5x7 Card5x8 Oufuku A5 B5 JB5 Executive 16k Letter *A4 ExecutiveJIS FLSA Legal EnvA2 EnvC6 EnvChou4 EnvMonarch EnvDL Env10 EnvChou3 EnvC5 EnvB5 Custom.WIDTHxHEIGHT Duplex/Double-Sided Printing: DuplexNoTumble DuplexTumble *None InputSlot/Media Source: *Auto PhotoTray Upper Lower Envelope LargeCapacity Manual MPTray ColorModel/Output Mode: *Gray MediaType/Media Type: *Plain OutputMode/Print Quality: *Normal Draft Best OptionDuplex/Duplexer Installed: *False True
如果只有一个队列,则可以通过为每个设置简单地使用 -o 标志来设置选项
# lpoptions -o PageSize=Legal -o Duplex=DuplexNoTumble