всем привет!:)
есть ноутбук с встроенным wi-fi usb адаптером
на ноуте установлен линукс (не важно какой, пробовал разные дистрибутивы)
так вот, ситуация следующая:
при загрузке с подключенным внешним usb-устройством (любым, будь то кардридер или внешний hd) этот wi-fi адаптер спокойно определятся lsusb
но! при не подключенном при загрузке внешнем устройстве — не определятся вообще!!! что-то там про usb-ohci takeover!
могу скинуть логи dmesg и /var/log/messages для обоих случаев, там налицо различия, но я пока новичок и не силен в их понимании; может быть нужны еще какие-нибудь логи?
ps. решения вроде «работать с всегда подключенным usb» не подходят. кстати, на том же ноуте установлен windows xp, который в любом случае находит wi-fi.
pss. гугль юзал.
заранее — 10x
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Видимо, для работы твоего wi-fi устройства необходим модуль 'usb-ohci’. При подключении кард-ридера он загружается, а при подключении wi-fi — нет. Загружай вручную.
это через 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, независимо — есть внешние устройства или нет)
modprobe
Потому что в первом случае (при подключении внешнего USB-устройства) у тебя модуль 'usb-ohci' загружает какой-нибудь hotplug, а во втором — никто.
для второго случая (а принципиальна ли разница — 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
в обоих случаях — rc.hotplug
т.е. это в нем может быть проблема? что он самостоятельно решает — когда что включать?
опять-таки — запускается этот hotplug, как я понимаю, после lilо. а как я уже написал: внешнее usb устройство должно быть подключенным от момента нажатия power и до окна выбора ОС загрузчика lilo (это насколько я выяснить смог путем экспериментов), потом его (внешнее usb устройство) можно отключить, выбрать линукс, и wi-fi адаптер будет найден.
отсюда вопрос и возникает — что там с момента запуска ноутбука и до выбора ОС может происходить, что влияет на дальнейшую работу?
Разница всё же есть (ради интереса, глянуть первый абзац DESCRIPTION в 'man insmod’, ну и ту же секцию в 'man modprobe’).
Хм. Интересно, что за .o.gz?
Показывай messages и dmesg (только не целиком, а те места, в которых говорится о попытках загрузить usb-ohci).
Вообще, дистрибутив-то какой?
Slackware чтоли?
Это не проблема hotplug как такового (он просто загружает необходимые модули, когда подключается внешнее устройство), а беда с определением железа в конкретно используемом тобой дистрибутиве (и почему мне Слакварь мерещится?..).
Чего-нибудь с питанием (ACPI?), но тут я уже не советчик.
Да, смотрю, у тебя ядро 2.4.31. Удивляюсь, что wi-fi вообще хоть как-то работает… Или это я отстал от жизни, и в 2.4.х с беспроводными устройствами уже всё хорошо?
согласен
? я так думаю в Слаке — это как подгружаемые модули, еще не разобрался полностью
Да, это Слака, 10.2, 2.4.31. Но до него так же себя вели OpenSUSE 10, Mandriva, Red Hat — абсолютно точно также..
? В первом случае он определяет wi-fi, во втором — нет. Разница — ТОЛЬКО в том — подключено ли какое-нибудь внешнее usb устройство. ВСЁ. Никакие файлы, модули, прочее — не меняю.
Да была такая же мысль, теперь вот думаю там с прерываниями что-то.
работает, на 2.4.20 уже работало, раньше не знаю
для первого случая:
#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
ИЗВИНЯЮСЬ ЗА СВОЕОБРАЗНЫЙ ФЛУД:)
для второго случая:
#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
А, ну может быть. Только подгружаемые модули — это всё-таки '.o’, но может в Слаке они хранятся в сжатом виде (экономия аж нескольких мегабайт на жёстком диске?).
Всё-таки не в USB-модулях тут у тебя проблема, а, скорее, что-то с питанием.
Кстати, ядро 2.6.х не пробовал ставить? Хотя, если в suse 10 (.0 или .1?) с её 2.6 поведение было тем же…
причуды Слаки))))
в том то и дело, что ACPI в обоих случаях нормально работает (никаких еррор мессаджей)
10.0, ядро 2.6.13 по дефолту (но я с ним не разбирался особо, просто заметил ту же странность)
тут с иностранцем (www.umaxx.net), который на такой же ноут (asus s200b) ставил линукс, попереписывался — он говорит, что была похожая проблема на ядре 2.4 и связана она скорее с прерываниями (судя по логам — так и есть)
отсюда и новый вопрос у меня возник — как можно (и можно ли вообще) улучшить работу с прерываниями (irq sharing) в ядре 2.4. или сразу перейти на 2.6. и настроить все там?
опять-таки joerg написал, что у него gentoo с 2.6. нормально работало..
дадада!!
так и есть — теперь Слака крутиться на 2.6.17 — все отлично!!!!
значит — у 2.4. просто плохо с распределение прерываний
в любом случае — спасибо fly4life:)