LINUX.ORG.RU

Не работает ASM1042 на gentoo с самопальным конфигом

 , ,


0

2

Привет ЛОР! Пытаюсь осилить Gentoo, пилю свой конфиг ядра понемногу. Упорно не работает контроллер USB3 ASM1042. Сам контроллер заведомо рабочий, подключаемые устройства так же рабочие. После запуска Gentoo, где-то на половине загрузки initrd вырубается то, что к нему подключено и больше не работает. Из 3-х USB на Asus 1225b работает только 1-н USB2, который от чипсета. Исходники gentoo-sources 3.8.13.

lspci -vk

.config by genkernel

lsmod

P.S. Конфиг корявый и genkernel насрал в initrd кучу всего, но радует хотя бы то, что оно грузится.

P.S.S. И да, ЛОР, если ты можешь подправить ещё что-то в этом конфиге, что не относится к ноуту, я буду рад. =)

★★★★

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

Я взял конфиг из Calculate и там эта опция включена, скорее всего она не влияет на работоспособность.

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

С именами xhci-hcd мне осталось включить только «CONFIG_USB_XHCI_HCD_DEBUGGING», но разве это может повлиять?

xhci-hcd это CONFIG_USB_XHCI_HCD

Prompt: xHCI HCD (USB 3.0) support                                                                                    │  
  │   Defined at drivers/usb/host/Kconfig:20                                                                              │  
  │   Depends on: USB_SUPPORT [=y] && USB [=y] && USB_ARCH_HAS_XHCI [=y]                                                  │  
  │   Location:                                                                                                           │  
  │     -> Device Drivers                                                                                                 │  
  │       -> USB support (USB_SUPPORT [=y])
init_6 ★★★★★ ()

Очевидно, что модуль надо в модуль, а не ядро:

CONFIG_USB_ARCH_HAS_XHCI=y
CONFIG_USB_XHCI_HCD=m

у меня такой же контроллер на асусе, всё работает. Пересобирай.

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

Может ядро новее попробовать собрать?

Не помню в какой конкретно версии USB 3.0 появился но он уже давненько есть.

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

Очевидно, что модуль надо в модуль, а не ядро

Без разницы. Если оно в m то ядро меньше и USB будет доступно только после того как модуль xhci-hcd загрузится если ставить y то ядро немного больше и соответственно USB будет уже в ядре и ничего грузить не нужно будет.

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

Возможно, но по другому у меня этот контроллер:

ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
на ноуте Asus K53SC не работает.

science ★★☆ ()

Компилю ядро заново (раз, наверное, уже 7-й). Выставил «CONFIG_USB_XHCI_HCD=m», посмотрим, что из этого выйдет. За одно нашёл, какие модули genkernel запихивает в initrd. Он, кстати, игнорирует параметры --no-mdadm и т.п. Модули прописаны в /usr/share/genkernel/arch/x86_64/modules_load

kma21 ★★★★ ()
echo "0" > "/sys/bus/usb/devices/$port/power/autosuspend"

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

trupiko ()
Ответ на: комментарий от kma21

За одно нашёл, какие модули genkernel запихивает в initrd. Он, кстати, игнорирует параметры --no-mdadm и т.п. Модули прописаны в /usr/share/genkernel/arch/x86_64/modules_load

genkernel у тебя ради чего?

если просто ради того чтобы собирать ядро то вот тебе install_kernel собирает и устанавливает ядро, пересобирает внешние модули и даже конфигуратор груба запускает.

А если ради initrd то осиль Early Userspace Mounting и ее более ранний и гораздо более интересный вариант Initramfs а после всего этого вот тебе мой initramfs в src_root общий шаблон фс. scripts/config симлинк на «настройки» того что и где нужно - т.е. это какой именно софт и либы нужны. Использовать элементарно

> make prep
> cd initramfs-0.0.1
# в этом месте уже не в шаблоне src_root а в новом инитраме initramfs-0.0.1 отредактировал все что только сам захотел
> cd .. 
> make build
# Если все ок то после этого сам initrd*cpio.xz будет в /usr/src/linux. Копируй его в boot или в куда там тебе нужно и профит

Используется только gen_initramfs_list.sh из ядра и чтобы оно заработало нужно

make -C /usr/src/linux/usr/ gen_init_cpio; chmod +x /usr/src/linux/usr/gen_init_cpio /usr/src/linux/scripts/gen_initramfs_list.sh;
init_6 ★★★★★ ()
Ответ на: комментарий от init_6

genkernel у тебя ради чего?

Запихал всю систему в LVM (в т.ч. и /boot) и поэтому нужен initrd. Но т.к. нигде не могу найти толковую доку (в т.ч. и handbook gentoo), то компилю всё genkernel. Жутко боюсь kernel panic, потому что не умею их разруливать.

Кстати, последняя компеляция вывалилась с kernel panic, поэтому все эксперименты пока приустановил. =D

Пока не совсем понимаю механизмы взаимодействия, что мне нужно и как это сделать. Толком не понимаю, даже, что ты написал и как этим пользоваться. Надо разбираться нормально.

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

Похоже помогло. Спасибо большое!

init_6, если интересно, то модулем как раз заработало. Так же благодарю за старания помочь. =)

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