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.ppd和fw_p1100.bin),但存在三重障碍:- 麒麟系统禁用 root 登录,
sudo ./hplip-plugin-*.run因缺少/usr/share/hplip/firmware/写入权限失败; - 插件包使用 SHA256+GPG 签名,而麒麟仓库未预置 HP GPG 公钥(
0x8685F1A2),hp-plugin拒绝安装; - 国产内核模块
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)
- 升级HPLIP核心栈:从 SourceForge 下载
hplip-3.22.10.run,执行sh hplip-3.22.10.run --no-deps --no-compile; - 注入udev规则:将官方
56-hpmud.rules复制至/etc/udev/rules.d/,运行udevadm control --reload-rules && udevadm trigger; - 绕过SELinux限制:临时设置
setsebool -P cups_pdf_write on,并为固件目录打标:chcon -t hplip_etc_t /usr/share/hplip/firmware/; - 强制安装插件:导出 GPG 密钥后执行
hp-plugin -i --gpgkey 0x8685F1A2,指定固件路径为--plugin=/tmp/hplip-plugin-3.22.10.run; - 启用网络发现:开放防火墙端口
firewall-cmd --permanent --add-port=631/tcp,启动 Avahi 并验证 IPP 服务广播。
七、验证矩阵:多维度交叉确认
```验证项 预期输出 故障信号 hp-detach -m显示 P1106设备路径(如usb:/HP/P1106?serial=XYZ)返回空或 No devices foundlpstat -p -d出现 printer HPP1106 is idle且默认队列已设仅显示 no system default printer本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 执行