我是 Ubuntu Core 和 Snaps 的新手,所以请耐心等待。
我认为我缺乏对 snap 的工作原理和交互方式的了解。我读过 snap 接口/连接、插头和插槽,但我无法相信 snap 无法打印。
背景: 在安装在 Intel NUC 上的 Ubuntu Core 18 上,我尝试使用基于 electron 的自助服务终端应用程序运行自助服务终端(基于 Ubuntu 教程制作基于 HTML5/Electron 的 Kiosk Snap)。
在我开始打印之前,信息亭运行良好。
通过 ssh 进入 Ubuntu Core 并从用户 root(sudo su - root)后,能够成功将文本直接发送到连接 USB 的收据热敏打印机。
ls -la > /dev/usb/lp3
安装打印堆栈快照好了,我能够像 Ubuntu One 用户一样,通过使用以下任何一个命令成功安装 Ubuntu Core 18,将文本文件传输或打印到 cups 打印机。
cat <text file> | printer-stack-snap.lp -d printer
printer-stack-snap.lp -d printer <text file>
从应用程序本身,使用 node.js 子进程,能够执行 shell 命令,但无法调用 printing-stack-snap.lp 命令。收到执行错误:/bin/sh: 1:未找到 printing-stack-snap.lp。
这可能与 Ubuntu Core 权限的工作方式有关。如果无法打印销售收据,那么将 Ubuntu Core 用作自助服务终端环境有什么用呢?
任何指导和帮助都将不胜感激。
答案1
这一变化https://github.com/snapcore/snapd/pull/8329它当前位于边缘通道的 snapd 中,应该可以帮助您使用 snap 中的 raw-usb 接口直接访问 /dev/usb/lpX ...