FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
AlexNT
Сообщения: 433
ОС: FreeBSD 8.2, ArchLinux

FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение AlexNT »

Натолкнулся на следующую проблему:

Установил FreeBSD 8.0-RELEASE в систему с материнской платой GA-M56S-S3 (chipset nForce 560 "MCP65").

При попытке скопировать с usb флешки столкнулся со странной работой USB контроллера:

При копировании файлов просходят спонтанные остановки копирования длящиеся от нескольких секунд до нескольких минут, при этом система никаких ошибок в лог не пишет. Для того чтобы отследить проблему я установил параметр hw.usb.ehci.debug в единицу тем самым включил отладку, после чего в процессе работы возник вот такой вот лог:

Jan 24 10:39:40 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:39:40 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:39:44 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:39:44 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:39:48 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:39:48 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:39:52 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:39:52 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:39:55 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:39:55 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:39:59 MAX kernel: ehci_timeout:1553: xfer=0xc743d3c8
Jan 24 10:39:59 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:39:59 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:39:59 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:39:59 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:40:03 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:40:03 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:40:04 MAX kernel: ehci_timeout:1553: xfer=0xc743d6b8
Jan 24 10:40:04 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:40:04 MAX kernel: ehci_set_hw_power:3842: Async is active
Jan 24 10:40:06 MAX kernel: ehci_root_intr:2040: port 8 changed
Jan 24 10:40:06 MAX kernel: ehci_set_hw_power:3830:
Jan 24 10:40:06 MAX kernel: ehci_set_hw_power:3842: Async is active

В моменты остановки/зависания копирования в лог пишется ehci_timeout:1553:.

Если же при этом переключить параметр hw.usb.ehci.no_hs в единицу, т.е. порт будет работать в режиме USB 1.0 (насколько я понял), то в логе ничего подобного не пишется и все работает прекрасно, но соотв. очень медленно. Неисправность USB контроллера исключена, т.к. в FreeBSD 7.2 проблем не было.

Вопрос, кто нибудь сталкивался с подобной проблемой на nForce и возможно как то ее решил?
Подозреваю что подобная ситуация будет проявляться на всех платах с nForce чипсетами...
Спасибо сказали:
Аватара пользователя
Shad0w
Сообщения: 31
ОС: Win7, FreeBSD, Ubuntu

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение Shad0w »

Вот здесь как бы похожую тему пинают, можно посмотреть что к чему. Либо stable попробовать или до -р2 обновится, может починили уже.

з.ы.: Не помню на какой платформе и на каком релизе, но включение поддержки usb 2.0 съедало порядка 400 метров рамы. С тех пор почти автоматом на большинстве машин выкидываю 2.0 из ядра, благо еще с флэшками не часто приходится возиться. =)
Спасибо сказали:
Аватара пользователя
AlexNT
Сообщения: 433
ОС: FreeBSD 8.2, ArchLinux

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение AlexNT »

Shad0w писал(а):
25.01.2010 10:38
Вот здесь как бы похожую тему пинают, можно посмотреть что к чему. Либо stable попробовать или до -р2 обновится, может починили уже.

з.ы.: Не помню на какой платформе и на каком релизе, но включение поддержки usb 2.0 съедало порядка 400 метров рамы. С тех пор почти автоматом на большинстве машин выкидываю 2.0 из ядра, благо еще с флэшками не часто приходится возиться. =)


У меня как раз p2 на этой машине... С 6.2 активно usb портами пользовался, ничего подобного до выхода 8.0 не замечал. :(
За ссылку спасибо проблема подобная но не совсем та. Такую траблу я тоже встречал, только на SD картах в 8.0.

Что то с USB нынче совсем перемудрили разработчики...
Спасибо сказали:
Аватара пользователя
Shad0w
Сообщения: 31
ОС: Win7, FreeBSD, Ubuntu

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение Shad0w »

AlexNT
Ну собственно они ж переписали USB подсистему, видно что-то недопилили. Думаю стоит отметится с такой проблемой, может поправят быстро.

з.ы.: Я тут недавно из благих побуждений обновил VPN сервак с mpd5 на борту до 8.0-RELEASE. И все бы хорошо, да только в netgraph по ходу тоже начудили, клиент подрубается практически всегда только со второго раза, при первом коннекте соединение отваливается с ошибкой присвоения айпи-адреса интерфейсу на стороне сервера. Так что ждем дружно исправлений...
Спасибо сказали:
Аватара пользователя
AlexNT
Сообщения: 433
ОС: FreeBSD 8.2, ArchLinux

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение AlexNT »

Shad0w писал(а):
26.01.2010 01:12
AlexNT
Ну собственно они ж переписали USB подсистему, видно что-то недопилили. Думаю стоит отметится с такой проблемой, может поправят быстро.

з.ы.: Я тут недавно из благих побуждений обновил VPN сервак с mpd5 на борту до 8.0-RELEASE. И все бы хорошо, да только в netgraph по ходу тоже начудили, клиент подрубается практически всегда только со второго раза, при первом коннекте соединение отваливается с ошибкой присвоения айпи-адреса интерфейсу на стороне сервера. Так что ждем дружно исправлений...


Пришел ответ от разработчика:

Hi,

Your USB 2.0 controller most likely has the lost interrupt bug. Try adding
your USB 2.0 controller to the list of devices quirked in:

src/sys/dev/usb/controller/ehci_pci.c:

/* Dropped interrupts workaround */
switch (pci_get_vendor(self)) {
case PCI_EHCI_VENDORID_ATI:
case PCI_EHCI_VENDORID_VIA:
sc->sc_flags |= EHCI_SCFLG_LOSTINTRBUG;
if (bootverbose)
device_printf(self,
"Dropped interrupts workaround enabled\n");
break;
default:
break;
}

Сделал как посоветовали:

/* Dropped interrupts workaround */
switch (pci_get_vendor(self)) {
case PCI_EHCI_VENDORID_ATI:
case PCI_EHCI_VENDORID_VIA:
case PCI_EHCI_VENDORID_NVIDIA:
case PCI_EHCI_VENDORID_NVIDIA2:

sc->sc_flags |= EHCI_SCFLG_LOSTINTRBUG;
if (bootverbose)
device_printf(self,
"Dropped interrupts workaround enabled\n");
break;
default:
break;
}

Как доберусь до своих nForcов, проверю отпишу что получилось...
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение Shura »

Отлично, ждём результатов!
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
AlexNT
Сообщения: 433
ОС: FreeBSD 8.2, ArchLinux

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение AlexNT »

Shura писал(а):
28.01.2010 16:00
Отлично, ждём результатов!


Соответсвенно баг остался, отписал снова, с выкладками... Снова ждем что скажут. :)
Спасибо сказали:
Аватара пользователя
AlexNT
Сообщения: 433
ОС: FreeBSD 8.2, ArchLinux

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение AlexNT »

AlexNT писал(а):
29.01.2010 11:18
Shura писал(а):
28.01.2010 16:00
Отлично, ждём результатов!


Соответсвенно баг остался, отписал снова, с выкладками... Снова ждем что скажут. :)


Меня просветили что этот патч лишь только добавляет вывод сообщения в отладку. Отписал с логами, жду ответа/совета. :(
Спасибо сказали:
Аватара пользователя
AlexNT
Сообщения: 433
ОС: FreeBSD 8.2, ArchLinux

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение AlexNT »

AlexNT писал(а):
29.01.2010 19:26
AlexNT писал(а):
29.01.2010 11:18
Shura писал(а):
28.01.2010 16:00
Отлично, ждём результатов!


Соответсвенно баг остался, отписал снова, с выкладками... Снова ждем что скажут. :)


Меня просветили что этот патч лишь только добавляет вывод сообщения в отладку. Отписал с логами, жду ответа/совета. :(


На данный момент веду переписку с разработчиком, каких либо результатов пока нет. Он мне пишет что править и что ему из логов отсылать. Пока обнадеживающих результатов нет. Посмотрел как сделан новый USB стек в 8мерке, даже я (не обладая особыми навыками в программировании) вижу что он переписан полностью... :(
Спасибо сказали:
Аватара пользователя
AlexNT
Сообщения: 433
ОС: FreeBSD 8.2, ArchLinux

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение AlexNT »

Решение проблемы найдено:
http://www.bsdnotes.ru/?lnk=cfg_8_usb
Спасибо сказали:
Stashek
Сообщения: 86

Re: FreeBSD 8.0 - некорректная работа с USB (чипсет nForce)

Сообщение Stashek »

Спасибо огромное всем, кто постил в этой ветке!
На моем компьютере, как раз, используется системная логика на основе чипсета nVidia nForce MCP73. И после перехода с 7 на 8 некорректно стали работать usb-устройства. Ни флешкой воспользоваться, ни в плеер музыку закачать, ни с фотика снимки скопировать.
Ядро пропатчил и пересобрал - проблема решилась.
Еще раз большое спасибо!
Косово je Србиjа!
Спасибо сказали: