在USB设备上写字节

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

我有一个USB设备,我想发送一些字节。

lsusb
Bus 001 Device 005: ID 04b4:0a0a Cypress Semiconductor Corp.

我想,使用Wireshark和usbmon,某个字节序列会导致所需的行为(它会解锁物理锁)。现在我想复制一下并自己发送。因此我尝试创建一个二进制文件并将其写在总线上,如下所示:

cat byteFile > /dev/bus/usb/001/005

但是我收到以下错误:

cat: write error: Invalid argument

现在似乎无法在“原始”USB设备上写入字节,但我没有找到正确的(或通用的)方法来执行此操作。如何将文件中的字节序列发送到USB设备?如果可能的话,我很乐意在python / java或bash中运行它。这样我以后可以在我的程序中使用它。 - >没有GUI应用程序;-)

python linux bash usb
1个回答
1
投票

您不能将原始字节发送到USB设备。 Intead您将URB(即USB请求块)发送到USB端点。

使用usbmon,您可以发现该端点以及URB的参数和有效负载,然后使用libusb从您的程序中复制该端点。

libusb是一个访问原始USB设备的C库,但我不知道有任何方法可以直接从命令行使用它。我的建议是编写一个简单的C程序,将您想要的数据发送到正确的端点,然后从脚本中调用它。

© www.soinside.com 2019 - 2024. All rights reserved.