硬件配置:
IBM ThinkPad X40
Atheros 5008 (AR5416 chip)
很幸运从很久以前我就在无意之中选择了一块FreeBSD Handbook当作范例介绍的Atheros无线网卡。
所以内核配置可以完全按照Handbook的提示修改。
不过就算不是Atheros的无线网卡也没有关系,我们可以通过FreeBSD Hardware Notes找到可能匹配的驱动程序。
在内核配置文件中加入:
device wlan # 802.11 support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
device ath # Atheros pci/cardbus NIC's
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for ath
|
然后重新编译并安装新的内核。在启动之后,输入dmesg可以看到下面的信息:
ath0: <Atheros 5416> mem 0xd0200000-0xd020ffff irq 21 at device 2.0 on pci2
ath0: [ITHREAD]
ath0: AR5416 mac 13.10 RF5133 phy 8.1
|
表示无线网卡已经被顺利驱动了。
然后在root权限下输入下面的命令,以检测无线AP能否被顺利找到。
ifconfig wlan0 create wlandev ath0
ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
001D738FC1CB 00:1d:73:8f:c1:cb 1 54M -79:-96 100 EPS RSN WPA WME HTCAP ATH WPS
001D738FC1CB-1 02:1d:73:8f:c1:cb 1 54M -80:-96 100 EPS WPA WME HTCAP ATH
FON_FREE_IN... 00:18:84:ac:d3:29 1 54M -84:-96 100 E HTCAP WME
Dusun Bahagia 00:1c:df:89:c7:cf 6 54M -81:-96 100 EP WPA RSN MESHCONF MESHCONF WPS HTCAP WME
linkpco_m 00:0f:66:6a:04:ac 6 54M -93:-96 100 E
Colt 00:0d:0b:55:e9:d9 11 54M -66:-96 100 EP WPA
00074096D132 00:07:40:c4:ad:3c 11 54M -93:-96 100 E
WARPSTAR-B7... 00:0d:02:91:f2:2e 7 54M -90:-96 100 EP ATH TDMA
|
第一条命令的作用是通过硬件的ath0设备建立逻辑的wlan0设备。
(在FreeBSD 7.X时代,是可以直接使用硬件设备的。)
第二条命令的作用则是启用wlan0设备,并让它检测范围内的AP。
我这里能找到很多AP,而我只截选了一段。
接下来就是针对特定的AP进行配置了。
在/etc/rc.conf中加入:
wlans_ath0="wlan0"
ifconfig_wlan0="mode 11g ssid Colt WPA DHCP"
|
第一行是自动建立wlan0设备。
第二行是通过wlan0设备联结到SSID编号为Colt,由WPA方式加密的802.11g无线网络AP上,并通过该AP的DHCP自动获取本机的IP地址。
而要通过WPA的认证,我们还需要做一些配置。由于目前家庭使用的WPA大多都是WPA-Personal级别的加密,所以本篇也围绕它来做介绍。
根据Handbook,我们要在/etc/wpa_supplicant.conf中填写AP的SSID和WPA密码。而/etc/wpa_supplicant.conf在安装FreeBSD之后并不存在,所以可以手工建立这个文件。
touch /etc/wpa_supplicant.conf
|
然后在文件中按照各式填写必要的信息:
network={
ssid="Colt"
psk="password"
}
|
至此,无线网络应该已经被启用了,IP地址也已经被分配,连重新启动系统都不需要。赶紧用ifconfig看一下当前的网络状态吧。
ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:23:6c:bf:a1:45
inet 192.168.11.10 netmask 0xffffff00 broadcast 192.168.11.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid Colt channel 11 (2462 Mhz 11g) bssid 00:0d:0b:55:e9:d9
regdomain 100 indoor ecm authmode WPA privacy ON deftxkey UNDEF
TKIP 2:128-bit txpower 20 bmiss 7 scanvalid 450 bgscan bgscanintvl 300
bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS wme burst
roaming MANUAL
|
如果没有启动网络,可以输入下面的命令手工启动:
/etc/rc.d/netif start
或者
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
|
最后,遇到问题多问Handbook。英语版的Handbook状态总是最新的,非常有参考价值。