LINUX.ORG.RU

Проблемы с внешним USB-хабом в ARM linux.

 , ,


0

2

Здравствуйте. Вдруг опытные люди найдутся?

Суть:

Устройство на основе SoC Allwinner F1C200s. Эта SoC имеет 1 USB OTG порт. Необходимо подключать как минимум клавиатуру и мышь, поэтому используется внешний USB хаб *4 на чипе HS8836A .

Любые USB устройства подключаются без ошибок, но в некоторых комбинациях работают неправильно.

Если подключить 2 USB Flash диска, то работают оба, но если любое из устройств USB клавиатура или мышь, то возникают проблемы, например:

1 случай. Подключаем USB Flash - работает (монтируется). Подключаем второй USB Flash - работают оба.

2 случай . Подключаем USB Flash - работает. Подключаем клавиатуру (мышь) : USB Flash работает, клавиатура (мышь) не работает, хотя определяется без ошибок.

3 случай. Подключаем клавиатуру (мышь) - работает. Любое второе подключенное устройство - не работает.

«не работает» - это значит, счетчик прерываний от контроллера USB (cat /proc/interrupts) не изменяется, если на подключенной вторым устройством клавиатуре (мыши) нажимать кнопки (двигать).

Похоже, второе подключенное устройство в случаях 2 и 3 не опрашивается правильно, даже если подключено без ошибок.

В F1C200s USB контроллер это Inventra MUSB HDRC (Highspeed Dual Role Controller ). Система собрана в Buildroot, init - BusyBox. Ядро 5.4.66 .

В другом устройстве на той же SoC внешний USB-хаб на чипе FE1.1s . Проблемы те же.

Я не знаю, что влияет на работу при подключении USB клавиатуры или мыши, в отличие от USB Flash:

- это «устройство ввода» - это «устройство HID» - это «устройство 'low speed' »

Вопрос, какой модуль в USB-фреймворке ядря linux фактически осуществляет опрос устройств? Core ? hub ? или драйвера (HID, SCSI ...) ? или контроллер на аппаратном уровне? Я попытался для локализации проблемы вставить в исходники ядра в драйвера ветки USB строки printk, в места, где упоминается 'poll', но так и не нашел место с циклом опроса.


Ответ на: комментарий от HE_KOT

Не следил, вполне возможно. Собственно, специфичного «для семейства» тут только драйвер MUSB HDRC. Гляну, чего там они наисправляли в 6.3, возможно, удастся перетащить изменения сюда. Спасибо.

r702
() автор топика
Ответ на: комментарий от r702

Я просто с хабами не работал, вполне возможно, что у меня оно тоже было сломано, лол. На сотке особо не развернёшься, включал по минимуму.

HE_KOT ☆
()

Не обещаю, что буду прав потому что на такое не натыкался, однако могу предположить

FE1.1s

Из даташита

It adopts Single Transaction Translator (STT) architecture to be more cost effective

А раз мышка low-speed устройство... Вероятно флешка просто не может работать в таком режиме.

HS8836A

Сходу хз что там, но на сайте с китайскими иероглифами увидел аббревиатуру STT.

Предлагаю для начала взять хаб получше.

Slavik763 ★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.