command-line - 杯子添加带有ppd文件的打印机不起作用
问题描述
我正在尝试在带有杯子和命令行的 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构建中是否缺少某些东西(添加了杯子)
非常感谢任何帮助,在这方面已经浪费了很多时间
解决方案
按照 meuh 在评论中的建议转义特殊 & 字符修复了“找不到命令”问题。在此之后,打印机仍然无法正常工作。
作为网络打印机(无驱动程序)访问打印机时,我能够进行打印
首先,我需要在 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 打印机
推荐阅读
- json - 当json属性包含空格时如何将json字符串转换为对象
- azure-devops - 在 Azure DevOps 中生成有效的 .zip 文件 - 压缩文件夹无效
- c# - Unity,实例化预制件上的类在对象之间是不同的
- logstash - 遵循 IIS 服务器日志的 Grok 模式是什么?
- mysql - 使用 Spring Data JPA 和 mysql 数据库接收 CommunicationsException
- angular - 在运行时初始化值时如何从其他组件获取变量的值?
- ruby-on-rails - 在 Rails 5 上使用 webpacker 时,Travis 的必要设置是什么?
- testng - 有没有办法在 After 方法中使用 ITestResult 获取完整的错误/异常?
- python - 从 cron odoo 更新字段
- vuejs2 - 为什么 Dynamite Vue 组件在数组中自动刷新