如何安装通过 USB 至并行端口适配器连接的打印机?

如何安装通过 USB 至并行端口适配器连接的打印机?

我在跑萨巴雍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 连接器并尝试安装我的打印机。

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 希望看到:

  1. USB 设备是 HP 品牌打印机(不是打印机后面的适配器/桥接器);或者
  2. 代表并行端口的类似“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 文档对于某些命令行内容非常有帮助。

  1. 确定 Pi 上的打印机驱动程序列表。列表可能很长,因此可以使用两三个“grep”将其缩减

    须藤 lpinfo -m

对于我的 LJ5P,是这样的:(以下“lpadmin”命令的语法很重要。)

drv:///hp/hpcups.drv/hp-laserjet_5p.ppd HP LaserJet 5p, hpcups 3.21.6
  1. 使用“lpadmin”安装打印机:(您可以使用“-P”开关为您的打印机命名任何您想要的名称。)

    sudo lpadmin -p HP-LaserJet-5p -E -v 套接字:localhost -m drv:/hp/hpcups.drv/hp-laserjet_5p.ppd

  2. 列出可用的后端和打印机

    须藤 lpinfo -v

这是我发现的地方:

direct usb://HP/LaserJet%205P
  1. 停止 cups 并编辑“/etc/cups/printers.conf”并替换“DeviceURI”行。就我而言,是:

    DeviceURI USB://HP/LaserJet%205P

  2. 根据您的发行版的要求启动杯子。

  3. 您应该能够打印。

相关内容