FreeBSD и Wi-Fi: настройка
В общем то тут нет ничего особо сложного. Настройка производилась на ноутбуке Asus Z99L. Пересборка ядра может потребоваться в том случае, если в конфиг ядра не включена поддержка имеющегося беспроводного интерфейса. Но в GENERIC’е есть всё :)
Лично меня интересовал вот этот момент конфига:
[cc lang=»make»]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 [/cc]
Итак, как оно было…
Смотрим, как у нас ядро детектит карточку. Идем в /var/run/dmesg.boot и находим там
[cc lang=»text»]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[/cc]
Смотрим вывод pciconf -lv если устройство встроенное или usbdevs если не очень :)
[cc lang=»text»]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[/cc]
Становится понятно, какой модуль надо подгрузить, чтоб появился сетевой интерфейс
[cc lang=»bash»]kldload if_ath[/cc]
Прописываем в автозагрузку в /boot/loader.conf:
[cc lang=»bash»]if_ath_load=»YES»[/cc]
Появился сетевой интерфейс
[cc lang=»bash»]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
[/cc]
Осталось подключиться. Подключаться будем с помощью такой штуки, как wpa_supplicant. Настругаем быстренько конфиг для нее с учетом настроек нашей wi-fi сети. В моём случае он выглядит так:
[cc lang=»bash»][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
}[/cc]
Примеры для других настроек сети можно поглядеть например тут — /usr/share/examples/etc/wpa_supplicant.conf. Ну и конечно же man wpa_supplicant.conf не лишним будет прочитать.
Пробуем запустить:
[cc lang=»bash»][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=][/cc]
Видим, что всё получилось хорошо.
Для того, чтоб подключение к беспроводной сети происходило при загрузке — в /etc/rc.conf пишем такую строчку:
[cc lang=»text»]ifconfig_ath0=»WPA DHCP»[/cc]
Теперь можно спокойно гулять с ноутбуком по всей жилплощади ;)
Есть еще весьма простая маленькая qt-графическая оболочка для wpa_supplicant — /usr/ports/net/wpa_gui, позволяющая в удобной форме производить подключение к беспроводной сети.