我正在尝试使用杯子和命令行在 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 构建中是否缺少某些内容(添加了杯子)
非常感谢任何帮助,在这方面浪费了很多时间
按照评论中建议的转义特殊 & 字符修复了“找不到命令”问题。此后打印机仍然无法工作。
作为网络打印机(无驱动)访问打印机时,我能够进行打印工作
首先我需要在 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 打印机
我目前面临着同样的问题,(我无法发表评论,因为我的声誉点较少)。
我目前正在检查在我的 Ubuntu 中添加带有 PPD 文件的打印机。 我已将 PPD 文件放置在“/usr/share/cups/model/”位置
lpadmin -p printername -E -v deviceUri -m ppd
准确来说
lpadmin -p TVS_PRINTER -E -v usb://TVS/MSP-240*?serial=TVS-270SERI -m TVSE9W136COL.ppd
通过此命令,我可以发送打印作业并且可以进行打印。
这里,我手动提及打印机名称、URI 和 ppd 文件名。
在我的应用程序中,当打印机连接到我的机器时,我必须添加打印机,因此我想使用几个命令来获取信息。
下面的命令为我们提供设备型号/名称。
sudo /usr/lib/cups/backend/usb | grep "CLASS: PRINTER" | awk -F'"' '{print $2}'
下面的命令为我们提供了设备 URI(统一资源标识符)。
sudo /usr/lib/cups/backend/usb | grep "CLASS: PRINTER" | awk '{print $2}'
有没有办法让系统自动检测PPD文件放置在“/usr/share/cups/model/”并添加打印机。
另外,我无法在 yocto 中找到 /usr/lib/cups/backend/usb 位置,我已经在我的图像中安装了 Cups 、 GhostScript 、 GutenPrint 和相关内容。
瞄准
我必须检测 usbPrinter 并将特定的 ppd 文件添加到 当检测到新打印机时,它并进行打印机设置 自动。
如果无法检测到所有打印机,应该能够检测到我们在最坏情况下最常用的三台打印机。
我正在努力寻找通用的解决方案。 我希望您遇到这些问题并解决它们。
请帮助我。 等待您的回复。