![如何安装通过 USB 至并行端口适配器连接的打印机?](https://linux22.com/image/28388/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E9%80%9A%E8%BF%87%20USB%20%E8%87%B3%E5%B9%B6%E8%A1%8C%E7%AB%AF%E5%8F%A3%E9%80%82%E9%85%8D%E5%99%A8%E8%BF%9E%E6%8E%A5%E7%9A%84%E6%89%93%E5%8D%B0%E6%9C%BA%EF%BC%9F.png)
我在跑萨巴雍Linux (x86_64)。
$ uname -a
Linux qdoe 3.7.0-sabayon #1 SMP Thu Dec 20 07:12:55 UTC 2012 x86_64 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz GenuineIntel GNU/Linux
我有一台 HP LaserJet 1100 打印机,默认情况下通过 25 针并行打印机端口连接(DB25)。现在,我有一台没有这样的端口的新计算机,我无法直接连接打印机。
因此,我买了一个 USB 转 DB25 连接器并尝试安装我的打印机。
但麻烦就开始了。在 Sabayon 或 Gentoo 中,有一个用于 HP 打印机的工具箱,称为hplip
这非常容易使用:连接打印机,检测它,然后hplip
就可以开始了。
现在的问题是,该hplip
软件无法识别打印机。既不通过 USB 也不通过并行端口 (LPT)。该端口似乎可以工作:
# lsusb
(...)
Bus 002 Device 006: ID 067b:2305 Prolific Technology, Inc. PL2305 Parallel Port
我已经尝试手动输入 USB 地址067b:2305
-hplip
但没有成功,打印机无法识别。
我还可以做些什么?除了使该端口与我的打印机配合使用之外,是否还需要某种进一步的端口模拟软件或任何驱动程序?
答案1
http://en.gentoo-wiki.com/wiki/CUPS
如果您使用的是 USB->并行适配器,您需要执行以下操作:
Add your printer by selecting a different connection type (since usb and parallel will not be listed)
Edit the file /etc/cups/printers.conf
Change the DeviceID line to read: DeviceID = parallel:/dev/usb/lp0
...actually, it looks like the proper line is now: DeviceURI parallel:/dev/usb/lp0
注意:它是“parallel:”而不是“usb:”——USB 部分由 USB 驱动程序处理。对于 CUPS,它应该显示为并行端口。 CUPS 不知道寻找 USB->并行适配器,但如果您手动配置它,它就会工作
答案2
显然,hplip 不支持 USB 转并行适配器 - 请参阅示例http://www.mail-archive.com/[电子邮件受保护]/msg02858.html
我设法通过像您这样的 PL2305 适配器连接一台并行打印机,通过手动编辑 Printers.conf 文件来与 CUPS 一起使用,如 @Sandro kensan 所描述的 - 我现在正在查看 CUPS 的“打印机测试页”,所以我可以确认 Sandro kensan 的方法有效。
我怀疑您的机器上缺少 Printers.conf 意味着您没有安装 CUPS。我建议您不要尝试从头开始创建整个文件;它不仅仅包含一行。
至于 HPLIP - 我完全无法让它识别通过 PL2305 连接的 LaserJet 2100。以下是我到目前为止所尝试过的,希望它可以节省您一些时间。
首先,我尝试在 hp-setup 的命令行中指定 PL2305 的 USB 总线:设备号。这导致 hp-setup 遍历整个 USB 设备树,有时从 USB 设备读取数据,然后再次关闭它们,最后输出
error: No device selected/specified or that supports this functionality.
并以非零状态退出。我怀疑它正在嗅探每台设备,看看它是否闻起来像惠普打印机,最后确定没有,然后放弃。
其次,我尝试将打印机设置为并行打印机。网上其他地方的评论说这行不通,但由于 USB 已经失败了,我决定尝试一下。
使用此方法遇到的第一个问题是 hp-setup 想要扫描而不是被告知要使用的设备节点。要解决这个问题,您必须从命令行运行它并提供设备节点作为参数。
下一个问题是,如果命令行参数的格式为 /dev/partport[0-9,则 hp-setup 仅将命令行参数识别为并行端口设备节点(例如,与 USB 总线:设备 ID 相反) ]。我通过这样做击败了它:
sudo ln -s /dev/usb/lp1 /dev/parport1
可以使用自定义 udev 规则使其持久化,但这是一个丑陋的黑客行为。
下一个问题是 HPLIP 工具(正确地)假设 /dev/parport1 是 lp 设备,并在其上发出特定于并行的 ioctl,例如 PPGETMODES。 PL2305 的内核驱动程序不够“并行”,无法理解这些,因此会返回一个错误代码,这会导致 HPLIP 工具跳过该设备节点,在此过程中输出更多神秘/无用的诊断信息,例如:
Invalid device URI
据我所知,HPLIP 希望看到:
- USB 设备是 HP 品牌打印机(不是打印机后面的适配器/桥接器);或者
- 代表并行端口的类似“lp”的设备节点,它支持所有特定于并行的 ioctl。
当我们插入 PL2305 时获得的 /dev/usb/lp[0-9] 设备节点都不是这些,并且 HPLIP 本身无法处理它们,并且不灵活,因此我无法为您提供任何方式迫使它做正确的事。
答案3
我刚打开错误报告/etc/cups/printers.conf
,并附有适用于最新版本 Debian 的工作:
# Printer configuration file for CUPS v1.5.3
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<Printer HP_LaserJet_1100>
UUID urn:uuid:e2fd8b09-9e4e-3f96-79ac-f16946700768
Info
Location
MakeModel HP LaserJet 1100 - CUPS+Gutenprint v5.2.9
DeviceURI parallel:/dev/usb/lp1
State Idle
StateTime 1454272978
Type 4116
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
请注意,在编辑/替换/创建此文件之前,您必须停止 CUPS。
我认为我的设备是lp1
因为我在这台 PC 上也有一个真正的并行端口 ( /dev/lp0
)。无论如何,您都可以通过以下方式找到合适的设备:
# ls /dev/usb/lp*
答案4
我找到了这个线程并尝试了这里的所有内容,但它对我不起作用。
做了什么工作如下:
我的设置:运行 Arch Linux 的 Raspberry Pi 3。 HP Laserjet 5p(一台我不想扔掉的强大的主力打印机。)
我的 RPI 是无头的,所以我不得不依赖命令行。我能够通过隧道连接到 Raspberry Pi 并使用 CUPS Web 界面,但尽我所能,它不允许我管理打印机。最后,我怀疑我是否可以通过 GUI 界面安装它。 FWIW,为了从运行 Arch 的工作站隧道到 PI 上的 CUPS,我使用了以下命令:
#ssh your_user@your_rpi -T -L 3631:localhost:631
这是对有效方法的合理重述。虽然理解,但我花了几天的时间来解决这个问题。 cups 文档对于某些命令行内容非常有帮助。
确定 Pi 上的打印机驱动程序列表。列表可能很长,因此可以使用两三个“grep”将其缩减
须藤 lpinfo -m
对于我的 LJ5P,是这样的:(以下“lpadmin”命令的语法很重要。)
drv:///hp/hpcups.drv/hp-laserjet_5p.ppd HP LaserJet 5p, hpcups 3.21.6
使用“lpadmin”安装打印机:(您可以使用“-P”开关为您的打印机命名任何您想要的名称。)
sudo lpadmin -p HP-LaserJet-5p -E -v 套接字:localhost -m drv:/hp/hpcups.drv/hp-laserjet_5p.ppd
列出可用的后端和打印机
须藤 lpinfo -v
这是我发现的地方:
direct usb://HP/LaserJet%205P
停止 cups 并编辑“/etc/cups/printers.conf”并替换“DeviceURI”行。就我而言,是:
DeviceURI USB://HP/LaserJet%205P
根据您的发行版的要求启动杯子。
您应该能够打印。