Printing

hp-setup 找不到通過 USB 連接的列印機

  • January 13, 2021

我在 Arch Linux 4.19.2 系統上使用 HP LaserJet P1102 時遇到問題。

lsusb顯示列印機已連接:

Bus 002 Device 005: ID 03f0:002a HP, Inc LaserJet P1102

journalctl中,我在通過 USB 插入列印機時看到這些消息:

kernel: usb 2-1.1: new high-speed USB device number 7 using ehci-pci
kernel: usb 2-1.1: New USB device found, idVendor=03f0, idProduct=002a, bcdDevice= 1.00
kernel: usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 2-1.1: Product: HP LaserJet Professional P1102
kernel: usb 2-1.1: Manufacturer: Hewlett-Packard
kernel: usb 2-1.1: SerialNumber: 000000000Q80X0EGSI1c
kernel: usb-storage 2-1.1:1.0: USB Mass Storage device detected
kernel: scsi host6: usb-storage 2-1.1:1.0
mtp-probe[14854]: checking bus 2, device 7: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1"
mtp-probe[14854]: bus: 2, device: 7 was not an MTP device
mtp-probe[14867]: checking bus 2, device 7: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1"
mtp-probe[14867]: bus: 2, device: 7 was not an MTP device

但是當執行sudo hp-setup -i並選擇 0 來檢查 USB 連接的列印機時,我得到:

Using connection type: usb

error: No device selected/specified or that supports this functionality.

輸出systemctl status org.cups.cupsd.service

● org.cups.cupsd.service - CUPS Scheduler
 Loaded: loaded (/usr/lib/systemd/system/org.cups.cupsd.service; enabled; vendor preset: disabled)
 Active: active (running) since Fri 2018-11-23 13:03:23 CET; 25min ago
   Docs: man:cupsd(8)
Main PID: 6271 (cupsd)
 Status: "Scheduler is running..."
   Tasks: 1 (limit: 4915)
 Memory: 7.5M
 CGroup: /system.slice/org.cups.cupsd.service
         └─6271 /usr/bin/cupsd -l

sudo hp-check崩潰:

HP Linux Imaging and Printing System (ver. 3.18.6)
Dependency/Version Check Utility ver. 15.1

Copyright (c) 2001-15 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

Note: hp-check can be run in three modes:
1. Compile-time check mode (-c or --compile): Use this mode before compiling the HPLIP supplied tarball (.tar.gz or .run) to determine if the proper   
dependencies are installed to successfully compile HPLIP.                                                                                              
2. Run-time check mode (-r or --run): Use this mode to determine if a distro supplied package (.deb, .rpm, etc) or an already built HPLIP supplied     
tarball has the proper dependencies installed to successfully run.                                                                                     
3. Both compile- and run-time check mode (-b or --both) (Default): This mode will check both of the above cases (both compile- and run-time            
dependencies).                                                                                                                                         

Check types:                                                                                                                                           
a. EXTERNALDEP - External Dependencies                                                                                                                 
b. GENERALDEP - General Dependencies (required both at compile and run time)                                                                           
c. COMPILEDEP - Compile time Dependencies                                                                                                              
d. [All are run-time checks]                                                                                                                           
PYEXT SCANCONF QUEUES PERMISSION                                                                                                                       

Status Types:
   OK
   MISSING       - Missing Dependency or Permission or Plug-in
   INCOMPAT      - Incompatible dependency-version or Plugin-version

-Traceback (most recent call last):
 File "/usr/share/hplip/base/utils.py", line 266, in walkFiles
   names = os.listdir(root)
FileNotFoundError: [Errno 2] No such file or directory: '/etc/PolicyKit'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
 File "/usr/share/hplip/base/utils.py", line 268, in walkFiles
   raise StopIteration
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
 File "/usr/bin/hp-check", line 861, in <module>
   dep.core.init()
 File "/usr/share/hplip/installer/core_install.py", line 500, in init
   self.check_dependencies(callback)
 File "/usr/share/hplip/installer/core_install.py", line 593, in check_dependencies
   self.have_dependencies[d] = self.dependencies[d][3]()
 File "/usr/share/hplip/installer/core_install.py", line 1164, in check_policykit
   if check_file('PolicyKit.conf', "/etc/PolicyKit") and check_file('org.gnome.PolicyKit.AuthorizationManager.service', "/usr/share/dbus-1/services"):
 File "/usr/share/hplip/installer/dcheck.py", line 108, in check_file
   for w in utils.walkFiles(dir, recurse=True, abs_paths=True, return_folders=False, pattern=f):
RuntimeError: generator raised StopIteration

所有軟體包都更新到最新版本,意思sudo pacman -Syu是“無事可做”。

我已經通過 pacman 安裝了 Python 3.7.1。

這是惠普軟體的錯誤嗎?與較新的 Python 版本引入的不兼容?

我通過解除安裝然後重新安裝 hplip 解決了這個問題:

sudo pacman -R hplip && sudo pacman -S hplip

之後,我可以再次安裝HP的驅動程序外掛

sudo hp-setup -i

雖然下載 GPG 密鑰失敗了

錯誤:無法接收

$$ sic $$來自密鑰伺服器的密鑰

現在可以在 HP LaserJet P1102 上列印測試頁了system-config-printer

sudo hp-check也不再崩潰:

HP Linux Imaging and Printing System (ver. 3.19.1)
Dependency/Version Check Utility ver. 15.1
...

一些版本供參考:

  • Linux核心:5.0.4
  • hplip 包1:3.19.1-1
  • 杯子包裝:2.2.10-2

附錄

這個問題再次發生,導致我放棄了 HP 列印機並改用 Brother。在這個答案的底部有一些與此相關的連結。

引用自:https://unix.stackexchange.com/questions/483667