openSUSE :: Broadcom wireless
Большинство wifi контроллерв поддерживаются ядром openSUSE из коробки. Тем не менее, некоторые драйверы (именно они обеспечивают поддержку контроллеров/устройств) не включаются в ядро из-за проблем с лицензией. В эту группу входит и модуль для broadcom контроллера, счастливым обладателем которого на своем lenovo S12 являюсь и я 🙂
Первый шаг в настройке wifi – определение чипсета (набора микросхем) и его производителя. Для этого можно воспрользоваться либо lspci (или lsusb, если карта подключенна через USB), либо hwinfo:
> /sbin/lspci | grep Network 07:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
После того как мы узнали, что на борту у нас BCM4312 чип от broadcom, заходим к ним на страницу и смотрим, если ли у них драйвер для нашей wifi. Драйвер есть, и поддерживает он не только bcm4312 чипы, но и bcm4313, bcm4321, bcm4322, bcm43224, bcm43225, bcm43227 и bcm43228. Мы можем скачать архив с их сайта и установить драйвер из исходников, но лучше использовать rpm, инсталляция с помощью которого значительно упростит дальнейшую настройку wifi.
Кстати, если у вас более старый чип (bcm4303, bcm4306, bcm4309, bcm4311, bcm4318), вы можете использовать firmware из пакета b43-fwcutter:
> sudo zypper in b43-fwcutter > sudo /usr/sbin/install_bcm43xx_firmware
Вы должны быть online пока не завершится установка.
Возвращаемся к чипу BCM4312. Необходимые пакеты лежат в suse-репозитории packman. Можно подключить вручную этот репозиторий и установить пакет broadcom-wl, который, в зависимости от используемого ядра, потянет за собой еще пару пакетов-зависимостей.
> sudo zypper ar http://packman.inode.at/suse/openSUSE_11.4 packman > sudo zypper mr -r packman > sudo zypper in broadcom-wl
То же самое можно сделать автоматически через механизм one-click-install. Для этого просто нажмите на иконку. Обратите внимание, что в примере я подключаю репозиторий openSUSE 11.4. One-click-install-метод автоматически добавит репозиторий для используемой вами версии openSUSE(12.1/12.2?).
После установки пакета в списке подгруженных модулей мы видим наш новый драйвер:
> pwd
/sys/bus/pci/devices/0000:07:00.0
> l | grep driver
lrwxrwxrwx 1 root root 0 Aug 26 22:20 driver -> ../../../../bus/pci/drivers/wl/
> lsmod | grep wl
wl 2463028 0
cfg80211 154761 1 wl
lib80211 5542 2 lib80211_crypt_tkip,wl
# hwinfo --wlan --short
network:
eth1 Broadcom BCM4312 802.11b/g
Имя нового сетевого интерфейса – eth1, вместо ожидаемого wlan0, но это не играет особой роли. Теперь выходим в инет или просто подключаемся к какой-нибудь wifi-сети. Список сетей, который видит наша карта, можно посмотреть с помощью iwlist:
> /usr/sbin/iwlist eth1 scan | grep ESSID ESSID:"EasyBox-5DD252" ESSID:"EasyBox-3CC555" ESSID:"alex" ESSID:"x23aatm.144" ESSID:"WLAN-4B8775" ESSID:"Arcor-C82816" ESSID:"Hier gibts WLAN" ESSID:"Leega-Speed"
Моя сеть называется “alex”, и для выхода в инет я буду использовать не NetworkManager, который является дефолтным для этого в openSUSE, а wpa_supplicant.
Единственное, что надо сделать перед его запуском – сгенерировать WPA/WPA2-Enterprise PSK для нашей SSID. Для этого запускаем wpa_passphrase и передаем ей два параметра – SSID и пароль. Например:
> wpa_passphrase alex alexalex network={ ssid="alex" #psk="alexalex" psk=9036fc877e43a122dab5454ecbb3245d8bd4edbc50d903c8a9b6182311522517 }
Это вывод wpa_passphrase. Копируем теперь это в любой файл, например в ~/wifi.conf и добавляем в начало две строчки:
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel
Все, конфиг готов (более подробная информация о синтаксисе/параметрах конфиг-файла). Теперь скармливаем его wpa_supplicant, указывая также имя устройства, под которым драйвер зарегистрировал wifi-карту. Не забываем после этого сделать dhcp-запрос:
> wpa_supplicant -i eth1 -c wifi.conf & > dhclient eth1
Все достаточно просто, проблем возникнуть не должно. Через ifconfig проверь IP и, если dhcp-сервер ответил, доступ в сеть открыт. Обрати внимание, что для настройки wifi и выхода в сеть нам не понадобился ни X-сервер, ни какие-либо GUI.
Привет, может это уже не актуальная тема, но спрошу – у меня на OpenSUSE 12.1 (wi-fi 4313) видит сети, но при подключении постоянно переподключается(спрашивает пароль, либо есть ad-hoc открытый, постоянно говорит что переподключается). В чем может быть проблема?
Привет.
Причин может быть много. Например, при использовании NetworkManager, это может быть баг в апплете (особенно, если это KDE). В логах демона есть что-нибудь?
Причина может быть также в силе сигнала. В этом случае сеть видна, а зайти в нее не получится, потому что процесс авторизации будет постоянно обрываться. У меня была такая проблема в универе, когда точка доступа была на первом этаже, а первая пара – на третьем 🙂
Да, я забыл сказать что ad-hoc я создаю с windows. То есть у меня есть интернет на стационарном компьютере с вин, а подключаюсь с нетбука. Заметил что к обычным точкам он спокойно присоединятется. Подключасюь через Network Manager.
Отлично. на suse 12.3 все заработало.(пришлось только в сетевых настройках yast для интерфеса принудительно прописать маршутезацию)