суббота, 20 ноября 2010 г.

Настройка Wi-Fi на ноутбуке Dell Ibspiron 640m

Описание настройки драйвера  беспроводной сетевой Wi-Fi карты и соединения с не зашифрованной точкой доступа в операционной системе ArchLinux.


Основное взято из трёх статей Archwiki:
Общая статья по WiFi
Статья по Wi-Fi карте BCM4312
Статья про менеджер сетей Wicd

Анализ оборудования ноутбука
$ lspci -v
...
02:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
    Subsystem: Dell Inspiron E1405
    Flags: bus master, fast devsel, latency 64, IRQ 17
    Memory at ef9fe000 (32-bit, non-prefetchable) [size=8K]
    Capabilities:
    Kernel driver in use: b44
    Kernel modules: b44
...
0c:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)
    Subsystem: Dell Wireless 1390 WLAN Mini-Card
    Flags: bus master, fast devsel, latency 0, IRQ 17
    Memory at efdfc000 (32-bit, non-prefetchable) [size=16K]
    Capabilities:
    Kernel driver in use: wl
    Kernel modules: wl, ssb

$ lspci -nn | grep 14e4
02:00.0 Ethernet controller [0200]: Broadcom Corporation BCM4401-B0 100Base-TX [14e4:170c] (rev 02)
0c:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)
Указанные дальше действия работают только для конкретных моделей беспроводных сетевых карт, одна из которых установлена в данной модели ноутбука. Список карт и подробности есть здесь.

Установка программного обеспечения
# pacman -S wireless_tools xfce4-notifyd wicd
# yaourt -S broadcom-wl
wireless_tools - утилита управления беспроводными сетями
xfce4-notifyd - всплывающие уведомления
wicd - менеджер проводных и беспроводных сетей
broadcom-wl - драйвер сетевой Wi-Fi карты

Пробная загрузка модулей
# rmmod b43
# modprobe lib80211_crypt_tkip
# modprobe wl

Если сообщений об ошибках нет, значит можно править /etc/rc.conf
Запрещаем загрузку модулей b43 и ssb, которые подгружаются по умолчанию, а затем загружаем сначала модули беспроводной карты
lib80211_crypt_tkip и wl, после чего загружается модуль b44 проводного LAN-интерфейса. В статье про карту BCM4312 указано, что модуль b44 LAN-интерфейса корректно загружается только после драйверов Wi-Fi карты.

В секцию MODULES модули вписываются обязательно именно в указанном порядке.
# vim /etc/rc.conf
MODULES=(... !b43 !ssb lib80211_crypt_tkip wl b44 ...)

В раздел NETWORKING файла /etc/rc.conf вносится следующее
eth0="dhcp" # WLAN WiFi
eth1="dhcp" # LAN Ethernet
INTERFACES=(... !eth0 !eth1)

Запрещаем загрузку стандартных демонов сети, загружаем вместо них wicd
В раздел DAEMONS добавляем следующее:
DAEMONS=(... dbus ... !network !dhcdbd @wicd ...)

Если среди загружаемых демонов есть hal, то он автоматически загружает нужный dbus, который не надо в этом случае прописывать в данной секции.

В итоге получаем:
eth0 - беспроводной Wi-Fi интерфейс
eth1 - проводной LAN-интерфейс

После перезагрузки, при наличии поблизости не зашифрованной точки доступа, можно попробовать через консоль подключиться к ней. Сначала включаем соответствующий сетевой интерфейс, потом сканируем наличие беспроводных сетей в округе, выбираем не зашифрованную, передаём её идентификатор (essid) следующей команде, которая производит подключение к точке доступа. Последняя команда dhcpcd в данном случае автоматически получает IP-адрес в сети, к которой производится подключение.

# ifconfig eth0 up
# iwlist eth0 scan
# iwconfig eth0 essid ESSID_OF_FREE_POINT
# dhcpcd eth0

После успешного выполнения этих команд должно появится интернет-соединение. Если тестовый запуск прошёл нормально, добавляем пользователя USERNAME в соответствующую группу, чтобы он получил права на управление сетями.
# gpasswd -a USERNAME network

Прописываем в настройках dbus, что члены группы "network" имеют разрешение на управление сетями через графический интерфейс Wicd.
# vim /etc/dbus-1/system.d/wicd.conf
<!-- This Unix group will have permission to use Wicd's gui -->
    <!-- policy group="users" -->
    <policy group="network">
Если соединение не устанавливается, можно попробовать создать правило для udev, как описано в статье про BCM4312
# vim /etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0"
SUBSYSTEM=="net", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="eth1"
ATTR{address} - сюда вписываются MAC-адреса интерфейсов eth0 (беспроводной Wi-Fi) и eth1 (проводной LAN), полученные выполнением команды:
$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr aa:bb:cc:dd:ee:ff 
          inet addr:000.000.000.000  Bcast:255.255.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:576  Metric:1
          RX packets:10795 errors:0 dropped:0 overruns:0 frame:128768
          TX packets:11973 errors:32 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3256934 (3.1 Mb)  TX bytes:2569978 (2.4 Mb)
          Interrupt:17 Base address:0xc000 

eth1      Link encap:Ethernet  HWaddr ff:ee:dd:cc:bb:aa  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:17 
Остаётся только перелогиниться (или перезагрузить компьютер), и сетевыми интерфейсами можно будет управлять через графический интерфейс wicd-gtk.

Комментариев нет:

Отправить комментарий