foo2zjs:让100+款打印机在Linux上继续服役的免费打印驱动套件
foo2zjs让100款打印机在Linux上继续服役的免费打印驱动套件【免费下载链接】foo2zjsA linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs打印机在Windows下好好的插到Linux电脑上却毫无反应这类采用专有协议的激光打印机在Linux打印生态里常年缺少官方驱动而foo2zjs正是覆盖100款此类机型的开源打印驱动套件。本文从实际使用场景出发带你从零装好驱动并把颜色、固件、网络这些隐藏坑一个个填平。一台二手打印机让一个周末有了意义把二手的HP LaserJet 1020搬回家接上电源、连好USBLinux桌面却毫无动静。查了一圈发现这不是你的错这台机器走的是Zenographics的ZJ-Stream私有协议厂商只给Windows和macOS做驱动Linux用户只能干瞪眼。foo2zjs就是为解决这件事而生的。它通过逆向工程把Ghostscript渲染好的图像数据翻译成打印机听得懂的私有协议语言。项目里共打包了8个驱动模块覆盖ZJ-Stream、QPDL、LAVAFLOW、OAKT、HIPERC、SLX、XQX、HBPL2等主流专有打印协议累计支持超过100款打印机型号——其中大量是二手市场流通广、便宜耐用的老款激光机。对一台一百多块淘回来的打印机来说这份驱动是让它复活的免费钥匙。先对号入座你的打印机在不在支持名单里与其死记协议表格不如按你最容易碰到的机型来对照查找。二手市场最常见的HP黑白激光机HP LaserJet 1000/1005/1018/1020/1022、LaserJet P1005~P1008/P1505/P2014以及M1005 MFP、M1120 MFP等一体机分别由foo2zjsZJ-Stream和foo2xqxXQX两个模块接手。可以说闲鱼上流通最广的HP老黑白激光机基本被这个项目一网打尽。彩色激光里的三大门派HP Color LaserJet 1500/1600/2600n/CP1215 → 由 foo2hp 驱动Samsung CLP-300/315/325/365/600/610 及 CLX-2160/3160/3175 系列 → 由 foo2qpdl 驱动Oki C301dn/C310dn/C511dn/C810dn以及C3100n一路到C5800n的整条产品线 → 由 foo2hiperc 驱动网络彩色一体机与较新机型Konica Minolta magicolor 1600W/1680MF/1690MF/2430DL/2480MF/2530DL由foo2lavaLAVAFLOW协议驱动Lexmark C500n交给foo2slx而Epson AcuLaser、Fuji Xerox DocuPrint、Dell 1355/C1765、Xerox WorkCentre 3045/6015这些相对较新的机器走的是foo2hbpl2HBPL2协议。查支持列表最快的方法直接翻仓库里的PPD/目录文件名就是机型名一眼看清有没有你的机器。快速上手四步完成安装整个流程可以概括为编译 → 取配件 → 安装 → 重启CUPS十分钟内走完。第一步拉源码并编译git clone https://gitcode.com/gh_mirrors/fo/foo2zjs cd foo2zjs make编译只依赖gcc等基础工具链不碰任何闭源库这也是它能在Linux生态里长期存活的原因之一。第二步按型号下载固件和色彩配置文件不同机型需要的配件不一样HP 10xx/P1xxx系列要固件彩色机型要ICC色彩配置文件。项目封装了一条getweb命令按型号编号一键下载./getweb 1020 # HP LaserJet 1020 的固件 ./getweb 300 # Samsung CLP-300 的 ICC 文件 ./getweb c310 # Oki C310dn 的 ICC 文件具体编号对应哪台机器INSTALL文件里有完整清单照着抄即可不用记。第三步安装并补上热插拔支持sudo make install如果你的打印机是HP LaserJet 1000/1005/1018/1020或P1005~P1505这类每次开机都要喂固件的型号再补一步热插拔支持让固件在打印机上电时自动写入sudo make install-hotplug第四步让CUPS认出打印机sudo make cups然后打开系统打印设置或在浏览器访问 localhost:631按型号添加队列习惯命令行的同学可以这样建队列lpadmin -p hp1020 -v usb://HP/LaserJet%201020 -E \ -P /usr/share/cups/model/HP-LaserJet_1020.ppd.gz小提示USB设备URI要用 usb:// 前缀别写 hp://——那是另一套闭源驱动的专属写法写错会直接导致连接失败。颜色不准三步调校彩色激光机能打印只是及格线颜色偏色才是劝退新手的大坑。好在项目把色彩管理工具一并打包了。第一步确认用对了ICC配置文件getweb拉下来的.icm文件会安装到对应驱动的icm目录比如 /usr/share/foo2qpdl/icm/。彩色机型务必选与型号、分辨率匹配的profile拿A机型的配置硬套B机型颜色只会更离谱。第二步检查Ghostscript版本这是老用户踩过最多次的坑值得单独划重点Ghostscript 8.64 的颜色处理有bug别用9.00 及之后的版本要么横向模式的字体出问题要么颜色处理有缺陷想要最佳色彩请使用 8.54~8.71 之间的版本如果系统里已经是gs 9.x可以装一份8.71备用通常命名为gs.foo在命令行里显式指定给驱动用新旧版本互不干扰。第三步打印测试页验证效果仓库自带testpage.ps和align.ps测试页面配合printer-profile脚本可以做更精细的校色——注意该脚本只建议在64位系统上跑32位机上Ghostscript会有诡异问题。若要做重度校色项目内置的icc2ps工具集含CIECAM02/97色彩外观模型也完全够用撑得起专业色彩工作流。颜色始终不满意的话还有个进阶玩法把打印出的色卡寄给校色服务商换取定制ICC profile这在照片级输出场景里很常见也符合项目的开放精神。翻车现场常见问题排查手册打印机没反应先查固件HP 10xx/P1xxx机型有个特殊机制固件不常驻断电后再开机必须重新下载。判断固件是否已加载用项目自带工具看一眼usb_printerid /dev/usb/lp0输出里带FWVER字段说明固件已就位没有的话手动喂一次cat /usr/share/foo2zjs/firmware/sihp1020.dl /dev/usb/lp0看到打印机指示灯闪烁数秒就是在接收固件属于正常现象。USB识别异常先确认系统层面认不认设备lsusb | grep -i printer部分P1102、CP1025这类带HP Smart Install功能的机器插上后会虚拟出一个U盘光驱把真实打印机接口藏了起来。装好usb_modeswitch再重启打印机就能解除这层伪装。打印出斜纹或色带多半是Ghostscript版本问题或分辨率设得太高。把分辨率降到600×600或换用上面推荐的gs版本通常立刻好转。网络打印机怎么连按打印机支持的协议选URI格式表格存好备用协议URI格式LPDlpd://打印机IP/lpJetDirectsocket://打印机IP:9100IPPipp://打印机IP/ipp进阶玩法与适用人群省纸与手动双面 ️手动双面先打奇数页lp -o page-setodd翻面后再打偶数页并反转顺序2-up/4-up多页合并装psutils后用psnup实现印讲义特别省纸自定义纸张与默认尺寸lpr -P hp1020 -o PageSizeCustom.4x6in 文件.ps lpoptions -o mediaA4想深入源码仓库里埋着调试工具每个协议都配了专属解码器zjsdecode、qpdldecode、hipercdecode……配合各驱动的wrapper程序可以把渲染结果转成协议数据流先验货再决定要不要发往打印机。对逆向工程和打印协议感兴趣的同学jbig.cJBIG压缩实现、foo2zjs.c主引擎和icc2ps/目录都是极好的源码学习素材。谁适合用这个项目手里有上述品牌老款激光机的个人用户省钱固件、PPD一次配齐想摆脱闭源驱动、做Linux打印方案集成的管理员对打印协议逆向有兴趣的技术学习者如果你的打印机是全新主流型号优先考虑厂商或发行版自带方案即可不必勉强。但只要你的机器在支持名单里foo2zjs就是当前最靠谱的免费选择。找一台老打印机动手把它救活打印出来的第一页纸会是你和Linux打印生态建立信任的开始。【免费下载链接】foo2zjsA linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考