我正在创建一个运行我自己的自定义堆栈的 USB 设备,我需要确保它可以与任何主机或集线器一起使用。USB-IF 有自己的官方测试程序,但它只能在 Windows 上运行,并且在我的 Windows 机器上存在一些严重问题。(它会杀死所有其他 USB 设备,包括我的鼠标和键盘,所以我无法使用它自己的 UI)
是否有一个适用于 Ubuntu 的工具可以按照规格允许的力度对 USB 设备进行敲击并告诉我效果如何?
迟来的更新,相关内容 2014 年 9 月 5 日
我终于完成了一些工作......有点。
我尝试在虚拟机中安装 Windows 的临时副本,但测试仪无法识别虚拟 USB 控制器。
我最终在一台无论如何都需要清除的机器上安装了 Windows 的副本,使用的是 PS/2 键盘和 USB 鼠标(我没有 PS/2 鼠标)。它在那里做了同样的事情 - 杀死鼠标 - 但是一旦我使用键盘导航 GUI 开始测试,鼠标就会再次工作。测试完成后,我可以使用鼠标保存结果并关闭程序,这允许操作系统重新检测 USB 设备并重新安装所有设备的正常驱动程序,但随后 Windows 崩溃了。BSOD。我让它正常重启,但鼠标仍然无法工作。系统还原修复了它。
所以这仍然不是一个理想的解决方案,但至少在某种程度上是可行的。我仍然愿意接受更好的方案。在 Ubuntu 上运行的官方测试程序是否没有功能等效的程序?
答案1
编辑:
我猜我不确定你所说的自定义堆栈是什么意思,以及应该如何破坏它?从我在该网站上看到的程序来看,它看起来像“命令验证器”,并且只运行基于标准第 9 章的测试……
lsusb -v
看起来它涵盖了相同的信息。
据我所知,如果无法检测到它或者内核调试日志lsusb -v
中没有指定任何信息,dmesg
那么它就不是可识别的 USB 设备,需要内核找到一种方法来识别它。关于访问数据和写入 USB 设备:
sudo apt-install libusb-dev && firefox file://usr/share/doc/libusb-dev/html
如果它被枚举并安装,也许你可以自己进行测试/dev/tty*
screen /dev/ttyACM*
进行互动环节。echo data > /dev/ttyACM*
以获取启动包?cat /dev/ttyACM* > somefile
查看正在发送什么类型的数据。tail -f /dev/ttyUSB0
主动查看文件底部。- 使用过程
- Linux 合规性测试
- http://linux-usb-test.sourceforge.net/docs/interop-0.1/book1.html
- 各种图书馆和笔记
- 转储 usb 总线