LINUX.ORG.RU

Centos 5 и xHCI USB 3.0

 ,


0

1

Добрый день всем!

В общем проблема проблем возникла сегодня: пришли новые сервера и сборка наша на основе старой шапки не заработала. Грузится она с флешки, на стадии когда заканчивается INIT и должен быть замонтирован образ диска вываливается в консоль. Потому что USB не работает. Матплата Supermicro X11SSM-F, чипсет там вроде как Intel C236.

Кто-нить встречал xhci_hcd для старой шапки? Обновлять ОС не хотелось бы - это просто жопа. Сборка очень интегрирована со всяким самописным софтом и по сути является частью оного.

Может кто-то подскажет полезные мысли...

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

Да, таблицу эту я видел. Жаль что после того как столкнулся с проблемой ;(

Признаться я не знаю как может материнская плата не поддерживать ОС. Система загружается, работает. Только с USB проблемы. Неужели для того чтобы заработал USB требуется обновлять ОС вместо того чтоб поставить всего лишь драйвера? Мне по сути от компьютера нужен лишь процессор помощнее, немного памяти, сетевая плата и PCI.

Поэтому я надеюсь что есть обходные варианты.

switch_002
() автор топика

RHEL5/Centos5 уже очень стар для установки на новое железо. Поставь что-нибудь новее, а centos5 - в kvm-ную виртуалку, он отлично там себя чувствует в проде, проверено.

Deleted
()
Ответ на: комментарий от switch_002

Поэтому я надеюсь что есть обходные варианты.

Вроде usb 3.0 начали поддерживать в ядре 2.6.31 — возможно, в эту сторону надо копать.

int13h ★★★★★
()
Ответ на: комментарий от int13h

Пятая шапка в поддержке до марта следующего года. По поводу 2.6.31 - понял, спасибо!

Вообще поймите правильно: лучшее - враг хорошего. Когда работает у нескольких сотен клиентов стабильно - чего еще желать? Как говорится: «Не делайте мне лучше, оставьте мне хорошо!»

switch_002
() автор топика

Попробуй через юзб хаб 2.0 подрубить, иногда это помогает.

expelled ★★
()

По мануалу на этой материнке часть портов это честное USB2.0, а не 3.0. Они тоже не работают?

Bebop ★★
()
Ответ на: комментарий от Bebop

Про хаб: попробую, спасибо! Про USB 2.0: нет, не работают тоже... Вообще нашел интересный материал http://ask.systutorials.com/1908/how-to-force-a-usb-3-0-port-to-work-in-usb-2... Там говорится о том что можно переключить USB 3.0 в режим 2.0 но тоже не помогло.

switch_002
() автор топика

Обычно в сетапе системной прошивки можно выбрать, как себя будет анонсировать интегрированный на IO Hub контроллер USB, как 3.0, или как 2.0.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

Я этого и ожидал, но нету такого вообще. Про USB там только что-то про Windows 7. Отправили запрос производителю, но пока нет ответа.

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

ПОнимаю. Я бы лучше присматривался к rhel7 =)

int13h ★★★★★
()

драйвер нужен не для самого xhci, а для обвязки между портами и контроллером, которая может переключать порты между ehci и xhci, а может и ещё что-то делать.

такие обвязки они зависят от производителя и в стандарт xhci не входят и драйвером не покрываются.

граб собственных xhci драйверов не содержит(ehci вроде есть), а пользуется тем, что биос предоставит и может ядро в память загрузить, а дальше ёк.

p.s. примерно такой расклад, если я ничего не напутал

dimon555 ★★★★★
()
Ответ на: комментарий от switch_002

> Про хаб: попробую, спасибо! Про USB 2.0: нет, не работают тоже...

Возможно, в Initrd нет модуля ядра для контроллера USB. Вернее, контроллера какого-то конкретного изготовителя. На зеркале Яндекса есть LiveCD/LiveDVD с CentOS 6, попробуй загрузиться с него, чрутнуться в старую систему, и пересборать Initrd!

ZenitharChampion ★★★★★
()
Ответ на: комментарий от switch_002

Ну, я вот так делаю, и модули прописывать вручную не приходится:

mkdir /mnt/disk
mount -t ext3 /dev/sdb1 /mnt/disk
mount -t proc none /mnt/disk/proc
mount --rbind /dev /mnt/disk/dev
mount --rbind /sys /mnt/disk/sys
chroot /mnt/disk
# source /etc/profile
# mkinitrd -f -v /boot/initrd-2.6.18-410.img 2.6.18-410
# exit
umount /mnt/disk/proc
cat /proc/mounts | awk '{print $2}' | grep "/mnt/disk/sys" | sort -r | xargs umount
cat /proc/mounts | awk '{print $2}' | grep "/mnt/disk/dev" | sort -r | xargs umount
umount /mnt/disk
ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

это понятно, сборка инитрд. Там выше речь шла об обвязках неких, с ними что?

Тут выяснилось следующее: в предыдущей версии матплаты тоже был USB 3.0 и все прекрасно работало. Т.е. видимо действительно проблема в каком-то слое между USB и процессором. Чипсет чтоли...

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

