Работа PCMCIA во FreeBSD 5-Stable с включенным ACPI

OSzone.net » Видео » Unix » FreeBSD » Поддержка устройств » Работа PCMCIA во FreeBSD 5-Stable с включенным ACPI
Иcточник: http://www.opennet.ru
Опубликована: 05.03.2005
Поводом написания этой статьи стало то, что во FreeBSD 5-Stable c
включенным ACPI у многих пользователей notebook`ов некорректно
определяются карточки pcmcia. Я поискал в сети информацию по этому
поводу, но к сожалению, кроме сообщений о таких же ошибках ничего не
нашел.

Итак, имеем:
  - Ноутбук compaq armada e500.
  - PCMCIA карточка compaq wavelan wl110.

Установка карточки с выключенным ACPI:

    kernel: wi0: <Compaq Compaq WL110 PC Card> at port 0x180-0x1bf 
                 irq 11 function 0 config 1 on pccard1
    kernel: wi0: using Lucent Technologies, WaveLAN/IEEE
    kernel: wi0: Lucent Firmware: Station (6.16.1)
    kernel: wi0: Ethernet address: 00:02:a5:2d:15:43
    kernel: wi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps


То есть, все ок.

Установка карточки с включенным ACPI:

    kernel: wi0: <Compaq Compaq WL110 PC Card> at port 0x100-0x13f 
         irq 11 function 0 config 1 on pccard1
    kernel: wi0: timeout in wi_cmd 0x0000; event status 0x8000
    last message repeated 2 times
    kernel: : init failed
    kernel: device_attach: wi0 attach returned 6


Карточка не задетектилась.

Легко заметить что в первом случае порт 0x180-0x1bf а во втором - 0x100-0x13f

Но на этом порту уже висит последовательный порт:

    sio1: <Generic IRDA-compatible device> port 0x100-0x107,0x3e8-0x3ef irq 3 drq 5 on acpi0


Естественно, ничего работать не будет.

Путем поисков в sysctl -a | grep hw. был найден некий параметр
hw.cbb.start_16_io, значение которого по умолчанию равно 256, то есть и
есть 0x100. Оказалось, все просто - достаточно поставить этот параметр в 384 (0x180):

    sysctl -w hw.cbb.start_16_io=384


и при следующей установке карточки (о чудо!!!) все заработало:

    kernel: wi0: <Compaq Compaq WL110 PC Card> at port 0x180-0x1bf 
                 irq 11 function 0 config 1 on pccard1
    kernel: wi0: using Lucent Technologies, WaveLAN/IEEE
    kernel: wi0: Lucent Firmware: Station (6.16.1)
    kernel: wi0: Ethernet address: 00:02:a5:2d:15:43
    kernel: wi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps


Для удобства это значение было прописано в /etc/sysctl.conf

----
Надеюсь у Вас все заработает так же как у меня!
Евгений Гридасов, eugrid [at] fpm.kubsu.ru




Ссылка: http://www.oszone.net/2810/