***************************************************************************************************************************************************************************************
开发板 :fl2440
CPU : s3c2440
linux内核:linux3.0
开发模块:RT3070
***************************************************************************************************************************************************************************************
前言:在开发这个模块之前,我们先了解一下RT3070。RT3070有两种工作模式:STA(station)模式和SoftAP(Access Point)模式。本片博文主要是通过RT3070的STA模式实现fl2440开发板连上wifi上网。
1.内核配置
[zoulei@CentOS linux-3.0]$ make menuconfig
[*] Networking support --->
<*> cfg80211 - wireless configuration API
[*] enable powersave by default
[*] cfg80211 wireless extensions compatibility
[*] Wireless extensions sysfs files
{*} Common routines for IEEE802.11 drivers
<*> Generic IEEE 802.11 Networking Stack (mac80211)
Device Drivers --->
[*] Include in-kernel firmware blobs in kernel binary
[*] Network device support --->
[*] Wireless LAN --->
<*> Ralink driver support --->
<*> Ralink rt27xx/rt28xx/rt30xx (USB) support
[*] Ralink debug output
修改内核配置之后,make编译重新烧录进开发板。
如果成功,会发现开发板有无线网卡wlan0出现,如图:
2.关闭有线网卡,开启无线网卡
关闭有线网卡:ifconfig eth0 down
开启无线网卡:ifconfig wlan0 up
之后再ifconfig发现只有wlan0
插上RT3070网卡后,终端显示如下信息:
3.下载RT3070固件
下载RT3070固件,放到开发板/lib/firmware下:
打开无线网卡wlan0时,打印信息提示需要下载3070固件:
如果没有这个固件,则会出错。
该固件可以到这里下载:https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/source/rt2870.bin
4.wpa_supplicant和openssl移植
wpa_supplicant:主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证。
OpenSSL: 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
4.1.openssl 移植
openssl源码下载地址:https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/source/openssl-1.0.0s.tar.gz
(1)解压、并指定安装目录
[zoulei@CentOS tftp]$tar zxvf openssl-1.0.0s.tar.gz
[zoulei@CentOS tftp]$cd openssl-1.0.0s
[zoulei@CentOS openssl-1.0.0s]$mkdir install
(3)修改makefile
29 INSTALLTOP=/tftp/openssl-1.0.0s/install/(4)编译
30
31 # Do not edit this manually. Use Configure --openssldir=DIR do change this!
32 OPENSSLDIR=/tftp/openssl-1.0.0s/install/
62 CC= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc
63 CFLAG= -O
64 DEPFLAG= -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC 5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE
65 PEX_LIBS=
66 EX_LIBS=
67 EXE_EXT=
68 ARFLAGS=
69 AR= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar $(ARFLAGS) r
70 RANLIB= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ranlib
[zoulei@CentOS openssl-1.0.0s]$sudo make
[zoulei@CentOS openssl-1.0.0s]$sudo make install
编译完之后会生成libcrypto.a , libssl.a两个静态库文件
将libcrypto.a , libssl.a两个静态库拷到开发板的/lib路径下。
4.2.wpa_supplicant移植
(1)下载wpa_supplicant源码 :https://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/source/wpa_supplicant-0.7.3.tar.gz
(2)解压、并修改.config配置文件
[zoulei@CentOS tftp]$tar zxvf wpa_supplicant-0.7.3.tar.gz
[zoulei@CentOS tftp]$ cd wpa_supplicant-0.7.3
[zoulei@CentOS wpa_supplicant-0.7.3]$ ls
COPYING patches README src wpa_supplicant
[zoulei@CentOS wpa_supplicant-0.7.3]$ cd wpa_supplicant/
[zoulei@CentOS wpa_supplicant]$ cp defconfig .config
(3)修改.config文件
[zoulei@CentOS wpa_supplicant]$ vim .config
26 CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc -L /tftp/openssl-1.0 .0s/install/lib(4) make 编译
27 #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
28 #CFLAGS += -Os
29 CPPFLAGS += -I /tftp/openssl-1.0.0s/install/include
30 LIBS += -L /tftp/openssl-1.0.0s/install/lib
[zoulei@CentOS wpa_supplicant]$make
将wpa_cli,wpa_supplicant,wpa_passphrase
拷贝到开发板的/bin目录下。并给予权限 chmod 777:wpa_cli,wpa_supplicant,wpa_passphrase
5.开发板上操作
>: ls /etc/
>:wpa_passphrase Router_LingYun lingyun_emb >> wpa_supplicant.conf()
注意:输入命令:wpa_passphrase ssid psk >> wpa_supplicant.conf (ssid就是你wifi的名字 psk就是密码)
而我的是wifi是Router_LingYun 密码是lingyun_emb
(1)修改配置文件
>: vi /etc/wpa_supplicant.conf
(2)连接路由器
接下来使用wpa_supplicant连接路由器:
输入命令:>:wpa_supplicant
-B -d -Dwext -iwlan0 -c /etc/wpa_supplicant.conf
(3)网络设置
3.1未开启DHCP,所以得手动分配:
配置IP:ifconfig wlan0 192.168.2.60
配置默认网关:route add default gw 192.168.2.1
配置DNS:echo "nameserver 114.114.114.114" > /etc/resolv.conf
ping测试
3.2开启DHCP:
busybox已经集成了DHCP的客户端和服务端,make编译后,我们只要把Busybox的examples/udhcp/simple.script 拷
贝到开发板/usr/share/udhcpc/下,并重命名为default.script,然后更改文件default.script的权限.
ping测试: