nixp.ru v3.0

22 октября 2017,
воскресенье,
18:21:47 MSK

DevOps с компанией «Флант»
alex_grey написал 29 октября 2006 года в 14:49 (939 просмотров) Ведет себя неопределенно; открыл 5 тем в форуме, оставил 12 комментариев на сайте.

всем привет!:)

есть ноутбук с встроенным wi-fi usb адаптером

на ноуте установлен линукс (не важно какой, пробовал разные дистрибутивы)

так вот, ситуация следующая:

при загрузке с подключенным внешним usb-устройством (любым, будь то кардридер или внешний hd) этот wi-fi адаптер спокойно определятся lsusb

но! при не подключенном при загрузке внешнем устройстве — не определятся вообще!!! что-то там про usb-ohci takeover!

могу скинуть логи dmesg и /var/log/messages для обоих случаев, там налицо различия, но я пока новичок и не силен в их понимании; может быть нужны еще какие-нибудь логи?

ps. решения вроде «работать с всегда подключенным usb» не подходят. кстати, на том же ноуте установлен windows xp, который в любом случае находит wi-fi.

pss. гугль юзал.

заранее — 10x

fly4life

Видимо, для работы твоего wi-fi устройства необходим модуль 'usb-ohci’. При подключении кард-ридера он загружается, а при подключении wi-fi — нет. Загружай вручную.

alex_grey

это через insmod или modprobe?

тогда вдвойне вопрос — почему он в первом случае запускает usb-ohci нормально, а во втором — takeover!

ну да попробовал вручную..

в первом случае (с подключенным внешним usb-устройством):

# insmod usb-ohci

Using /lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz

insmod: a module named usb-ohci already exists

во втором случае:

# insmod usb-ohci

Using /lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: init_module: No such device

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters

да и dmesg, и в /var/log/messages подключение usb-ohci и ошибки вроде отображаются

wi-fi я не подключаю сам, он — не внешний, он — встроенный, ФИЗИЧЕСКИ никак не могу его отключить!

последовательность при которой он определяется через lsusb такая:

включаю ноутбук с подключенным внешним usb устройством (абсолютно любым);

появляется приглашения lilo на выбор системы (грешен, у меня линь и вынь на ноуте;);

вот тут самое смешное — я могу как оставить внешнее usb устройство, так и физически его отключить, еще до выбора линукса (то есть как я понимаю — никакие демоны, драйвера и прочее еще не запущено);

выбираю линукс;

lsusb показывает, что есть actiontec wi-fi adapter

а если я включу ноут без подключенного usb, или даже подключу его тогда когда запустится lilo — lsusb ничего не покажет (ну если только внешнее usb устройство)

отсюда и возникает вопрос: почему без изменений в системе (не в физическом плане) получается такая вот штука??

может ли это быть конфликт BIOS и линукса? (ведь та же винда спокойно находит wi-fi, независимо — есть внешние устройства или нет)

fly4life
alex_grey
это через insmod или modprobe?

modprobe

alex_grey
тогда вдвойне вопрос — почему он в первом случае запускает usb-ohci нормально, а во втором — takeover!

Потому что в первом случае (при подключении внешнего USB-устройства) у тебя модуль 'usb-ohci' загружает какой-нибудь hotplug, а во втором — никто.

alex_grey
modprobe

для второго случая (а принципиальна ли разница — modprobe или insmod? первое ведь второе в себя включает):

#modprobe usb-ohci

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: init_module: No such device

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters

You may find more information in syslog or the output from dmesg

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: insmod /lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz failed

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: insmod usb-ohci failed

Потому что в первом случае (при подключении внешнего USB-устройства) у тебя модуль 'usb-ohci' загружает какой-нибудь hotplug, а во втором — никто.

в обоих случаях — rc.hotplug

т.е. это в нем может быть проблема? что он самостоятельно решает — когда что включать?

опять-таки — запускается этот hotplug, как я понимаю, после lilо. а как я уже написал: внешнее usb устройство должно быть подключенным от момента нажатия power и до окна выбора ОС загрузчика lilo (это насколько я выяснить смог путем экспериментов), потом его (внешнее usb устройство) можно отключить, выбрать линукс, и wi-fi адаптер будет найден.

отсюда вопрос и возникает — что там с момента запуска ноутбука и до выбора ОС может происходить, что влияет на дальнейшую работу?

