Chinaunix首页 | 论坛 | 博客
  • 博客访问: 351620
  • 博文数量: 62
  • 博客积分: 1441
  • 博客等级: 上尉
  • 技术积分: 615
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-15 02:26
文章分类

全部博文(62)

文章存档

2015年(4)

2011年(6)

2010年(19)

2009年(9)

2008年(8)

2007年(4)

2006年(12)

分类: BSD

2009-06-29 20:36:10

FreeBSD中Intel 3945ABG无线网卡的安装与使用

由于本本的无线模块是Intel 3945ABG,默认情况下FB 7.1内核中并不支持,所以本本一直无法使用无线网络成为我的心病。但默认不支持不代表不支持。今天闲来无事无事跑到官方去看了下HCL,发现从7.0开始就对它提供支持了的,不过需要编译内核而已。

一、内核编译及相关准备

通过HCL()我找到了wpi(4)这个设备接口,man后得到如下信息:“To compile this driver into the kernel, place the following lines in your kernel configuration file(要编译该驱动到内核中,添加以下行到你的内核配置文件中):

    device    wpi
    device    pci
    device    wlan
    device    wlan_amrr
    device    firmware

接下来添加以下五行到/boot/loader.conf中,不过我添加到了/boot/defaults/loader.conf中,应该不会有什么问题。先测试一下。

    if_wpi_load="YES"
    wlan_load="YES"
    wlan_amrr_load="YES"
    firmware_load="YES"
    wpifw_load="YES"

由于该驱动仅是一个测试性驱动,要求其固件必须要在其工作以前进行加载(其实任何硬件都是一样的),必须同意该驱动作者所声明的一份许可,所以还要添加下面这行到loader.conf中:

    legal.intel_wpi.license_ack=1

而后编译并安装内核。



二、配置电脑无线上网


家中有一台无线路由器 D-Link DIR-605,在网络连接时要求密码,先将该功能关闭后进行测试:


1)检查wpi设置是否出现:
    
    ifconfig wpi0

如果之前的设置无误的话,能看到wpi0接口的相关信息。


2)开启无线网卡。因为我的本本在默认状态下将无线网卡关闭,所以我需要先开启它:

    ifconfig wpi0 up


3)搜寻无线网络

    ifconfig wpi0 scan

得到如下消息:

SSID            BSSID              CHAN RATE   S:N     INT CAPS
D-Link          00:24:01:1e:28:66    1   54M  28:0    100 ES   HTCAP WME WPS

关于该消息的详细内容,借用handbook中的无线网络一节中的相关内容来进行说明:

*********************

扫描会列出所请求到的所有 BSS/IBSS 网络列表。 除了网络的名字 SSID 之外, 我们还会看到 BSSID 即无线访问点的 MAC 地址。 而 CAPS 字段则给出了网络类型及其提供的功能, 其中包括:
E

Extended Service Set (ESS)。 表示通讯站是 infrastructure 网络 (相对于 IBSS/ad-hoc 网络) 的成员。
I

IBSS/ad-hoc 网络。 表示通讯站是 ad-hoc 网络 (相对于 ESS 网络) 的成员。
P

私密。 在 BSS 中交换的全部数据帧均需保证数据保密性。 这表示 BSS 需要通讯站使用加密算法, 例如 WEP、 TKIP 或 AES-CCMP 来加密/解密与其他通讯站交换的数据帧。
S

短前导码 (Short Preamble)。 表示网络采用的是短前导码 (由 802.11b High Rate/DSSS PHY 定义, 短前导码采用 56-位 同步字段, 而不是在长前导码模式中所采用的 128-位 字段)。
s

短碰撞槽时间 (Short slot time)。 表示由于不存在旧式 (802.11b) 通讯站, 802.11g 网络正使用短碰撞槽时间。

*********************

4)接下来来连接我的无线路由器。

参照手册,我在/etc/rc.conf中添加

    ifconfig_wpi0="DHCP"



    # /etc/rc.d/netif start

如果连接到一个没有DHCP的网络,则添加以下行至/etc/rc.conf

    ifconfig_wpi0="ssid D-Link inet 192.168.0.15 netmask 255.255.255.0"



    # /etc/rc.d/netif start

如果正常返回提示状态,进行测试。我ping 有数据包收回。

至此,基本功能实现。


5)在使用WPA加密的情况下连接路由器。

地球人都知道家用无线路由器不可能不设置密码,除非你想让你的网络和带宽成为公共资源,在路由器里我设置使用WPA加密。关于WPA的相关知识,参见手册 第32章 高级网络 - 无线网络。

编辑 /etc/rc.conf,将

    ifconfig_wpi0="DHCP"

改为
    ifconfig_wpi0="WPA DHCP"

编辑 /etc/wpa_supplicant.conf:

*****************
    network={
        ssid="D-Link"
        psk="xxx"
    }
*****************

连接路由器:

    # /etc/rc.d/netif start

之后我的本本能够正常连接至路由器。

如果你的无线网络需要加密且没有DHCP:

vi /etc/rc.conf,将无线部分改为如下所示:

    ifconfig_wpi0="WPA inet 192.168.0.15 netmask 255.255.255.0"
    ifconfig_wpi0_ssid="D-Link"
    defaultrouter="192.168.0.250"

如果需要的话

    # ifconfig wpi0 up

而后
    
    # /etc/rc.d/netif start

这个时候你ping外网域名,会提示没有路由,再

    # /etc/netstart

即可。至于为什么,我目前不知道。

OK,能上网,设置完毕。


6)在有线网络和无线网络之间切换。

说到网络间切换,这恐怕也是很多人关心的问题了。其实也不用去考虑什么shell编程之类的复杂方法,最简单的方法就是有哪种网络的时候开启相应的网卡,在我家中,如果我的本本的客厅上网,那就开启无线网卡;如果本本在卧室且需要稳定的网络,那就开启有线网卡。

如果我要开启无线:
    
    # ifconfig wpi0 up
    # /etc/rc.d/netif start

如果我要换成有线:
    # ifconfig wpi0 down
    # ppp -ddial pppoe    (pppoe相关设置不再讨论)

便可以使用有线网络了。


祝大家上网舒坦 :-)

阅读(3996) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~