作者:熊老师,
大家都知道在做wifi的移植过程中主要是涉及到移植三个东西,一个openssl的移植,一个wpa_suplicant的移植。还有一个就是添加咱们的wifi驱动了,咱们这里使用的rt8192cu.ko。这三个家伙搞定了,咱们的wifi就可以使用了哦。
一 、openssl的移植
我们先来搞清楚openssl是干什么的,为甚么要移植它?带着这些问题咱们往下看吧!
Openssl是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。SSL是Secure
Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。源码下载网站 http://www.openssl.org/source/,咱们用的源码是openssl-0.9.8e.tar.gz
1.1 解压源码
tar xvf openssl-0.9.8e.tar.gz
1.2 给源码打补丁
openssl源码编译需要打wpa_supplicant提供的补丁,我们选择的openssl版本为openssl-0.9.8e,所以我们要拷贝wpa_supplicant-0.7.2/patches/
openssl-0.9.8e-tls-extensions.patch拷贝到openssl-0.9.8e源码下。
(在wifi目录下新建一个openssl目录)
patch –p1
< openssl-0.9.8e-tls-extensions.patch
1.3配置编译安装
./Configure linux-elf-arm
-DL_ENDIAN linux:'arm-none-linux-gnueabi-gcc' shared
--prefix=/home/linux/workdir/wifi/openssl //要视具体路径而定
make
make
install
这些都是咱们移植手册上提供的,那么咱们来看看这些参数的含义和这么运用他们的根据。
Linux-elf-arm 表示咱们的平台是arm,下见图中INSTALL
-DL_ENDIAN 调试
Linux:‘arm-none-linux-gnueabi-gcc’咱们编译使用的交叉工具链
Shared:生成共享库
--prefix:就是咱们的安装路径,
当然以上的这些参数都是可以调整的,其实这些东西都可以在Makefile INSTALL
README中寻找到的,官方文档为咱们的配置移植,都提供了详细的解释说明的,所以移植不要怕,查看官方文档就ok的了
二、wpa_suplicant 移植
上面咱们说了openssl就是一个加密的东东,那么wpa_suplicant简单的说,就是WiFi驱动和用户的中转站外加对协议和加密认证的支持。
具体的移植步骤如下:
进入~/workdir/wifi/wpa_supplicant-0.7.2/wpa_supplicant目录下
makefile修改
下列路径要视具体情况而定
添加
CC=arm-none-linux-gnueabi-gcc
在
CFLAGS
= -I../src
CFLAGS
= -I../src/utils
下添加:
CFLAGS
= -I/home/linux/workdir/wifi/openssl/include
修改
LIBS
= -lssl
为
LIBS
= -lssl -L/home/linux/workdir/wifi/openssl/lib/
修改
LIBS_p
= -lcrypto
为
LIBS_p
= -lcrypto -L/home/linux/workdir/wifi/openssl/lib/
对于makefile的修改的就不用多说了吗,如果你有写的不对的地方,你编译的时候,它直接就会给出错误的提示,根据错误提示,锁定错误的源头,改正即可。
编译
cp defconfig .config
make
编译后将产生的wpa_supplicant和wpa_cli拷贝到根文件系统的bin目录下(/source/rootfs/bin)
三、加载insmod rt8192cu.ko的驱动到开发板上去。
在这里咱们就不详细说了,因为内核中有都有相应的源码,编译后即可有相应的驱动模块了。
四、wifi的测试
前面三步搞定,咱们的wifi移植,基本上搞定了,剩下的就是怎么了进行测试了。
第一个就是配置咱们的/etc/resolv.conf文件中的nameserver了
1、 在根文件中添加/etc/resolv.conf(/source/rootfs/etc/resolv.conf)
内容为:
# Generated by
NetworkManager
nameserver
202.96.64.68
2、
在根文件系统/etc(/source/rootfs/etc)下添加wpa_supplicant配置文件wpa-psk-tkip.conf
内容为:
# WPA-PSK/TKIP
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="XXXX"
#无线路由ssid //farsight
key_mgmt=WPA-PSK
proto=WPA
pairwise=CCMP
group=CCMP
psk="XXXXXXXX"
#无线路由密码 //12345678
}
这个配置文件咱们是怎么来的呢,大家可以看看README和
在这个example目录下,给出了相应的配置的例子
3、 创建目录/var/run/wpa_supplicant
mkdir /var/run/wpa_supplicant
-p
4、 启动开发板完成如下操作
配置无线网卡ip
ifconfig wlan0 192.168.0.200
配置默认网关
route add default gw
192.168.0.1
启动wpa_supplicant连接无线网络
wpa_supplicant -B -iwlan0 -c
/etc/wpa-psk-tkip.conf
查看连接状态
wpa_cli status
后面的启动wifi,查看工作状态呀,这些信息都是从哪里来的,你上网搜索发现,每个人写的参数各不相同。那么我们还是来看看官方的配置。