fly4life
alex_grey
для второго случая (а принципиальна ли разница — modprobe или insmod? первое ведь второе в себя включает):

Разница всё же есть (ради интереса, глянуть первый абзац DESCRIPTION в 'man insmod’, ну и ту же секцию в 'man modprobe’).

alex_grey
#modprobe usb-ohci

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: init_module: No such device

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters

You may find more information in syslog or the output from dmesg

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: insmod /lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz failed

/lib/modules/2.4.31/kernel/drivers/usb/host/usb-ohci.o.gz: insmod usb-ohci failed

Хм. Интересно, что за .o.gz?

Показывай messages и dmesg (только не целиком, а те места, в которых говорится о попытках загрузить usb-ohci).

Вообще, дистрибутив-то какой?

alex_grey
в обоих случаях — rc.hotplug

Slackware чтоли?

alex_grey
т.е. это в нем может быть проблема? что он самостоятельно решает — когда что включать?

Это не проблема hotplug как такового (он просто загружает необходимые модули, когда подключается внешнее устройство), а беда с определением железа в конкретно используемом тобой дистрибутиве (и почему мне Слакварь мерещится?..).

alex_grey
опять-таки — запускается этот hotplug, как я понимаю, после lilо. а как я уже написал: внешнее usb устройство должно быть подключенным от момента нажатия power и до окна выбора ОС загрузчика lilo (это насколько я выяснить смог путем экспериментов), потом его (внешнее usb устройство)  можно отключить, выбрать линукс, и wi-fi адаптер будет найден.

отсюда вопрос и возникает — что там с момента запуска ноутбука и до выбора ОС может происходить, что влияет на дальнейшую работу?

Чего-нибудь с питанием (ACPI?), но тут я уже не советчик.

Да, смотрю, у тебя ядро 2.4.31. Удивляюсь, что wi-fi вообще хоть как-то работает… Или это я отстал от жизни, и в 2.4.х с беспроводными устройствами уже всё хорошо?

alex_grey
Разница всё же есть (ради интереса, глянуть первый абзац DESCRIPTION в 'man insmod’, ну и ту же секцию в 'man modprobe’).

согласен

Хм. Интересно, что за .o.gz?

? я так думаю в Слаке — это как подгружаемые модули, еще не разобрался полностью

Вообще, дистрибутив-то какой?

Да, это Слака, 10.2, 2.4.31. Но до него так же себя вели OpenSUSE 10, Mandriva, Red Hat — абсолютно точно также..

Это не проблема hotplug как такового (он просто загружает необходимые модули, когда подключается внешнее устройство), а беда с определением железа в конкретно используемом тобой дистрибутиве (и почему мне Слакварь мерещится?..).

? В первом случае он определяет wi-fi, во втором — нет. Разница — ТОЛЬКО в том — подключено ли какое-нибудь внешнее usb устройство. ВСЁ. Никакие файлы, модули, прочее — не меняю.

Чего-нибудь с питанием (ACPI?), но тут я уже не советчик.

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

Да, смотрю, у тебя ядро 2.4.31. Удивляюсь, что wi-fi вообще хоть как-то работает… Или это я отстал от жизни, и в 2.4.х с беспроводными устройствами уже всё хорошо?

работает, на 2.4.20 уже работало, раньше не знаю

Показывай messages и dmesg (только не целиком, а те места, в которых говорится о попытках загрузить usb-ohci).

для первого случая:

#lsusb

Bus 003 Device 001: ID 0000:0000

Bus 002 Device 001: ID 0000:0000

Bus 002 Device 002: ID 1668:6097 Actiontec Electronics, Inc. [hex]

Bus 001 Device 001: ID 0000:0000

#less /var/log/messages

logger: /etc/rc.d/rc.hotplug start (entering script)

kernel: usb.c: registered new driver usbdevfs

kernel: usb.c: registered new driver hub

kernel: ehci_hcd 00:0f.2: NEC Corporation USB 2.0

kernel: ehci_hcd 00:0f.2: irq 5, pci mem cf8f2000

kernel: usb.c: new USB bus registered, assigned bus number 1

kernel: ehci_hcd 00:0f.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4

kernel: hub.c: USB hub found

kernel: hub.c: 3 ports detected

kernel: usb-ohci.c: USB OHCI at membase 0xcf8fa000, IRQ 11

