在FreeBSD 8.0下配置无线网卡


硬件配置:
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状态总是最新的,非常有参考价值。

Tagged on:

6 thoughts on “在FreeBSD 8.0下配置无线网卡

  1. Pingback: FreeBSD安装记 ­ CodeCake

  2. IK

    你好,我使用的AR5413芯片的无线网卡,在FREEBSD8.0下无法使用HOSTAP模式。atheros0是建立的逻辑设备,ifconfig atheros0 mediaopt hostap时显示ifconfig: SIOCSIFMEDIA(media):Device not configured。这个问题如何解决?下面是网卡相关信息。设置IP和子网掩码,设置SSID这些之后尝试还是同样问题。
    atheros0: flags=8802 metric 0 mtu 1500
    ether 00:0e:8e:0d:3d:58
    media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
    status: no carrier
    ssid \\ channel 1 (2412 Mhz 11b)
    regdomain 55 indoor ecm authmode OPEN privacy OFF txpower 20 bmiss 7
    scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
    roam:rate 1 wme burst bintval 0

  3. Lingfeng Xiong

    @IK:
    hi,
    我是AR5005芯片组的无线网卡。执行
    ifconfig wlan0 create wlandev ath0 wlanmode hostap
    即可成功创建一个hostap模式的虚拟节点 🙂
    执行如 ifconfig wlan0 ssid XXXXX
    ifconfig wlan0 channel 9
    ifconfig wlan0 mode 11g
    即可设置各类参数
    最后执行 ifconfig wlan0 up 就ok了 🙂
    欢迎给我发邮件或者去我blog:)

  4. Mike Ma

    您好,我最近才转到FreeBSD,不过我这里有点问题。不知道为什么wpa_supplicant后,DHCP无法获取到IP地址,ifconfig中inet是0.0.0.0,路由器的DHCP功能已开了。
    PS. 我是完全照H

  5. LW

    FB8下的ath驱动有问题,FB9没有任何问题,根据手册内容照做一次性就过了。

发表评论

电子邮件地址不会被公开。