黎小葱 2026-02-27 15:40 采纳率: 98.4%
浏览 0
已采纳

HPP1106打印机在麒麟系统上无法识别或打印失败

HPP1106打印机在麒麟系统(V10 SP1/SP2)上常因驱动兼容性问题导致无法识别或打印失败:系统默认未预装适配国产内核(如UKUI桌面环境+Linux 4.19/5.10内核)的HP官方驱动,而通用CUPS后端(如hpcups、hplip)在麒麟OS中存在udev规则缺失、dbus权限限制及SELinux策略拦截等问题;同时,HPP1106依赖的固件(如`hplip-plugin`)需手动下载安装,但麒麟应用商店提供的hplip版本(通常为3.20.x)不支持该型号(官方仅在hplip 3.22.6+中正式加入HPP1106设备ID),导致USB连接后`lsusb`可识别设备但`hp-info -i`报“device not found”;此外,麒麟系统默认禁用root账户且CUPS Web管理界面(localhost:631)常因防火墙或avahi服务未启用而无法自动发现网络打印机,进一步加剧识别失败。
  • 写回答

1条回答 默认 最新

  • 白萝卜道士 2026-02-27 15:40
    关注
    ```html

    一、现象层:基础设备识别异常(What)

    • 执行 lsusb 可见 ID 03f0:1b17 HP, Inc —— USB物理层通信正常;
    • hp-info -i 返回 error: Device not found,表明HPLIP未完成逻辑设备枚举;
    • CUPS管理界面(http://localhost:631)中“Add Printer”无HP P1106选项,且USB端口显示为 Unknown
    • 系统日志 journalctl -u cups -n 50 --no-pager 出现 Unable to open USB device... 报错;

    二、驱动栈层:HPLIP版本与设备ID兼容性断点(Why-1)

    麒麟应用商店默认提供 hplip-3.20.3-5.ky10(SP1/SP2),而HP官方在 hplip-3.22.6 中首次注册 P1106 的 USB VID/PID(03f0:1b17)及固件映射表:

    HPLIP 版本是否支持 HPP1106关键变更
    ≤3.21.12❌ 否设备ID未录入 prnt/hpcups/models.dat
    ≥3.22.6✅ 是新增 hpp1100_series 类别,启用 hpcups 后端自动匹配

    三、系统策略层:udev/dbus/SELinux 多重拦截(Why-2)

    麒麟OS(UKUI + Linux 4.19/5.10)对打印服务实施深度安全加固,导致HPLIP初始化失败:

    • udev规则缺失:缺少 /lib/udev/rules.d/56-hpmud.rules,致使 hpmud 守护进程无法获取设备节点权限;
    • dbus权限限制:用户会话DBus未授权 org.opensuse.cupsispp 接口,hp-setup 调用 GetDevices() 被拒绝;
    • SELinux策略拦截:麒麟默认启用 targeted 策略,cupsd_t 域被禁止访问 hplip_plugin_t 上下文的固件文件。

    四、固件供给层:闭源插件下载与签名验证失效(Why-3)

    HPP1106 需加载闭源固件 hplip-plugin-3.22.6.run(含 hpp1100.ppdfw_p1100.bin),但存在三重障碍:

    1. 麒麟系统禁用 root 登录,sudo ./hplip-plugin-*.run 因缺少 /usr/share/hplip/firmware/ 写入权限失败;
    2. 插件包使用 SHA256+GPG 签名,而麒麟仓库未预置 HP GPG 公钥(0x8685F1A2),hp-plugin 拒绝安装;
    3. 国产内核模块 usblp 在 5.10+ 中默认禁用,需手动 modprobe usblp 并持久化至 /etc/modules

    五、服务发现层:CUPS-Avahi-Network 协同故障(Why-4)

    graph LR A[USB连接P1106] --> B{CUPS服务状态} B -->|active| C[Avahi-daemon是否运行?] B -->|inactive| D[检查firewalld-zone=public是否放行631/tcp] C -->|no| E[systemctl enable --now avahi-daemon] C -->|yes| F[avahi-browse -at 是否列出 _ipp._tcp] F -->|否| G[检查 /etc/avahi/services/ipp.service 配置]

    六、实操方案:分阶段修复路径(How)

    1. 升级HPLIP核心栈:从 SourceForge 下载 hplip-3.22.10.run,执行 sh hplip-3.22.10.run --no-deps --no-compile
    2. 注入udev规则:将官方 56-hpmud.rules 复制至 /etc/udev/rules.d/,运行 udevadm control --reload-rules && udevadm trigger
    3. 绕过SELinux限制:临时设置 setsebool -P cups_pdf_write on,并为固件目录打标:chcon -t hplip_etc_t /usr/share/hplip/firmware/
    4. 强制安装插件:导出 GPG 密钥后执行 hp-plugin -i --gpgkey 0x8685F1A2,指定固件路径为 --plugin=/tmp/hplip-plugin-3.22.10.run
    5. 启用网络发现:开放防火墙端口 firewall-cmd --permanent --add-port=631/tcp,启动 Avahi 并验证 IPP 服务广播。

    七、验证矩阵:多维度交叉确认

    验证项预期输出故障信号
    hp-detach -m显示 P1106 设备路径(如 usb:/HP/P1106?serial=XYZ返回空或 No devices found
    lpstat -p -d出现 printer HPP1106 is idle 且默认队列已设仅显示 no system default printer
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 2月28日
  • 创建了问题 2月27日