kernel: usb-ohci.c: usb-00:0f.0, NEC Corporation USB

kernel: usb.c: new USB bus registered, assigned bus number 2

kernel: hub.c: USB hub found

kernel: hub.c: 2 ports detected

kernel: usb-ohci.c: USB OHCI at membase 0xcf8fc000, IRQ 7

kernel: usb-ohci.c: usb-00:0f.1, NEC Corporation USB (#2)

kernel: usb.c: new USB bus registered, assigned bus number 3

kernel: hub.c: USB hub found

kernel: hub.c: 1 port detected

kernel: hub.c: new USB device 00:0f.2-1, assigned address 2

kernel: hub.c: new USB device 00:0f.0-2, assigned address 2

kernel: Initializing USB Mass Storage driver…

kernel: usb.c: registered new driver usb-storage

kernel: sda: sda1

kernel: USB Mass Storage support registered.

kernel: uhci.c: USB Universal Host Controller Interface driver v1.1

kernel: usb-uhci.c: $Revision: 1.275 $ time 18:53:41 Jun 5 2005

kernel: usb-uhci.c: High bandwidth mode enabled

kernel: usb-uhci.c: v1.275:USB Universal Host Controller Interface driver

logger: /etc/rc.d/rc.hotplug start (exiting script)

#dmesg

usb.c: registered new driver usbdevfs

usb.c: registered new driver hub

ehci_hcd 00:0f.2: NEC Corporation USB 2.0

ehci_hcd 00:0f.2: irq 5, pci mem cf8f2000

usb.c: new USB bus registered, assigned bus number 1

ehci_hcd 00:0f.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4

hub.c: USB hub found

hub.c: 3 ports detected

usb-ohci.c: USB OHCI at membase 0xcf8fa000, IRQ 11

usb-ohci.c: usb-00:0f.0, NEC Corporation USB

usb.c: new USB bus registered, assigned bus number 2

hub.c: USB hub found

hub.c: 2 ports detected

usb-ohci.c: USB OHCI at membase 0xcf8fc000, IRQ 7

usb-ohci.c: usb-00:0f.1, NEC Corporation USB (#2)

usb.c: new USB bus registered, assigned bus number 3

hub.c: USB hub found

hub.c: 1 port detected

usb.c: USB device 2 (vend/prod 0×58f/0×6362) is not claimed by any active driver.

hub.c: new USB device 00:0f.0-2, assigned address 2

usb.c: USB device 2 (vend/prod 0×1668/0×6097) is not claimed by any active driver.

uhci.c: USB Universal Host Controller Interface driver v1.1

usb-uhci.c: $Revision: 1.275 $ time 18:53:41 Jun 5 2005

usb-uhci.c: High bandwidth mode enabled

usb-uhci.c: v1.275:USB Universal Host Controller Interface driver

ИЗВИНЯЮСЬ ЗА СВОЕОБРАЗНЫЙ ФЛУД:)

alex_grey

для второго случая:

#lsusb

Bus 001 Device 001: ID 0000:0000

#less /var/log/messages

logger: /etc/rc.d/rc.hotplug start (entering script)

kernel: usb.c: registered new driver usbdevfs

kernel: usb.c: registered new driver hub

kernel: ehci_hcd 00:0f.2: NEC Corporation USB 2.0

kernel: ehci_hcd 00:0f.2: irq 5, pci mem cf8f2000

kernel: usb.c: new USB bus registered, assigned bus number 1

kernel: ehci_hcd 00:0f.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4

kernel: hub.c: USB hub found

kernel: hub.c: 3 ports detected

kernel: usb-ohci.c: USB OHCI at membase 0xcf8fa000, IRQ 11

kernel: usb-ohci.c: usb-00:0f.0, NEC Corporation USB

kernel: usb-ohci.c: USB OHCI at membase 0xcf8fa000, IRQ 7

kernel: usb-ohci.c: usb-00:0f.1, NEC Corporation USB (#2)

..повторяется несколько раз (10-12)

kernel: usb-ohci.c: USB OHCI at membase 0xcf95d000, IRQ 11

kernel: usb-ohci.c: usb-00:0f.0, NEC Corporation USB

kernel: usb-ohci.c: USB OHCI at membase 0xcf95d000, IRQ 7

kernel: usb-ohci.c: usb-00:0f.1, NEC Corporation USB (#2)

..

kernel: uhci.c: USB Universal Host Controller Interface driver v1.1

kernel: usb-uhci.c: $Revision: 1.275 $ time 18:53:41 Jun 5 2005

kernel: usb-uhci.c: High bandwidth mode enabled

kernel: usb-uhci.c: v1.275:USB Universal Host Controller Interface driver

logger: /etc/rc.d/rc.hotplug start (exiting script)

#dmesg

usb.c: registered new driver usbdevfs

usb.c: registered new driver hub

ehci_hcd 00:0f.2: NEC Corporation USB 2.0

ehci_hcd 00:0f.2: irq 5, pci mem cf8f2000

usb.c: new USB bus registered, assigned bus number 1

ehci_hcd 00:0f.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4

hub.c: USB hub found

hub.c: 3 ports detected

usb-ohci.c: USB OHCI at membase 0xcf8fa000, IRQ 11

usb-ohci.c: usb-00:0f.0, NEC Corporation USB

usb-ohci.c: USB HC TakeOver failed!

Trying to vfree() nonexistent vm area (cf8fa000)

usb-ohci.c: USB OHCI at membase 0xcf8fa000, IRQ 7

usb-ohci.c: usb-00:0f.1, NEC Corporation USB (#2)

usb-ohci.c: USB HC TakeOver failed!

Trying to vfree() nonexistent vm area (cf8fa000)

…повторяется несколько раз (10-12)

Trying to vfree() nonexistent vm area (cf95d000)

usb-ohci.c: USB OHCI at membase 0xcf95d000, IRQ 7

usb-ohci.c: usb-00:0f.1, NEC Corporation USB (#2)

usb-ohci.c: USB HC TakeOver failed!

Trying to vfree() nonexistent vm area (cf95d000)

uhci.c: USB Universal Host Controller Interface driver v1.1

usb-uhci.c: $Revision: 1.275 $ time 18:53:41 Jun 5 2005

usb-uhci.c: High bandwidth mode enabled

fly4life
alex_grey
? я так думаю в Слаке — это как подгружаемые модули, еще не разобрался полностью

А, ну может быть. Только подгружаемые модули — это всё-таки '.o’, но может в Слаке они хранятся в сжатом виде (экономия аж нескольких мегабайт на жёстком диске?).

alex_grey
? В первом случае он определяет wi-fi, во втором — нет. Разница — ТОЛЬКО в том — подключено ли какое-нибудь внешнее usb устройство. ВСЁ. Никакие файлы, модули, прочее — не меняю.

Всё-таки не в USB-модулях тут у тебя проблема, а, скорее, что-то с питанием.

Кстати, ядро 2.6.х не пробовал ставить? Хотя, если в suse 10 (.0 или .1?) с её 2.6 поведение было тем же…

alex_grey
А, ну может быть. Только подгружаемые модули — это всё-таки '.o’, но может в Слаке они хранятся в сжатом виде (экономия аж нескольких мегабайт на жёстком диске?).

причуды Слаки))))

Всё-таки не в USB-модулях тут у тебя проблема, а, скорее, что-то с питанием.

в том то и дело, что ACPI в обоих случаях нормально работает (никаких еррор мессаджей)

Кстати, ядро 2.6.х не пробовал ставить? Хотя, если в suse 10 (.0 или .1?) с её 2.6 поведение было тем же…

10.0, ядро 2.6.13 по дефолту (но я с ним не разбирался особо, просто заметил ту же странность)

тут с иностранцем (www.umaxx.net), который на такой же ноут (asus s200b) ставил линукс, попереписывался — он говорит, что была похожая проблема на ядре 2.4 и связана она скорее с прерываниями (судя по логам — так и есть)

i had the same problem if i remeber correctly with 2.4. i think its

because of wrong irq routing on interrupts. the wi-fi is internally

connected to an usb-hub. its a normal prism2 chipset. works fine with

linux-wlan-ng stuff.

отсюда и новый вопрос у меня возник — как можно (и можно ли вообще) улучшить работу с прерываниями (irq sharing) в ядре 2.4. или сразу перейти на 2.6. и настроить все там?

опять-таки joerg написал, что у него gentoo с 2.6. нормально работало..

alex_grey

дадада!!

так и есть — теперь Слака крутиться на 2.6.17 — все отлично!!!!

значит — у 2.4. просто плохо с распределение прерываний

в любом случае — спасибо fly4life:)