cups 添加带有 ppd 文件的打印机不起作用

cups adding printer with ppd file not working

我正在尝试在使用 cups 和命令行的 yocto 构建中添加打印机。这是我输入的命令:

sudo lpadmin -p Deskjet_3050A -E -v usb://HP/Deskjet%203050A%20J611%20series?serial=CN15J4C3NF05PJ&interface=1 -m hp-deskjet_3050a_j611_series.ppd

我得到的回复是:

[1] 566
-sh: -m: command not found

打印机实际添加到系统中。但是当我尝试打印时:

sudo lp -d Deskjet_3050A text.txt

响应是:

request id is Deskjet_3050A-6 (1 file(s))

我认为这意味着打印请求已发送到打印机。 但是打印不会发生。 我认为这与未添加 ppd 文件有关。为什么找不到 -m 命令,当我执行 lpinfo -m

时,ppd 文件显示在列表中

或者 yocto 构建中缺少某些东西(添加了杯子)

非常感谢任何帮助,在这方面浪费了很多时间

按照评论中的建议转义特殊 & 字符修复了 'command not found' 问题。在此之后打印机仍然无法工作。

将打印机作为网络打印机(无驱动程序)访问时,我能够进行打印

首先我需要在 yocto 构建中添加一些额外的与杯子相关的食谱

在 layer.conf 我还需要添加 cups-filters 配方:

# Printing
CORE_IMAGE_EXTRA_INSTALL += "cups cups-doc cups-filters"
CORE_IMAGE_EXTRA_INSTALL += "hplip"

当我使用此版本时,可以使用无驱动程序命令。 当我输入 'driverless' 作为命令时,我得到一个 ipp uri:

driverless
ipp://SomePrintert%203050A%20J611%20series%20%5B12984C%5D._ipp._tcp.local/

使用 'lpstat -e' 命令我得到了正在侦听网络的打印机的打印机名称。我想你也可以使用其他打印机名称。

现在配置网络打印机的命令是:

sudo lpadmin -p {printerName} -E -v {ipp uri} -m everywhere

正在通过网络进行打印。

我还没有使用 usb 打印机