Linux 的 /dev/usb/lp0 的 OSX 版本是什么?

问题描述 投票:0回答:2

我正在向 centronics 电缆写入数据,并通过简单的“缓冲”电路使一些 LED 闪烁。

我可以通过引用 Ubuntu 机器上 /dev/usb/lp0 上的设备位置的 C 代码写出这些位。

但是,我希望能够在 OSX Mavericks 上执行此操作。 我没有看到与 Linux 中相同类型的设备文件。

即Linux 上有 /dev/usb/lp0 的 OSX 模拟吗?

非常感谢。

linux macos usb device
2个回答
0
投票

在“一切都是文件”的概念下,lp0 只是一个允许对设备进行原始访问的特殊文件,在本例中是第一个并行设备的“特殊字符文件”。 如果存在与设备匹配的驱动程序,或者类似

/dev/parport0
的驱动程序,那么 OSX 上也会存在同样的情况。 不过,OSX 的并行驱动程序集合非常有限。 您可以尝试捏造它 - 创建一个“字符”设备文件,将其指向某个带有
mknod
的通用并行驱动程序。

例如

mknod lp0 c x y
其中 x 和 y 是设备类型的主编号和次编号。 通常,您可以在 Linux 上的
documentation/devices.txt
文件中找到这些数字,但不确定此信息在 OSX 上的位置。

我见过设备使用通用打印机驱动程序来处理此问题,例如“小工具打印机”: https://www.kernel.org/doc/Documentation/usb/gadget_printer.txt

(我最初的假设)

在这种情况下,设备实际上将作为打印机显示在系统上。 您可以使用 lpstat 等 CUPS 实用程序查找打印机列表及其位置:

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/lpstat.1.html#//apple_ref/doc/man/1/lpstat

还有环境变量 LPDESTPRINTER 应列出默认打印位置:

echo $LDPEST


0
投票

查找您的打印机名称

lpstat -p

将文本打印到打印机

echo "Hello printer" | lp -d <printer name> 
© www.soinside.com 2019 - 2024. All rights reserved.