2012-12-04 2 views
0

tl; dr: Как заставить Linux отказаться от высокоскоростных USB-соединений, чтобы он по умолчанию работал на полной скорости?Ограничить скорость драйвера гаджета USB

Полное объяснение:

Я пишу драйвер USB гаджет основан на Linux гаджет нуля. Аппаратное обеспечение, на котором я тестирую, имеет высокоскоростной USB-накопитель, который не будет иметь дело с фактическим продуктом. По какой-то причине гаджет (хотя он и не имеет дескрипторов высокой скорости в любой конфигурации) сообщается как высокоскоростной гаджет (struct usb_gadget->speed==USB_SPEED_HIGH о функции set_config составного гаджета). Это заставляет водителя терпеть неудачу прямо перед связыванием конфигурации (пытаясь загрузить высокоскоростную конфигурацию, которая, очевидно, не существует).

Я ищу способ сообщить Linux, что гаджет не поддерживает высокую скорость, поэтому, когда хост подключает коммутатор от полной скорости до высокой скорости (или что-то, что даст аналогичные результаты).

+0

перед тем бежать процесс compil, вы могли бы попытаться разгрузить или черный список некоторые модули, как 'uhci',' ohci' ... посмотрите на 'человек modprobe'! –

+0

Решение, которое я применил, это изменить драйвер gadget (я имею в виду аппаратный контроллер), чтобы оборудование отклонило запрос высокой скорости. (Я разработал аппаратно-встроенную систему, поэтому у меня уже была необходимая документация, я не думаю, что это лучшее решение, если оно применяется к универсальному ПК). – user1783395

ответ

1

uhci и ohci Ядровые модули приводные контроллеры USB 1.X. ehci Модули управляют контроллером USB 2.0.

Если вы выгрузили один из них, вы применяете ограничение к другому.

+0

Хотя это должно работать и отвечает на вопрос, оно не решило мою проблему. Хост по-прежнему подключается к моему устройству на высокой скорости (чего не должно произойти, так как я отключил поддержку USB2.0 от ядра). – user1783395

-1
enum usb_device_speed  speed; 
enum usb_device_speed  max_speed; 

you can setup usb_composite_driver 
+0

Пожалуйста, добавьте объяснения в свой ответ. –

Смежные вопросы