新闻详情

新闻详情

首页 / 资讯中心 / 详情

Linux下HP LaserJet P1008驱动安装与CUPS配置指南

发布时间:2026/9/25 1:16:47来源:尧图网络
Linux下HP LaserJet P1008驱动安装与CUPS配置指南
1. 为什么2024年还要折腾一台老式打印机HP LaserJet P1008 是2008年前后上市的入门级黑白激光打印机鼓粉一体、耗材便宜、皮实耐造二手市场几十块到一百多就能收一台。很多人手里还留着这台机器或者从公司淘汰设备里捡了一台插上电脑发现 Windows 下装个驱动就能用但换到 Linux 上就傻眼了——系统设置里添加打印机要么根本识别不到要么识别到了打印出来全是乱码或者空白页。这个问题的根源在于 HP P1008 属于所谓的“GDI 打印机”或者叫“宿主型打印机”。它本身没有内置 PostScript 或 PCL 页面描述语言的解释器打印任务需要由电脑端的驱动程序把文档渲染成点阵位图再通过 USB 传给打印机。HP 官方只为 Windows 和 macOS 提供了驱动Linux 下没有官方支持。好在开源社区早年就逆向出了这类打印机的通信协议foo2zjs 就是其中最成熟的一个驱动项目专门对付 HP、Minolta、Samsung 等品牌使用 ZJ 流协议的激光打印机。我这次操作的场景是一台装了 Ubuntu 22.04 的旧笔记本通过 USB 直连 P1008。整个过程从零开始包括确认系统识别到 USB 设备、安装 foo2zjs 驱动、配置 CUPS 打印服务、添加打印机、测试打印以及中间踩到的几个坑。如果你用的是 Debian、Fedora、Arch 或者其他发行版思路完全一样只是包管理命令不同。这篇文章适合手里有 P1008 或者其他 foo2zjs 支持的打印机、想在 Linux 下正常打印的人也适合想了解 Linux 打印体系CUPS 驱动 PPD基本运作方式的读者。2. 动手之前先把思路理清楚2.1 Linux 打印的三层结构在 Linux 下打印不管什么打印机本质上都是三层配合应用层你用的 LibreOffice、Firefox、Evince 等程序把文档交给打印系统。打印服务层CUPSCommon Unix Printing System负责管理打印机队列、接收任务、调用过滤器把文档转换成打印机认识的格式再通过后端USB、网络等发送出去。驱动层提供 PPDPostScript Printer Description文件或者过滤器告诉 CUPS 这台打印机支持什么纸张、什么分辨率、怎么把通用格式转成打印机专属的位流。HP P1008 的难点就在第三层。CUPS 自带一堆通用驱动但 P1008 不在支持列表里。foo2zjs 做的事情就是补上这一层它提供一个名为foo2zjs的过滤器程序把 CUPS 传来的位图数据按照 ZJ 协议打包同时提供对应的 PPD 文件让 CUPS 知道怎么调用它。2.2 为什么选 foo2zjs 而不是其他方案网上搜“Linux HP P1008”会看到几种说法有人让你装 hplip有人让你用 foo2zjs还有人推荐用 generic 驱动凑合。我实际试下来的结论是hplipHP 官方的 Linux 驱动套件功能全支持网络打印、墨盒状态查询等。但它对 P1008 这种老 GDI 机型支持很差新版 hplip 里甚至移除了部分老机型的支持。装了大概率还是打不出来。generic PostScript/PCL 驱动CUPS 自带的通用驱动选上去之后打印机可能会亮灯、走纸但打出来是空白或者乱码因为 P1008 根本不懂 PostScript。foo2zjs专门为 ZJ 协议打印机写的开源驱动支持列表里明确包含 HP LaserJet P1008。这是目前最靠谱的方案。所以路线很明确装 foo2zjs用它提供的 PPD 在 CUPS 里添加打印机。2.3 需要提前确认的两件事动手之前先确认两个前提能省掉后面很多无效折腾第一打印机 USB 连接正常。在终端执行lsusb输出里应该能看到类似Bus 001 Device 004: ID 03f0:5e17 HP, Inc LaserJet P1008的一行。如果看不到说明 USB 线或者接口有问题先解决硬件连接。注意 P1008 用的是 USB 2.0 全速接口插 USB 3.0 口一般也能用但个别老主板的前置 USB 口供电不足会导致识别不稳定建议插机箱后面的口。第二确认你的发行版和包管理方式。我用的是 Ubuntu用 apt。如果你用 Fedora对应的是 dnfArch 用 pacman。foo2zjs 在主流发行版的官方仓库里都有优先用仓库安装比手动编译省事得多。提示不要急着从网上下载来路不明的 deb 包或者编译好的二进制foo2zjs 在 Ubuntu/Debian 官方源里就有版本足够新安全性和兼容性都有保障。3. 从零开始的完整实操过程3.1 第一步安装 foo2zjs 驱动包Ubuntu/Debian 下直接一条命令sudo apt update sudo apt install foo2zjs这个包会安装foo2zjs过滤器、foo2zjs相关的 PPD 文件以及一个叫foo2zjs-wrapper的辅助脚本。安装完成后可以用dpkg -L foo2zjs看一下装了哪些文件重点确认 PPD 文件的位置通常在/usr/share/ppd/foo2zjs/或者/usr/share/cups/model/foo2zjs/下面。Fedora 下sudo dnf install foo2zjsArch 下sudo pacman -S foo2zjs安装完之后建议把当前用户加入lp和lpadmin组否则后面用 CUPS 网页界面添加打印机时可能提示权限不足sudo usermod -aG lp,lpadmin $USER执行完这条命令需要注销重新登录或者重启一次组权限才会生效。这一步很多人会漏掉然后卡在 CUPS 网页界面提示“Forbidden”或者添加打印机按钮灰色。3.2 第二步确认 CUPS 服务正常运行Ubuntu 桌面版默认装了 CUPS但服务不一定在跑。先检查systemctl status cups如果显示inactive或者failed启动并设置开机自启sudo systemctl enable --now cups然后确认 CUPS 的 Web 管理界面能访问。浏览器打开http://localhost:631能看到 CUPS 的首页就说明服务正常。如果打不开检查是不是防火墙拦了 631 端口或者 CUPS 配置里禁用了 Web 界面。注意CUPS 默认只允许本机访问 Web 界面这是合理的。如果你确实需要从局域网其他机器管理再改/etc/cups/cupsd.conf里的Listen和Allow配置但改完记得重启 cups 服务。家庭环境一般不需要动这个。3.3 第三步用 lpadmin 命令添加打印机图形界面添加打印机在 GNOME 设置里也能做但老打印机经常在图形界面里搜不到合适的驱动。我习惯直接用命令行可控性更强。先确认 CUPS 识别到了 USB 打印机lpinfo -v输出里应该有一行类似direct usb://HP/LaserJet%20P1008?serial...的设备 URI。把这个 URI 记下来后面要用。然后用lpadmin添加打印机。假设打印机名字叫HP_P1008PPD 文件路径是/usr/share/ppd/foo2zjs/HP-LaserJet_P1008.ppdsudo lpadmin -p HP_P1008 \ -E \ -v usb://HP/LaserJet%20P1008?serial你的序列号 \ -P /usr/share/ppd/foo2zjs/HP-LaserJet_P1008.ppd参数解释一下-p HP_P1008给打印机起个名字随便起后面打印时用这个名字。-E启用打印机并接受打印任务。不加这个参数打印机是禁用状态。-v指定设备 URI就是上一步lpinfo -v查到的那个。-P指定 PPD 文件路径。如果 PPD 文件路径不确定可以用find /usr -name *P1008*搜一下。foo2zjs 包里 PPD 文件命名一般是HP-LaserJet_P1008.ppd这种格式。添加完成后把打印机设为默认lpadmin -d HP_P1008然后确认打印机状态lpstat -p -d正常的话会显示printer HP_P1008 is idle. enabled since ...以及system default destination: HP_P1008。3.4 第四步打印测试页验证命令行直接打测试页lp /usr/share/cups/data/testprint或者用echo管道echo Hello P1008 | lp -d HP_P1008观察打印机反应。正常情况下打印机会有预热动作然后走纸、出纸。如果打印机完全没反应看 CUPS 的错误日志tail -f /var/log/cups/error_log这个日志会告诉你任务卡在哪一步——是过滤器报错、USB 通信失败还是 PPD 配置有问题。日志里出现Filter failed是最常见的通常意味着 foo2zjs 过滤器执行出错往下翻能看到具体原因。3.5 第五步调整打印质量和默认参数P1008 支持 600x600 dpi 和 1200x600 dpi 两种分辨率后者是增强模式。foo2zjs 的 PPD 里默认可能是 600x600打印速度更快、耗粉更少。如果你需要更清晰的文字效果可以改默认分辨率lpoptions -p HP_P1008 -o Resolution1200x600dpi另外 P1008 支持省墨模式EconoMode在 PPD 里对应EconoMode选项。开启后打印出来的字会淡一些但硒鼓寿命能延长不少。日常打印内部文档可以开正式文件建议关掉lpoptions -p HP_P1008 -o EconoModeTrue这些设置会保存在~/.cups/lpoptions文件里只对当前用户生效。如果想对所有用户生效改/etc/cups/lpoptions。4. 踩过的坑和排查经验4.1 打印机识别到了但打印空白页这是最常见的问题原因通常是 PPD 选错了。foo2zjs 包里包含多个 PPD有些是给同系列其他机型用的。如果你不小心选了HP-LaserJet_P1007.ppd或者HP-LaserJet_P1006.ppdCUPS 会接受任务、打印机也会走纸但打出来是空白因为协议参数不匹配。解决办法删掉打印机重新添加PPD 一定要选文件名里明确带P1008的那个。用lpadmin -x HP_P1008删除然后重新执行添加命令。4.2 USB 设备权限问题有些发行版默认不给普通用户访问 USB 打印机的权限表现为lpinfo -v能看到设备但打印任务一直卡在processing状态日志里报Permission denied。检查/dev/bus/usb/下对应设备的权限或者直接看 udev 规则。foo2zjs 包通常会附带一个 udev 规则文件安装后自动生效。如果没有可以手动加一条sudo tee /etc/udev/rules.d/99-hp-p1008.rules EOF SUBSYSTEMusb, ATTR{idVendor}03f0, ATTR{idProduct}5e17, MODE0664, GROUPlp EOF然后重新加载 udev 规则并重新插拔打印机sudo udevadm control --reload-rules sudo udevadm trigger4.3 打印任务卡住不动的清理方法有时候任务发出去之后打印机没反应任务一直挂在队列里再发新任务也排在后面。这时候需要先取消所有任务cancel -a HP_P1008如果取消不掉重启 CUPS 服务sudo systemctl restart cups还不行的话可能是 USB 通信死锁了拔掉打印机 USB 线等几秒再插上然后重新发任务。P1008 的 USB 固件比较老偶尔会出现这种死锁属于正常现象不用怀疑驱动装错了。4.4 常见问题速查表现象可能原因排查方法lpinfo -v看不到 USB 设备USB 连接或供电问题换线、换机箱后置 USB 口lsusb确认打印空白页PPD 文件选错确认 PPD 文件名含 P1008重新添加任务卡在 processingUSB 权限不足检查 udev 规则用户加入 lp 组Filter failedfoo2zjs 过滤器执行出错看/var/log/cups/error_log具体报错CUPS 网页提示 Forbidden用户不在 lpadmin 组usermod -aG lpadmin $USER后重新登录打印出来字迹太淡省墨模式开启或硒鼓老化关闭 EconoMode检查硒鼓余量5. 几个提升使用体验的补充技巧5.1 用 CUPS 网页界面管理打印机命令行添加完之后日常管理用 CUPS 网页界面更方便。浏览器打开http://localhost:631点“Printers”标签能看到已添加的打印机可以查看队列、暂停/恢复打印、修改默认选项、打印测试页。网页界面里改的设置和lpoptions命令改的是同一套配置效果一样。5.2 局域网共享这台打印机如果家里或者办公室有多台电脑可以把这台 P1008 通过 CUPS 共享出去。在 CUPS 网页界面里进入打印机管理页面勾选“Share This Printer”然后在/etc/cups/cupsd.conf里确认Listen配置允许局域网访问并给/printers路径加上Allow LOCAL。其他 Linux 机器用lpadmin添加时设备 URI 填ipp://主机IP:631/printers/HP_P1008即可。Windows 机器添加网络打印机时选“按 URL 添加”填同样的地址。注意共享打印机涉及局域网访问权限建议只在可信网络里开启不要暴露到公网。CUPS 的默认配置已经比较保守不要随意改成Allow all。5.3 驱动更新和内核升级后的注意事项foo2zjs 是用户态驱动不涉及内核模块所以内核升级一般不会影响它。但 CUPS 大版本升级偶尔会重置打印机配置表现为升级后打印机列表空了。这时候不用慌重新用lpadmin添加一遍就行PPD 文件还在。建议把添加打印机的命令记在一个文本文件里重装系统或者配置丢失时直接复制粘贴比重新查资料快得多。另外如果你换了发行版或者重装了系统foo2zjs 包需要重新安装。它不在“开箱即用”的默认驱动集里属于额外安装的包这点要有心理预期。5.4 关于打印速度和噪音P1008 标称打印速度 16 页/分钟实际在 Linux 下用 foo2zjs 驱动首页输出大概需要 10 到 15 秒预热之后连续打印速度基本能达到标称值。噪音方面这台机器工作时的声音不算小放在安静环境里比较明显这是硬件本身的特性跟驱动无关。如果对噪音敏感可以考虑把它放在离工位远一点的地方或者加个隔音垫。打印质量上600x600 dpi 模式下文字边缘已经足够清晰日常文档完全够用。1200x600 dpi 增强模式主要改善图形和灰阶过渡纯文字文档区别不大反而更费粉。我的建议是默认用 600x600需要打印图片或者表格密集的文档时再临时切到增强模式。5.5 硒鼓和耗材的省钱思路P1008 用的是 88A 硒鼓或者兼容型号原装的贵国产兼容的便宜很多。Linux 下 foo2zjs 驱动不涉及硒鼓芯片验证所以兼容硒鼓基本都能正常用不像某些新机型会锁芯片。这一点算是老打印机的优势。如果打印量不大买兼容硒鼓完全够用打印量大可以考虑自己加粉成本更低但操作时注意别把碳粉撒得到处都是戴口罩和手套。我在实际使用中发现foo2zjs 驱动对硒鼓余量的检测不太准有时候提示缺粉但实际还能打不少页。如果打印出来字迹开始变淡、出现纵向白条那才是真的该换硒鼓了。软件里的余量提示参考一下就行不用太当真。最后再分享一个小技巧如果你在 CUPS 里添加打印机时lpinfo -v输出的 USB URI 里带了一长串序列号复制的时候容易出错。可以先用lpinfo -v | grep -i p1008过滤出那一行然后手动把 URI 抄下来注意%20是空格的转义不要改成真正的空格。URI 写错的话lpadmin命令不会报错但打印任务会一直失败排查起来很费时间。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Spring Boot网上商城高并发与安全防护实战指南 2026/9/25 1:56:59

