Используя программу "http://www.linux -usb.org / gadget / usb.c ", попытайтесь настроить gadgetfs на Jetson TX2.
Обновить VID PID для Nvidia: #define DRIVER_VENDOR_NUM 0x0955 #define DRIVER_PRODUCT_NUM 0x7020
Также обновите функцию автоконфигурирования для Nvidia:
*/* Nvidia processors, high/full speed */
else if (stat (DEVNAME = "tegra-xudc", &statb) == 0) {
HIGHSPEED = 1;
device_desc.bcdDevice = __constant_cpu_to_le16 (0x0001);
fs_source_desc.bEndpointAddress
= hs_source_desc.bEndpointAddress
= USB_DIR_IN | 1;
EP_IN_NAME = "ep1in-bulk";
fs_sink_desc.bEndpointAddress
= hs_sink_desc.bEndpointAddress
= USB_DIR_OUT | 2;
EP_OUT_NAME = "ep2out-bulk";
source_sink_intf.bNumEndpoints = 3;
fs_status_desc.bEndpointAddress
= hs_status_desc.bEndpointAddress
= USB_DIR_IN | 3;
EP_STATUS_NAME = "ep3in-int";
}*
После запуска программы получите вывод на терминал Jetson TX2:
*/dev/gadget/musb_hdrc ep0 configured
serial="1.3"
** Thu Jan 1 05:19:27
CONNECT high speed
DISCONNECT
CONNECT high speed
SETUP 80.06 v0300 i0000 255*
1015 * Выходной журнал на хост-компьютере Linux:
*usb 3-2: new high-speed USB device number 48 using xhci_hcd
usb 3-2: string descriptor 0 read error: -110
usb 3-2: New USB device found, idVendor=0955, idProduct=7020
usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-2: can't set config #2, error -110*
После отладки usb.c пошагово найдите, что программа застряла в функции «handle_control».Получить событие USB_REQ_GET_DESCRIPTOR, затем вызывается USB_DT_STRING, но после «status = write (fd, buf, tmp);»Jetson TX2 зависает и перезагружается.
В чем причина зависания Jetson TX2 и получения ответа -110 на хост-компьютере?
После поиска, связанного с ошибкой -110, мы получили два разных сообщения об ошибке.h.
Один указывает на 110 как: #define ESHUTDOWN 110 / * Не удается отправить после отключения сокета * /
Второй файл указывает на 110 как: #define ETIMEDOUT 110 / * Время ожидания подключения истекло* /
В обоих случаях есть общий результат: связь между хостом и устройством прерывается по какой-то причине.Так что может быть проблемой для этого соединения является разрыв?