FreeBSD下的无线网络连接

作者: JavasBoy 分类: FreeBSD 发布时间: 2014-03-29 23:04 ė13,480 views 6没有评论

一、网卡的驱动

首先要搞清楚机器的无线网卡类型,我的无线网卡 网件(Netgear)WNA1000M 150M迷你USB无线网卡。
插入系统,自动识别到,可在 /var/log/messages 里看到如下信息:

Mar 29 22:29:16 rzsing kernel: ugen2.2:  at usbus2
Mar 29 22:29:16 rzsing kernel: urtwn0:  on usbus2

系统版本如下:

root@rzsing:~ # uname -a
FreeBSD rzsing 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014    root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

二、加载模块

修改/boot/loader.conf,加入

################
### Wireless ###
################
legal.realtek.license_ack=1    # 许可
firmware_load="YES"    # 不加载这个会提示缺少firmware模块
if_urtwn_load="YES"    # 这个就是这款USB无线网卡的内核驱动

wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"

以便自动启动 urtwn。 除了 wlan 模块,必须手动指明驱动 wlan_wep、wlan_ccmp 和 wlan_tkip。

wlan_ccmp 和 wlan_tkip 这两个驱动只是针对 WPA 和 802.11i 安全协议。

三、无线网络连接

无线路由的设置选择使用 WPA-PSK 安全类型。

1、建立 /etc/wpa_supplicant.conf 内容如下:

network={
ssid="freebsdap"
psk="xxxxxxxx"
}

其中 freebsdap 是我的无线路由器的 SSID,psk(即 pre-shared key )由用户设定,与无线路由的 psk 密钥一致。不管是用 WEP 还是 WPA,如果不想自己的机器被黑,设定密码是十分必要的。

2、在 /etc/rc.conf  中加入

# wifi
wlans_urtwn0="wlan0"    # 这里一定要跟 ifconfig 列出来的无线网卡名称一致
ifconfig_wlan0="WPA DHCP"

这样在启动的时候就能从路由器自动分配到 IP 地址。
首先,我们确认网卡被识别。

# dmesg | grep Wireless
root@rzsing:~ # dmesg | grep Wireless
# 这块是笔记本自带的,没搞定,所以就买了下面这个 USB 无线网卡
iwn0:  mem 0xf7f00000-0xf7f01fff irq 17 at device 0.0 on pci3

# dmesg | grep urtwn0
urtwn0:  on usbus2
urtwn0: MAC/BB RTL8188CUS, RF 6052 1T1R    # 原来是 RTL8188CUS 芯片

然后

ifconfig wlan0 create wlandev urtwn0
ifconfig wlan0 up scan
service netif start     # 这个能自动帮你连接无线获取 IP 地址,当然如果配置正确的话,开机就可以自动连接无线。

# ifconfig urtwn0

其中 “status: associated” 表示无线网络已经连接。

四、固定你的 resolv.conf

# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

如果你用 DHCP,有一个问题可能会不断地搔扰你,
就是 /etc/resolv.conf 里所记录的 DNS 会时不时地被修改。

当然除了暴力地让/etc/resolv.conf不能被修改外。

# 增加
chflags schg /etc/resolv.conf
# 去掉
chflags noschg /etc/resolv.conf

还可以很简单地解决此问题,往 /etc/dhclient.conf 里添加

prepend domain-name-servers 8.8.8.8, 8.8.4.4;
# See ``man 5 dhclient.conf'' for details.

详细配置 WIFI 可查看 FreeBSD 官方文档:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-wireless.html

可参考这篇 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-aggregation.html#networking-lagg-wired-and-wireless

五、待机后的恢复

ifconfig lagg0 up laggproto failover laggport em0 laggport wlan0     # 待机后 wifi 会不在 lagg0 接口上,重新运行下这条命令添加上去。

ifconfig lagg0 up laggproto failover laggport em0 laggport wlan0 192.168.1.120 netmask 255.255.255.0 defaultrouter 192.168.1.1      # 待机后 wifi 会不在 lagg0 接口上,重新运行下这条命令添加上去。

ifconfig lagg0 inet 192.168.1.120 netmask 255.255.255.0
route add default 192.168.1.1  # 添加默认路由,查看路由信息命令: netstat -r 或者 route get default

本文出自 刘荣星的博客,转载时请注明出处及相应链接。

本文永久链接: https://www.liurongxing.com/freebsd-wireless-networking-basics.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部