Руководство по установке b43 драйвера и соответствующей прошивки для Wi-Fi карты Broadcom BCM4312.
Это руководство так же может подойти и для других wi-fi карт от broadcom, совместимых с b43 драйвером.
Список поддерживаемых устройств драйвером b43
Сразу отмечу, что после установки драйвера придется отказаться от использования стандартного Mageia'евского NetApplet'а и подобрать ему альтернативу (причины смотри в тексте руководства), в данном руководстве этой альтернативой будет выступать Network Manager.
Для выполнения действий руководства потребуется подключение к интернету, например, проводное или 3g-модем. Если кроме wi-fi у вас больше никакого подключения нет - прочтите руководство, выкачайте все необходимые пакеты и их зависимости заранее и только потом приступайте.
Не забываем про обозначения для консоли: $ - команда выполняется от простого пользователя, # - команда выполняется от root.
Итак, начнем.
1) Удаляем драйвера и модули, которые будут мешать нам использовать b43.
[console]# urpme dkms-broadcom-wl broadcom-wl-kernel-3.3.6-desktop586-2.mga2 broadcom-wl-kernel-desktop586-latest dkms-ndiswrapper ndiswrapper[/console]
Важно: Обращаю ваше внимание, что broadcom-wl-kernel установлен по версии ядра! У меня desktop586 для kernel-3.3.6, у вас может быть другой.
2) Устанавливаем необходимые утилиты для установки драйвера и прошивки
[console]# urpmi b43-fwcutter b43-tools[/console]
3) Удаляем настройки wi-fi соединения
Mageia Control Center - Сеть и интернет - Удалить подключение

Выбираем там wi-fi подключение, чаще всего с данной wi-fi картой оно будет на интерфейсе eth1 (так уж проприетарный wl драйвер сделан... ).
Выбираем очень внимательно, дабы не удалить случайно, например, свое проводное подключение к интернету.
4) На всякий случай заносим в blacklist модули
[console]# echo "blacklist wl" >> /etc/modprobe.d/blacklist
# echo "blacklist ndiswrapper" >> /etc/modprobe.d/blacklist
# echo "" >> /etc/modprobe.d/blacklist[/console]
Обращаю ваше внимание на последнюю команду, последняя строчка в /etc/modprobe.d/blacklist должна быть пустая, иначе предпоследняя может оказаться недействительна. А echo "" как раз и добавит пустую строку.
5) Перезагружаем компьютер
Если до этого все было сделано верно, то нет никакого wi-fi подключения в NetApplet'е, сетевом центре и т.д.
Важно: Если вдруг будете проверять отсутствие (откроете сетевой центр или поиск оборудования) и предложит скачать dkms-broadcom-wl и broadcom-wl-kernel - отказывайтесь и тем более закрывайте окно загрузки если начнет скачивать, вас не спросив.
6) Скачиваем, распаковываем и устанавливаем b43 драйвер подходящий для ядер kernel 3.2+
В репозиториях Mageia доступен b43-fwcutter 0.15 версии, как раз распаковывающий необходимый нам драйвер. Для более старого ядра потребовалось бы еще собрать более старый b43-fwcutter.
[console]$ cd ~
$ wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
$ tar xjf broadcom-wl-5.100.138.tar.bz2
$ cd broadcom-wl-5.100.138/linux
$ su
<root-пароль>
# b43-fwcutter -w /lib/firmware wl_apsta.o
# modprobe b43[/console]
7) Создаем Wi-Fi подключение с нужным нам драйвером
Пункт достаточно объемный, по этому его содержимое спрятано под спойлер.
Показать

Возможно, появится диалоговое окно с предложением установить dkms-broadcom-wl и broadcom-wl-kernel - отказываемся.

В левой колонке выбираем Карта ethernet, открываем выпадающий список, нажимаем на Wi-Fi карту и нажимаем на кнопку в правой нижней части окна - "Запустить утилиту настройки"

Выбираем соединение "Беспроводная связь (Wi-Fi)"

Среди предлагаемых интерфейсов должен быть wlan0: wlan0 (наш b43 драйвер), его и выбираем.

Далее попросит выбрать вашу точку доступа, ввести пароль для нее и т.д.
На предпоследней странице нужно обязательно выбрать пункт "Allow interface to be controlled by Network Manager"

После спросит устанавливать ли соединение сразу - отказываемся.
8 ) Перезагружаем компьютер
Если до этого все было сделано верно, то после перезагрузки wi-fi подключится к вашей точке доступа.
ВАЖНО: Если откроете сетевой центр или поиск оборудования, просмотр беспроводных сетей и т.д. - предложит скачать dkms-broadcom-wl и broadcom-wl-kernel, ни в коем случае не делать этого, отказывайтесь и тем более закрывайте окно загрузки если начнет скачивать, вас не спросив. Если эти пакеты скачаются и установятся, даже несмотря на записи в блеклисте они не дадут работать b43 драйверу!.
9) Избавляемся от NetApplet и заменяем его на Network Manager
Из-за того, что просмотр беспроводных сетей и любой другой информации через NetApplet будет влечь за собой попытки установки dkms-broadcom-wl и broadcom-wl-kernel (почему нельзя этого допускать расписано в пункте 8 ), придется заменить его на что-то другое. Я заменил на Network Manager.
Пункт достаточно объемный, по этому его содержимое спрятано под спойлер.
Показать
[console]# urpmi networkmanager networkmanager-applet[/console]
После установки он должен автоматически прописаться в автозагрузку (по крайней мере в LXDE так).
Заранее лечим его от ошибок подключения: создаем файл
/etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla
[console]# leafpad /etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla[/console]
С содержимым
[nm-applet]
Identity=unix-group:%user%
Action=org.freedesktop.NetworkManager.*
ResultAny=yes
ResultInactive=no
ResultActive=yesВместо %user% будет главная группа вашего пользователя, обычно совпадает с логином, т.е. у пользователя vasya обычно главная группа vasya. Посмотреть точно главную группу можно в Mageia Control Center - Система - Управление пользователями.
Вместо leafpad (тектовый редактор LXDE) может быть любой другой текстовый редактор - хоть консольный, хоть графический. Как вам самому удобней.
Убираем NetApplet из автозагрузки.
В LXDE для этого можно просто убрать в галочку с NetApplet в Меню - Утилиты - lxsession-edit . Подозреваю, что и в других граф. окружениях можно как-то убрать с автозагрузки схожим методом.
Так же можно попробовать так:
Правой кнопкой мыши на иконку NetApplet'а в трее и убрать галочку с "Всегда запускать на старте"

10) Перезагружаем компьютер и делаем настройку Network Manager.
Если все сделано верно, то в трее не будет NetApplet'а, зато будет Network Manager.
Сразу Network Manager не подхватил сеть, т.к. не знает пароля.
- Нажимаем на иконку Network Manager'а левой кнопкой мыши и выбираем свою точку доступа.
- После нажимаем на иконку Network Manager'а правой кнопкой мыши и выбираем "Изменить соединения", переходим на вкладку "Беспроводная сеть", нажимаем на свою точку доступа, нажимаем изменить.
- На вкладке безопасность прописываем пароль от свой точки доступа, нажимаем "Сохранить".
- После этого снова нажимаем на иконку Network Manager'а левой кнопкой мыши и выбираем свою точку доступа.
Если все сделано правильно Wi-Fi соединение будет установлено. И будет устанавливаться каждый раз автоматически (с этой точкой доступа) при запуске системы.