我正在向 centronics 电缆写入数据,并通过简单的“缓冲”电路使一些 LED 闪烁。
我可以通过引用 Ubuntu 机器上 /dev/usb/lp0 上的设备位置的 C 代码写出这些位。
但是,我希望能够在 OSX Mavericks 上执行此操作。 我没有看到与 Linux 中相同类型的设备文件。
即Linux 上有 /dev/usb/lp0 的 OSX 模拟吗?
非常感谢。
在“一切都是文件”的概念下,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 实用程序查找打印机列表及其位置:
还有环境变量 LPDEST 和 PRINTER 应列出默认打印位置:
echo $LDPEST
查找您的打印机名称
lpstat -p
将文本打印到打印机
echo "Hello printer" | lp -d <printer name>