如何在 C 代码中使用 libusb 获取 USB 序列号?

问题描述

我正在尝试使用 libusb 从嵌入式 Linux 平台 (petalinux) 中的 C 代码应用程序获取 USB 设备序列号。

我看到了一些类似的问题,它们帮助我找到了一些方向,但不幸的是我还没有设法解决它。

首先我将展示我正在尝试阅读的内容,这是插入时设备的 dmesg:

+--------+    +----( Request 1 from IP: 1.2.3.4 )------+    +--------+
| Client |----+----( Request 2 from IP: 5.6.7.8 )------+----| Server |
+--------+    +----( Request 3 from IP: 9.10.11.12 )---+    +--------+

我想读取的是序列号:20102130

我已经尝试了下一个代码

[    9.632965] usb 1-1.4: New USB device found,idvendor=0403,idProduct=de37
[    9.639837] usb 1-1.4: New USB device strings: Mfr=1,Product=2,SerialNumber=3
[    9.647146] usb 1-1.4: Product: PI CAM
[    9.651153] usb 1-1.4: Manufacturer: MANUF
[    9.655326] usb 1-1.4: SerialNumber: 20102130
[    9.688519] uvcvideo: Found UVC 1.00 device PI IMAGER (0403:de37)
[    9.695084] uvcvideo 1-1.4:1.0: Entity type for entity Processing 3 was not initialized!
[    9.703177] uvcvideo 1-1.4:1.0: Entity type for entity Camera 1 was not initialized!
[    9.711098] input: PI CAM: PI CAM as /devices/platform/amba/ff9d0000.usb0/fe200000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.4/1-1.4:1.0/input/input0

但它给出了 -1 错误,它打印: "Index: 3 Error: -1" 。如果我删除错误检查,我就会得到序列号:bA6`,它没有任何意义......

有谁知道我如何从我的应用程序中检索/读取该序列号?

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)