Macos 有没有一种简单的方法可以从Mac-USB串行端口、从没有显示在/dev/目录中的设备获取低级数据?

Macos 有没有一种简单的方法可以从Mac-USB串行端口、从没有显示在/dev/目录中的设备获取低级数据?,macos,usb,device,hid,Macos,Usb,Device,Hid,我想实现的是,我插入一个设备,例如鼠标,但通常是通过USB输出串行数据的任何设备,然后将其屏幕存储在终端中,或者将其存储在文件中,如果可能,使用python来处理它 作为一个具体的例子,假设我想要从插入macbook USB端口的触摸板访问数据。当我在终端中运行/dev/{tty,cu}.*时,我得到了一堆设备,但没有一个是我想要的。当我运行ioreg-p iosb-l-b|grep-E“@|PortNum | USB序列号”时,我看到设备已插入特定地址(即@14200000),以及和“Port

我想实现的是,我插入一个设备,例如鼠标,但通常是通过USB输出串行数据的任何设备,然后将其
屏幕
存储在终端中,或者将其存储在文件中,如果可能,使用python来处理它

作为一个具体的例子,假设我想要从插入macbook USB端口的触摸板访问数据。当我在终端中运行
/dev/{tty,cu}.*
时,我得到了一堆设备,但没有一个是我想要的。当我运行
ioreg-p iosb-l-b|grep-E“@|PortNum | USB序列号”
时,我看到设备已插入特定地址(即
@14200000
),以及
“PortNum”=2


是,设备已插入,否,它未显示在
/dev/{tty,cu}.*
中。我不想写一个设备驱动程序,我听说这不是最简单的事情。是否有任何解决方案可以从未显示在
/dev/
目录中的设备访问低级数据?

显示为
/dev/tty…
/dev/cu…
的设备是实现从RS-232派生的异步串行数据通信协议的设备。过去计算机上有专用串行端口。如今在Mac上,它们通常通过USB连接

很少有USB设备实现串行协议。相反,它们实现HID协议(键盘、鼠标等)、USB大容量存储协议(各种外部驱动器)、USB ECM(用于网络适配器)或自定义协议。除了具有自定义协议的设备外,macOS为所有这些设备提供设备驱动程序

USB不是简单的串行通信。相反,设备配置多个端点。每个端点使用单独的通信信道。即使用于RS-232通信的USB CDC ACM也使用三个端点。此外,USB设备可以同时假装为多个设备。这就是所谓的复合设备

我的理解是,您希望观察和记录USB通信。主要方法是:

  • 使用Wireshark。它以观察和记录网络流量而闻名,但它也可以对USB进行同样的操作。不幸的是,由于macOS上的安全性越来越严格,安装起来就不那么容易了,而且可能在苹果的硅Macs上也不起作用了

  • 使用专用USB协议分析器。它们非常强大,起价约为300美元


  • 你的问题在细节上有点含糊(即你实际上指的是什么设备),但是用一个5美元的Adafruit QT Py或Raspberry Pi Zero或Raspberry Pi Pico,所有这些都肯定会出现在Mac上,将数据转发到你的Mac上怎么样?