作者:熊老师,

大家都知道在做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,查看工作状态呀,这些信息都是从哪里来的,你上网搜索发现,每个人写的参数各不相同。那么我们还是来看看官方的配置。

linux WiFi源码解析,Wifi移植浅析相关推荐

  1. linux WiFi源码解析,WIFIDOG 源码解析

    WIFIDOG 源码解析 openwrt wifidog是我linux c语言编程的启蒙项目,一年前折腾此项目大半年,从此爱上了linux 系统编程.现在看来,这是一个再简单不过的linux c语言项 ...

  2. Wifi模块—源码分析Wifi启动2(Android P)

    一 前言 在上一篇分析了wifi启动的流程,从Android应用层一直分析到了Java框架层,这次我们接着往下走流程.如果没有看上一篇的建议先回头看看   Wifi模块-源码分析Wifi启动1(And ...

  3. Wifi模块—源码分析Wifi启动(Android P)

    一.前言 Android P在wifi这块改动挺大的,Wifi到AndoidO之后不再使用jni,所以AndroidP也一样不再使用jni来实现Java代码与本地的C/C++代码交互,而是使用HIDL ...

  4. Wifi模块—源码分析Wifi热点扫描2(Android P)

    一 前言 这次接着讲Wifi工程流程中的Wifi热点扫描过程部分的获取扫描结果的过程,也是Wifi扫描过程的延续,可以先看前面Wifi扫描的分析过程. Wifi模块-源码分析Wifi热点扫描(Andr ...

  5. Wifi模块—源码分析Wifi热点扫描(Android P)

    一 前言 这次接着讲Wifi工程流程中的Wifi热点查找过程,也是Wifi启动的过程延续,Wifi启动过程中会更新Wifi的状态,框架层也有相应广播发出,应用层接收到广播后开始进行热点的扫描.可以先看 ...

  6. linux epoll 开发指南-【ffrpc源码解析】

    linux epoll 开发指南-[ffrpc源码解析] 摘要 关于epoll的问题很早就像写文章讲讲自己的看法,但是由于ffrpc一直没有完工,所以也就拖下来了.Epoll主要在服务器编程中使用,本 ...

  7. 微擎即用WIFI源码V2.1.7

    介绍: 微擎即用WIFI源码V2.1.7版本,前端+后端,线下WIFI推广利器. 键融合线下门店无线网络.新闻热点.地区代理代理商.广告词营业额等综合型服务平台,致力于为客户出示免费网络闲暇,服务平台 ...

  8. FreeRTOS之Tracealyzer for FreeRTOS(FreeRTOS+Trace) 详解(源码解析+移植)

    源:FreeRTOS之Tracealyzer for FreeRTOS(FreeRTOS+Trace) 详解(源码解析+移植)

  9. Wifi源码学习(Android5.1)之wifi开关

    wifi系列博客地址: Wifi源码学习(Android5.1)之wifi开关 Wifi源码学习(Android5.1)之wifi optionItem Wifi源码学习(Android5.1)之wi ...

最新文章

  1. 词法分析(1)---词法分析的有关概念以及转换图
  2. 【SSH异常】InvalidDataAccessApiUsageException异常
  3. 热点分析图_通过分析功率MOSFET管的工作特性,判断其损坏原因
  4. 深入理解 nvidia-docker 2.0
  5. javascript正则表达式复习
  6. 深入理解PHP内核(十二)函数-函数的定义、传参及返回值
  7. 【2030】排队打水问题
  8. 基建管控系统_基建项目管理系统
  9. 制作数据库导出模板,导出数据库设计说明书
  10. Servlet的生命周期
  11. 怎样把多个excel文件合并成一个
  12. 【Tool】ELF 和 AXF 文件分析详解
  13. SQL Server中查询累计和与滑动平均值
  14. Android Studio的报错提示:Error while Launching activity
  15. Android视频播放器ExoPlayer
  16. logcat日志文件分析
  17. SQLException错误码
  18. 股票作手操盘术-勘误
  19. Android4.4电池管理
  20. SPSSModeler的下载与安装

热门文章

  1. dns的主从服务器的简单配置
  2. 杭电ACM_1016_素数环
  3. “尽快成立国家级权威信息安全部门”
  4. 模板匹配(Match Template)
  5. Apache-tomcat
  6. 把存储过程结果集SELECT INTO到临时表
  7. Python MySQLdb 循环插入execute与批量插入executemany性能分析(list批量写法亲测成功)
  8. 对NumPy中dot()函数的理解(亲测,矩阵算法)
  9. 支付宝服务窗的简单开发体会
  10. 《大型网站技术架构》读书笔记之七:随需应变之网站的可扩展架构