RT3070wifi模块STA模式移植

来源:互联网 发布:钟镇涛破产原因 知乎 编辑:程序博客网 时间:2024/05/17 06:09

做了wifi模块STA 移植。。借鉴了网上和同学的文档

模块是RT3070。。开发板是fl2440跑的Linux3.0。。主机是centos6.5

基站模式(STA):任何无线设备驱动都可以工作在该模式下,这种模式是默认的模式在该模式下工作的网卡必须连接到一个在AP模式下工作的网卡。简单的说。。sta模式就是连别人的wifi

1.下载源代码。。我用的DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.bz2

2.解压

3.修改os/linux 中的config.mk文件

#cd /os/linux/
#vi config.mk

HAS_WPA_SUPPLICANT=y

#endif // WPA_SUPPLICANT_SUPPORT //

#ifdef NATIVE_WPA_SUPPLICANT_SUPPORT

# Support Native WpaSupplicant for Network Maganger

HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

4.修改Makefile

#PLATFORM: Target platform

PLATFORM = PC   目标平台选择PC

ifeq ($(PLATFORM),PC)

# Linux 2.6

LINUX_SRC = /usr/src/linux-2.6.12   内核位置

# Linux 2.4 Change to your local setting

#LINUX_SRC = /usr/src/linux-2.4

LINUX_SRC_MODULE=/lib/modules/$(shelluname-r)/kernel/drivers/net/wireless/

CROSS_COMPILE= /usr/src/usr/local/arm/3.4.1/bin/arm-linux-  交叉编译器位置

Endif

5.make

make后再os/linux下生成了rt3070sta.ko

6.RT2870STA.dat拷贝到开发板/etc/Wireless/RT2870STA目录下并给权限

rt2870.bin usb固件拷贝到开发板 /lib/firmware

rt3070sta.ko拷贝到开发板 /usr/ 目录下

7.挂载驱动 insmod /usr/rt3070sta.ko

挂载成功就可以ifconfig -a查看。。会有wlan0或者ra0设备

8.启动无线ifconfig ra0 up

驱动移植就是这些。。下面移植wireless tools

1.下载源码。。我的是wireless_tools.29.tar.gz

2.解压

3.改Makefile

PREFIX = /home/leo/wirelesstoolsout

CC = /usr/src/usr/local/arm/3.4.1/bin/arm-linux-gcc

AR = /usr/src/usr/local/arm/3.4.1/bin/arm-linux-ar

RANLIB = /usr/src/usr/local/arm/3.4.1/bin/arm-linux-ranlib

交叉编译器下的配件

4.交叉编译。。make & make install

5.复制libiw.so.29到开发板/lib/

复制iwpriviwconfigiwlist, iwevent, iwspy到开发板/bin

6.设置IP和掩码

ifconfig wlan0 192.168.1.35 netmask 255.255.255.0

7.扫描网络

iwlist wlan0 scan

8.如果此时是有未加密的网络。。就可以直接连接

iwconfig wlan0 ESSID *****   (网络名)

就可以连接了。。

如果是加密的网络要移植Openssl

1.下载文件解压openssl-0.9.8l.tar.gz

2.建立openssl编译目标路径:mkdir /usr/local/ssl

3.修改Makefile    

CC=arm-none-linux-gnueabi-gcc

AR=arm-none-linux-gnueabi-ar

RANLIB=arm-none-linux-gnueabi-ranlib

INSTALLTOP=/usr/local/ssl

OPENSSLDIR=/usr/local/ssl

前三个交叉编译器文件。。后两个之前mkdir路径

4.make & make install

5.在/usr/local/ssl/lib下会出现libcrypto.a  libssl.a。。将这两个拷贝到/lib下

接下来移植wpa_supplicant

1.下载源码并解压wpa_supplicant-0.7.2.tar.gz

2.cp wpa_supplicant-0.7.2/wpa_supplicant/defconfig .config

3.在.config中添加如下代码

    CC=arm-none-linux-gnueabi-gcc-L /usr/local/ssl/lib/      交叉编译器和刚才库路径

    CFLAGS+= -I/usr/local/ssl/include/           刚才库路径

    LIBS+= -L/usr/local/ssl/lib/                 刚才的库路径

4.make

5.拷贝wpa_supplicant和wpa_cli和wpa_passphrase到开发板

6.在板子上生成wpa_supplicant.conf配置文件

wpa_passphrase wifi名 wifi密码  >> /etc/Wirelesswpa_supplicant.conf

vi wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
network={
      ssid="无线名"
      key_mgmt=WPA-PSK   //加密模式
      proto=WPA
      pairwise=TKIP  CCMP
      #group=TKIP  CCMP    //这里我注视掉了,你可以不用注释掉
      psk="xiguashuang"  //这里我是使用的明文,你也可以使用自动生成的加密之后的
      #psk=f7c429c4e6d7e83ab648c83409ccffc53b331b58bfb69b5f6a35fa10c45cf8bf
}

7.连接无线路由器

wpa_supplicant -Dwext -iwlan0 -c /etc/Wireless/wpa_supplicant.conf &

8.检查

iwconfig

就能看到已经连接了wifi

9.配置IP和掩码

ifconfig wlan0 192.168.1.244 netmask 255.255.255.0 up

ifconfig eth0 down

ping 192.168.1.102    ping自己的开发板

就能成功了

如果想要上外网。。额外要加DNS和网关

1.在/etc下创建resolv.conf

vi resolv.conf 
#search localdomain
nameserver 4.2.2.2
nameserver 8.8.8.8

2.添加网关

route add default gw 192.168.1.1

3.ping www.baidu.com

有时候很慢。。但是可以ping通




1 0
原创粉丝点击