FreeBSD и Wi-Fi: настройка
В общем то тут нет ничего особо сложного. Настройка производилась на ноутбуке Asus Z99L. Пересборка ядра может потребоваться в том случае, если в конфиг ядра не включена поддержка имеющегося беспроводного интерфейса. Но в GENERIC’е есть всё :)
Лично меня интересовал вот этот момент конфига:
1 2 3 | device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath |
Итак, как оно было…
Смотрим, как у нас ядро детектит карточку. Идем в /var/run/dmesg.boot и находим там
1 2 3 4 | ath0: mem 0xfdcf0000-0xfdcfffff irq 17 at device 0.0 on pci2 ath0: [ITHREAD] ath0: unable to attach hardware; HAL status 13 device_attach: ath0 attach returned 6 |
Смотрим вывод pciconf -lv если устройство встроенное или usbdevs если не очень :)
1 2 3 4 5 6 | pciconf -lv ath0@pci0:2:0:0: class=0x020000 card=0x10261a3b chip=0x001c168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' device = 'HDAUDIOFUNC_01&VEN_1095&DEV_1392&SUBSYS_10280242&REV_1000 (USBVID_147E&PID_20165&B71A446&0&1)' class = network subclass = ethernet |
Становится понятно, какой модуль надо подгрузить, чтоб появился сетевой интерфейс
1 | kldload if_ath |
Прописываем в автозагрузку в /boot/loader.conf:
1 | if_ath_load="YES" |
Появился сетевой интерфейс
1 2 3 4 5 6 7 8 | ath0: flags=8843 metric 0 mtu 1500 ether 00:15:af:6a:36:4c media: IEEE 802.11 Wireless Ethernet autoselect (autoselect) status: no carrier ssid "" channel 1 (2412 Mhz 11g) authmode WPA privacy ON deftxkey UNDEF txpower 31.5 bmiss 7 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi11g 7 roam:rate11g 5 protmode CTS burst roaming MANUAL |
Осталось подключиться. Подключаться будем с помощью такой штуки, как wpa_supplicant. Настругаем быстренько конфиг для нее с учетом настроек нашей wi-fi сети. В моём случае он выглядит так:
1 2 3 4 5 6 7 8 9 10 11 | [lycane]:cat /etc/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant eapol_version=1 fast_reauth=1 network={ ssid="wireless" key_mgmt=NONE psk="12345678" proto=WPA RSN key_mgmt=WPA-PSK WPA-EAP } |
Примеры для других настроек сети можно поглядеть например тут — /usr/share/examples/etc/wpa_supplicant.conf. Ну и конечно же man wpa_supplicant.conf не лишним будет прочитать.
Пробуем запустить:
1 2 3 4 5 | [lycane]:sudo wpa_supplicant -Dbsd -iath0 -c/etc/wpa_supplicant.conf Trying to associate with 00:24:b2:51:5a:75 (SSID='wireless' freq=2412 MHz) Associated with 00:24:b2:51:5a:75 WPA: Key negotiation completed with 00:24:b2:51:5a:75 [PTK=TKIP GTK=TKIP] CTRL-EVENT-CONNECTED - Connection to 00:24:b2:51:5a:75 completed (auth) [id=0 id_str=] |
Видим, что всё получилось хорошо.
Для того, чтоб подключение к беспроводной сети происходило при загрузке — в /etc/rc.conf пишем такую строчку:
1 | ifconfig_ath0="WPA DHCP" |
Теперь можно спокойно гулять с ноутбуком по всей жилплощади ;)
Есть еще весьма простая маленькая qt-графическая оболочка для wpa_supplicant — /usr/ports/net/wpa_gui, позволяющая в удобной форме производить подключение к беспроводной сети.