Прошло некоторое время, входе экспериментов я успел поставить на нетбук 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 пропала. Полтергейст какой-то.