Spring Boot网上商城高并发与安全防护实战指南

简介:本资源是一套完整的SpringBoot网上商城购物系统毕业设计实现方案,面向计算机专业本科生及Java初学者,聚焦电商核心功能开发与系统工程实践。压缩包含847个文件,总大小29.32MB,涵盖130个Java后端逻辑文件、153个Ja…

阅读更多 →
主流CI/CD流水线工具横评:提效与安全的双平衡实践指南 2026/9/25 1:56:53

主流CI/CD流水线工具横评:提效与安全的双平衡实践指南

团队最近在选型的讨论群里又炸开了锅:同样是要落地 CI/CD 流水线,有人坚持 Jenkins 插件多能解决一切,有人觉得 GitLab CI 跟代码仓库一体更省心,还有人被 GitHub Actions 的 Marketplace 圈粉。说来说去,大家真正纠结…

阅读更多 →
老游戏迟迟不更新?用 DLSS Swapper 给游戏内 DLSS DLL 换版本的完整指南 2026/9/25 1:56:53

老游戏迟迟不更新?用 DLSS Swapper 给游戏内 DLSS DLL 换版本的完整指南

老游戏迟迟不更新?用 DLSS Swapper 给游戏内 DLSS DLL 换版本的完整指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 老游戏卡在旧版 DLSS,厂商就是不发更新?DLSS Swapper 免费开…

阅读更多 →
SpringBoot学生考勤管理系统源码实战:从环境搭建到二次开发 2026/9/25 1:56:47

SpringBoot学生考勤管理系统源码实战:从环境搭建到二次开发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
电源芯片替代的系统化选型方法论 2026/9/25 1:56:47

电源芯片替代的系统化选型方法论

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
react-big-calendar 拖拽与缩放插件(Drag and Drop Addon)完整使用指南 2026/9/25 1:56:47

react-big-calendar 拖拽与缩放插件(Drag and Drop Addon)完整使用指南

前端UI组件 【免费下载链接】react-big-calendar gcal/outlook like calendar component 项目地址: https://gitcode.com/gh_mirrors/re/react-big-calendar 点击查看 免费下载 本指南以 react-big-calendar 仓库中的 Addons 文档为核心,系统讲解其唯一…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