通过USBTest(http://www.linux-usb.org/usbtest/)可以测试主机端和设备端的控制器驱动。
但是由于USBFS被废弃许久,虽然能通过重新编译内核加上选项CONFIG_USB_DEVICEFS=y来重新使用,但总归不是彻底的解决方案,并且从Linux3.5起已经完全移除了USBFS,这也导致了Ubuntu从12.10起不再能支持USBFS。
在新的Linux内核下USBFS相关的内容可以从如下路径获取:
- /sys/kernel/debug/usb/devices
- /dev/bus/usb
- /sys/bus/usb
- /sys/kernel/debug/usb
针对新的变化,我对于usbtest.c 也做个相应的改动,使它不再依赖USBFS,patch如下:
- if ((c = open ("/proc/bus/usb/devices", O_RDONLY)) < 0) {
+ if ((c = open ("/sys/kernel/debug/usb/devices", O_RDONLY)) < 0) {
fputs ("usbfs files are missing\n", stderr);
return -1;
}
/* collect and list the test devices */
- if (ftw ("/proc/bus/usb", find_testdev, 3) != 0) {
+ if (ftw ("/dev/bus/usb", find_testdev, 3) != 0) {
fputs ("ftw failed; is usbfs missing?\n", stderr);
return -1;
}
针对如何使用USBTest等相关细节,
可参考这篇博文: http://blog.csdn.net/luckywang1103/article/details/32720281