воскресенье, 5 июля 2009 г.

hp mini, wifi

Возвращаясь к делам нетбучным. Прошлый раз, когда я говорил о том что с настройкой wifi на hpmini особых проблем не возникло, я таки видимо погорячился. Рецепт предложенный в Debian Wiki действительно оказался рабочим, но wifi в Debian работал как-то не очень стабильно - через какое-то время(всегда разное) сеть отваливалась, и после этого спасала только перезагрузка. Выгрузить/загрузить заново модуль wl не получалось. С другой стороны, Network Manager в Lenny, толи весьма старый, толи я чего-то не доглядел - но как выбирать нужную сеть через nm-applet я так и не понял. Пакет network-manager-gnome ставлю, но апплета типа того который я видел в Fedora или Ubuntu с выбором соединений, добавить на панель не получалось. Поскольку, наличие WiFi на нетбуке(как бы это не парадоксально звучало) для меня не особо критично - при необходимости не сложно воткнуть провод, а для того чтобы книжки читать вообще сеть нафиг не надо, то я как-то особо настройками этого всего дела не заморачивался.

Прошло некоторое время, входе экспериментов я успел поставить на нетбук Windows 7, и случайно снести предустановленную Vista в купе с разделом для восстановления(что с этим делать и насколько это страшно пока не знаю - в принципе мне Vista там не нужна), попробовать Ubuntu Remix(работает откровенно плохо: правда для этой модели убунтовчане ничего другого и не обещали, но это тема для отдельного разговора), снести к чертям стоявший там Debian, установить NetBSD(это тоже для отдельного большого разговора), и наконец заново установить Debian рядом с NetBSD(с этого Debian'а я сейчас и пишу). Поскольку у меня опять появился на нетбуке Линукс, таки решил вернуться к настройке wifi.

Напомню что речь идет о:


02:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
Subsystem: Hewlett-Packard Company BCM4312 802.11b/g Wireless LAN Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
Capabilities: [e8] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [d0] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us,>


Раньше для установки модуля приходилось скачивать некий тарболл с сайта Broadcom, теперь этого делать не надо. Подключаем testing или unstable, как-то так:

enisey:~# grep -E '(testing|unstable)' /etc/apt/sources.list
deb http://ftp.ua.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.ua.debian.org/debian/ testing main non-free contrib
deb http://ftp.ua.debian.org/debian/ unstable main non-free contrib
deb-src http://ftp.ua.debian.org/debian/ unstable main non-free contrib

Для того чтобы все же оставаться на lenny прописываем:

enisey:~# cat /etc/apt/apt.conf
APT::Default-Release "stable";
enisey:~#

далее aptitude update. Поскольку изначально Debian на Hp Mini, ставился с помощью образа флэшки для установки на eeepc, c i486-ядром, то между делом я обновил ядро из unstable до linux-image-2.6.30-1-686. После чего был установлен module-assistant, и сделано m-a prepare. Далее, поскольку в module assistant broadcom-sta я не заметил руками было установлено два пакета:

i broadcom-sta-common - Common files for the Broadcom STA Wireless driver
i broadcom-sta-source - Source for the Broadcom STA Wireless driver

После чего драйвер можно было собрать и установить с помощью m-a.

modrpobe wl, и /sbin/iwconfig показало что появился таки беспроводный интерфейс.

Текущая установка Debian у меня выполнена в духе минимализма - опять же кроме браузера, читалок, и пиджина из GUI мне ничего не надо, поэтому DE нет, соответственно даже если network manager вменяемо работает в Gnome - для меня сейчас это бесполезно. Тащить Gnome ради апплета, который непонятно как присобачивать к xmonad'у не сильно хочется. Более альтернативных способов управления network manager'ом не нагуглил, хотя не особо старался. Вспомнил что в былые времена пользовался wifi-radar - и в принципе он меня во всем устраивал, поставил его и на этот раз(вариант настраивать wifi через interfaces отметается). Программа простая, неприхотливая, и делает все что мне надо(в зависимостях, правда, python-gtk, но это не сильно страшно):

На этом этапе долго тупил, оказывается кнопка включения/выключения wifi таки работает и он был выключен, а я не заметил сразу :)

Если все работает, по советам надо сделать echo "wl" >> /etc/modules. Сделал и я, ушел в перезагрузку, и после перезагрузки увидел странное: модуль загружен, но... разрешение стало очень маленьким(наверное 640х480), убрал модуль из modules - перезагрузка - разрешение нормальное.

Решение "в лоб", которое почти работает: грузить модуль, и соответственно wifi-radar после загрузки Х-ов. Для этого, в /etc/rc2.d:

ls S99* | while read i; do echo mv $i ${i//S99/S98}; done | sh
mv S20wifi-radar S99wifi-radar

и в /etc/init.d/wifi-radar в start было дописано вот так:

("start")
vpnc-disconnect >/dev/null 2>&1
rmmod b43
modprobe lib80211_crypt_tkip
modprobe wl
log_begin_msg "Starting wifi-radar daemon..."
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec "${WR_BIN}" -- -d >/dev/null 2>&1 &
exit $?
;;

Скорее всего с точки зрения дебиановской идеологии коряво - но работает. Единственное что - когда перезапустишь xdm - разрешение портится, не очень страшно, но неприятно, надо будет все же поискать источник глюка. Во время написания этого поста wifi не вырубался(писал прямо в blogger), что радует.


UPDATE:
Дописал "PanelSize" "1024x600" в /etc/X11/xorg.conf:

Section "Device"
Identifier "Configured Video Device"
Driver "openchrome"
Option "PanelSize" "1024x600"
EndSection

Проблема с стартом Х-ов после загрузки модуля wifi пропала. Полтергейст какой-то.

1 комментарий:

smartly комментирует...

удали NetworkManager и установи wicd