linux WiFi源码解析,Wifi移植浅析

作者:熊老师,

大家都知道在做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的了

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

二、wpa_suplicant 移植

上面咱们说了openssl就是一个加密的东东,那么wpa_suplicant简单的说,就是WiFi驱动和用户的中转站外加对协议和加密认证的支持。

a4c26d1e5885305701be709a3d33442f.png

具体的移植步骤如下:

进入~/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目录下,给出了相应的配置的例子

a4c26d1e5885305701be709a3d33442f.png

3、 创建目录/var/run/wpa_supplicant

mkdir /var/run/wpa_supplicant

-p

4、 启动开发板完成如下操作

配置无线网卡ip

ifconfig wlan0 192.168.0.200

a4c26d1e5885305701be709a3d33442f.png

配置默认网关

route add default gw

192.168.0.1

启动wpa_supplicant连接无线网络

wpa_supplicant -B -iwlan0 -c

/etc/wpa-psk-tkip.conf

查看连接状态

wpa_cli status

后面的启动wifi,查看工作状态呀,这些信息都是从哪里来的,你上网搜索发现,每个人写的参数各不相同。那么我们还是来看看官方的配置。

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值