Про обвязки не знаю. Спроси у человека, который рассказал о них

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Останавливается на этапе когда ядро начинает подключать диски и искать там файловую систему. Она в свою очередь находится на флешке, подключенной по USB. И не находит. Вообще при подключении USB устройства на экране и dmesg ничего не вываливается.

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

я по правде не понимаю, а что пересборка даст-то? Тем более что он у меня вручную собран.

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

Вот как раз сейчас это и пробую сделать. ;)

Кстати: что потребуется перекомпилировать для совместимости с новым ядром?

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

Кстати: что потребуется перекомпилировать для совместимости с новым ядром?

На 5 не знаю. На 6 кажется L2TP отваливалось, реализации в ядрах разные были. Скорее всего ничего.

arson ★★★★★
()
Ответ на: комментарий от switch_002

Так какие контроллеры USB в системе? Что говорит lspci -nn -k?

iliyap ★★★★★
()
Ответ на: комментарий от switch_002

Скажите пожалуйста, а что за обвязки такие?

я про них мало знаю, это надо спеку искать.

Там какой-то смарт юсб хаб был, возможно ещё какая-то доп защита от короткого замыкания, которая возможно по умолчанию отключает порты.

можно попробовать по pci device id погрепать в сорцах линукса, может чего найдётся.

dimon555 ★★★★★
()

ftp://ftp.nexcom.com/pub/Drivers/NDiSM532/USB3.0/Intel_USB_3.0_xHC_Driver_1.0...

вот что-то интересное

4.4 Intel® USB 3.0 Host Controller Switch Driver The Intel® USB 3.0 eXtensible Host Controller Drive r release kit includes the Intel® USB 3.0 Host Controller Switch Driver. This driver uses BIOS ACPI method to control dynamic switching from EHCI to xHCI during OS boot.

dimon555 ★★★★★
()
Последнее исправление: dimon555 (всего исправлений: 1)
Ответ на: комментарий от switch_002

попробуй выключить эти самые Auto и smart auto, если доступны.


Note:
The Intel® USB 3.0 eXtensible Host Controller Drive
r is not supported on Windows*
XP and Windows* Vista. For these operating systems,
ensure your BIOS settings have
the xHCI Mode set to “Auto” or “Smart Auto”. This w
ill reconfigure the USB 3.0 ports
to function as USB 2.0 ports using the native Windo
ws* EHCI driver.

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

засада в том что в биосе нет ничего про USB кроме какой-то мутной опции, которую предлагается выставить после установки Windows 7 ;( Новых версий биоса для этой матплаты тоже нету.

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

Если сравнить даташиты на твой чипсет (Intel 100/C230 Series) и на чипсет предыдущего поколения (Intel 8/C220 Series), то можно увидеть различие в списке идентификаторов PCI-устройств. В 100 Series только один контроллер USB, и это xHCI-контроллер. В 8 Series три USB-контроллера, два EHCI и один xHCI.

Ядро RHEL 5 не поддерживает xHCI, нет в нем драйвера для твоего USB-контроллера.

Либо ставь RHEL 5 на железо, а затем устанавливай и используй ядро от RHEL 6 или 7, либо ставь на железо RHEL 7, а RHEL 5 в контейнер или виртуалку на нём.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

Вот как раз первый пункт и пытаюсь реализовать. ;) Ядра есть http://elrepo.org/linux/kernel/el5/x86_64/RPMS/ Но блин не нашел к нему initrd. Я взял свой initrd, обновил все модули ядра на то что идут к новому. Но при запуске ругается так:

--------------------------------------------------------- WARNING: Requested $init binary does not exist on rootfs. ---------------------------------------------------------

Я хз что это, но предположил что либо скрипт инит не находит, либо изменился формат инита и теперь требует бинарника. В дистрибе ядра не нашел initrd, при том что rpmsearch показывает что есть: http://rpm.pbone.net/index.php3/stat/4/idpl/33736761/dir/redhat_el_5/com/kern...

Вот думаю дальше что делать...

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

Не знаю, что делают пакеты ядер с эльрепо, а пакеты от rhel или centos собирают initramfs в postinstall-скриптлете.

iliyap ★★★★★
()
Ответ на: комментарий от switch_002

Вот думаю дальше что делать...

initrd собирается при установке или делай dracut

arson ★★★★★
()
Ответ на: комментарий от switch_002

Отвечаю сам себе: ядро 3.2.81 что лежит на elrepo вполне рабочее, все USB в т.ч. 3.0 заработали. На обычную систему ставится без проблем, потом нужно перекомпилировать драйвера которых нет в ядре. Все остальное работает. Получается «древняя» centos 5.2 с ядром 3.2.81. Про стабильность ничего не могу сказать - в продакшен еще не запустил. В моем случае еще пришлось перелопатить initrd, т.к. у меня файловая система с оверлеем в tmpfs, а множество модулей ядра переименовались. Например, был dm_mod, а стал dm-mod.

Всем большое спасибо за участие и помощь!

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