понедельник, 13 апреля 2009 г.

Установка официального драйвера broadcom BCM4312 в Linux

Когда я только стал обладателем ноутбука Acer Extensa 4220, я поставил на него Ubuntu 8.04. Всё заработало из коробки. Но лично мне больше нравится исходный Debian, поэтому его я и решил поставить. Все заработало кроме беспроводного интерфейса wifi. Здесь я напишу каким образом удалось завести сеть на Acer Extensa 4220.

Состав железа.

$ lspci | grep Net
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)
04:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
Видно, что беспроводному интерфейсу соответствует BCM4312. Оказалось, что с недавнего времени появился официальный драйвер. Скачать его можно на официальном сайте. В моем случае, архитектура 32-bit. Там же лежит файл README.txt. Итак, скачали куда-нибудь в домашнюю директорию (в домашней директории делайте все операции от обычного, непривилегированного пользователя), теперь распакуем и перейдем в новую директорию:
tar xzvf hybrid-portsrc-x86_32-v5_10_27_14.tar.gz
cd hybrid-portsrc-x86_32-v5_10_27_14
Чтобы корректно установить модуль, необходимо поставить (имея права суперпользователя) основные средства для работы с ядром, а именно, заголовочные файлы:
aptitude install linux-headers-`uname -r`
(uname -r дает вывод вашей версии ядра) и минимальные средства для компиляции:
aptitude install build-essential
Далее, все делаем по руководству README.txt.
make -C /lib/modules/`uname -r`/build M=`pwd` clean
make -C /lib/modules/`uname -r`/build M=`pwd`
Самое время посмотреть наличие в текущей директории файла искомого wl.ko.
$ ls
built-in.o  Makefile       Module.symvers  wl.ko     wl.mod.o
lib         modules.order  src             wl.mod.c  wl.o
Далее в руководстве не рекомендуется смешивать возможные драйверы broadcom. Поэтому необходимо удалить модули bcm43xx, b43, b43legacy:
rmmod bcm4312 b43, b43legacy
Включаем новый модуль:
modprobe ieee80211_crypt_tkip
insmod /путь/до/файла/wl.ko
Теперь проверяем работоспособность:
sudo iwconfig
Если что-то уже есть, обладающее wireless extension, значит всё поставили правильно. Чтобы всё это стартовало автоматом, добавляем в скрипт /etc/rc.local до exit 0:
modprobe ieee80211_crypt_tkip
insmod /путь/до/файла/wl.ko
Лично я положил файл туда, где и положено лежать всем модулям:
sudo cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/

Чтобы не грузились вышеперечисленные модули broadcom, в файле /etc/modprobe.d/blacklist добавим:

blacklist bcm4312
blacklist b43
blacklist b43legacy
Хотя, лично у меня, и так не было этих модулей.

Пока гуглил и искал сайт с драйверами, нашел замечательное сообщение, описывающее эту же процедуру установки официальных драйверов.

Копируете статью - поставьте ссылку на оригинал!

2 комментария:

  1. Уважаемый Максим! Огромное нечеловеческое спасибо за этот мануал. У меня просто нет слов сейчас, когда всё просто работает... Огромное спасибо.

    Артём, lord.tula@gmail.com

    ОтветитьУдалить
  2. Не за что! Очень рад, что оказалось полезным!

    ОтветитьУдалить