可以去链接看更详细的,第一次用博客,这个编辑方式太不友好了。

文档:全志a33--系统移植--ap6210WiFi模块移?..
链接:http://note.youdao.com/noteshare?id=85b43ef1977c0b8d75f9e57b9a637845&sub=9BBA64D369974A72B68D7EAB02DCF19F

一、准备工作
1、新建文件夹WiFi_AP
2、下载OpenSSL下载地址 https://www.openssl.org/source/old/,在这里我所下载的版本是openssl-1.0.2l.tar.gz 下载地址https://www.openssl.org/source/old/1.0.2/openssl-1.0.2l.tar.gz ,将下载到的文件拷贝到WiFi_AP,并解压
3、下载libnl,下载地址http://www.infradead.org/~tgr/libnl/,在这里我所下载的版本是libnl-1.1.4.tar.gz 下载地址http://www.infradead.org/~tgr/libnl/files/libnl-1.1.4.tar.gz 将下载到的文件拷贝到WiFi_AP,并解压
4、进入WiFi_AP目录,执行命令git clone git://w1.fi/srv/git/hostap.git 下载最新的hostapd
在线克隆的版本可能会比较高,有时会出现一些问题,所以手动下载hostap1.0,编译通过。
5、下载dnsmasq,http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz ,将下载到的文件拷贝到WiFi_AP,并解压
6、前期准备工作到此完成,接下对以上4个工具包进行配置及交叉编译才能在开发板上运行
二、编译OpenSSL
1、进入openssl 目录:cd WiFi_AP/openssl-1.0.2l
2、配置openssl:./config no-asm shared --prefix=$(pwd)/__install

no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的。
shared :生成动态连接库。
--prefix :指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)。
3、修改Makefile:
(1)修改编译工具CC=/usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-gcc交叉编译工具链路径
(2)删除 CFLAG= 中的-m64
(3)将AR= ar $(ARFLAGS) r改为AR= /usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-ar $(ARFLAGS) r
(4)将RANLIB= /usr/bin/ranlib改为RANLIB= /usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-ranlib
(5)将NM= nm改为NM= /usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-nm
(6)执行make命令
(7)make命令执行完毕后执行make install命令
三、编译libnl
1、进入libnl目录:WiFi_AP/cd libnl-1.1.4
2、配置libnl:./configure --prefix=$(pwd)/__install --enable-shared --enable-static
./configure CC=/home/wien/work/GCC_ARM/gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc --prefix=$(pwd)/__install --enable-shared --enable-static --host=CC=/home/wien/work/GCC_ARM/gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi
3、执行命令:make CC=/usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-gcc 进行交叉编译
4、执行命令:make CC=/usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-gcc install 进行安装
四、交叉编译hostapd 无线网卡作为路由器,工作于AP模式
1、进入hostapd目录:cd WiFi_AP/hostap/hostapd
2、采用默认配置,执行命令:cp defconfig .config
3、启用CONFIG_DRIVER_NL80211=y
4、修改Makefile,
(1)将
ifndef CC
CC=gcc
endif
改为
ifndef CC
CC=/usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-gcc
endif
(2)
在Makefile开始添加
CFLAGS += -I../../libnl-1.1.4/__install/include/
CFLAGS += -I../../openssl-1.0.2l/__install/include/
LIBS += -L../../libnl-1.1.4/__install/lib/
LIBS += -L../../openssl-1.0.2l/__install/lib/
5、执行make命令:make CC=/usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-gcc

可采用同样的方法修改编译wpa_supplicant 0.7.3 无线网卡连接其他设备,工作于STA模式
如果只想WiFi模块工作与AP模式,即热点模式,则不用编译。
五、交叉编译dnsmasq
1、进入dnsmasq 目录:cd WiFi_AP/dnsmasq-2.75
2、修改Makefile:
(1)在Makefile首行添加CC=/usr/local/gcc-arm/gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux/bin/arm-linux-gnueabi-gcc
(2)设置安装目录PREFIX = /home/wien/work/Vstar/Wifi/dnsmasq-2.75/__install
3、执行make
4、编译完成后,执行make install 安装
六、至此所有工具均全部编译完成,接下来脚编译得到的可执行文件及相关配置拷贝到开发板对应目录

//需要把编译成功后产生的相关文件复制到根文件系统,再打包烧录
mkdir -p /system/vendor/modules
cp bcmdhd.ko /system/vendor/modules
cp dnsmasq.conf hostapd.conf hostapd.accept hostapd.deny /etc
cp hostapd hostapd_cli dnsmasq /sbin
cp /dragonboard/bin/fw_bcm40181a2.bin /system/vendor/modules/
cp /dragonboard/bin/nvram_ap6210.txt /system/vendor/modules/
cp /dragonboard/bin/config.txt /system/vendor/modules/
cp wifisetap.sh /
mkdir /var/lib/misc
cp dnsmasq.leases(创建一个空文件即可) /var/lib/misc
七、当wpa_supplicant编译完成之后, 会产生wpa_supplicant 、wpa_cli 、wpa_passphrase三个文件,其中wpa_supplicant 与 wpa_cli 是服务器与客户端关系,后台运行wpa_supplicant,使用 wpa_cli来搜索、设置、和连接网络。
Wpa_supplicant作用:
1、读取配置文件
2、初始化配置参数,驱动函数
3、让驱动scan当前所有的bssid
4、检查扫描的参数是否和用户设置的想否
5、如果相符,通知驱动进行权限 认证操作
6、连上AP
wpa_cli 主要用于配置WiFi。

命令:
1. 开机加载bcmdhd.ko 即加载WiFi模块
2. ifconfig wlan0 up 开启WiFi,
3. iwlist wlan0 scanning | grep ESSID 扫描附近热点,参数用于只显示热点名

4. wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0 使用wpa_supplicant 读取 *.conf中事先设置好的热点信息,并连接。

5. udhcpc -b -i wlan0 给STA模式的WiFi模块自动分配IP,否则不能ping百度。

6. ping www.baidu.com

目前仅使用wpa_supplicant 自己写配置文件 .conf 其中预先写死的WiFi名和密码,太局限性,wpa_cli 工具还没使用,另外还有其他 WiFi_tool 更强大,等后续学习使用。
命令介绍:
iw工具:是iwconfig的替代者

(1)可用于 open, WEP两种"认证/加密"的模式的使用

// 列出WIFI网卡的性能
iw list

//启动wifi模块
ifconfig wlan0 up

// 扫描WIFI AP
iw dev wlan0 scan

// 连接到WIFI AP:xxx (open模式) (没有密码的,开放式wifi的连接)
iw wlan0 connect xxx

// 连接到WIFI AP:xxx (WEP模式) 后面的xxxxx表示密码
iw wlan0 connect xxx keys d:0:xxxxxx
d: default, 0: 第0个密码

手动配置wifi热点的ip
ifconfig wlan0 192.168.1.22
ping 一下百度,看是否可以连通网络(前提,已经设置了支持外网)
ping www.baidu.com

断开热点的连接:
iw wlan0 disconnect

killall hostapd
killall dnsmasq
rmmod /system/vendor/modules/bcmdhd.ko
insmod /system/vendor/modules/bcmdhd.ko op_mode=2
ifconfig wlan0 down
ifconfig wlan0 up
hostapd /etc/hostapd.conf -B
ifconfig wlan0 192.168.1.1
dnsmasq
iwlist wlan0 scanning

编译成功之后应有一下库文件
hostapd 共享库

ld-2.11.1.so* libgcc_s.so.1* librt.so.1@
ld-linux.so.3@ libm-2.11.1.so*
libc-2.11.1.so* libm.so.6@
libc.so.6@ libpthread-2.11.1.so*
libdl-2.11.1.so* libpthread.so.0@
libdl.so.2@ librt-2.11.1.so*

dnsmasq 共享库
ld-2.11.1.so* libc.so.6@ libnss_files.so.2*
ld-linux.so.3@ libgcc_s.so.1*
libc-2.11.1.so* libnss_files-2.11.1.so*

基于全志a33-vstar开发板的ap6210WiFi模块移植的更多相关文章

  1. 全志A33 lichee 开发板 Linux中断编程原理说明

    开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 本节实验目标实现按键触发中断 ...

  2. iTOP-4412开发板-LinuxC-继电器模块的测试例程

    平台:iTOP-4412开发板 实现:继电器模块测试例程 继电器的 C 的测试程序,C 测试程序可以在 Android系统,Qt 系统以及最小 linux 系统上运行,文档以 Android 系统上测 ...

  3. 基于讯为4412开发板的Android开发流程

    讯为4412开发板  使用三星2410芯片,基于arm9架构,由于自己电脑硬件的局限,只能跑Android4.0.3系统. 1.Uboot这个直接使用官方镜像烧写就可以了,一般情况不用去重复烧写. 略 ...

  4. 芯灵思Sinlinx A33开发板boa与CGI移植

    开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 641395230 在嵌入式设备的管理与交互中,基于W ...

  5. 基于zigbee与tiny4412开发板的环境监测系统

    一.开发板环境搭建 1.tiny4412   linux系统的布置 参考博客:http://www.cnblogs.com/luoxiang/p/4186391.html 二.boa服务器的搭建 下载 ...

  6. 基于TQ2440开发板的WiFi模块的使用经验总结

    一.软.硬件资源准备: 内核版本:linux-2.6.30.4 交叉编译器版本:4.3.3 wpa_supplicant工具:wpa_supplicant-0.7.3.tar ; openssl-0. ...

  7. [嵌入式开发板]iTOP-4412以模块的方式编译驱动

    本文转自迅为:http://www.topeetboard.com 大家好,本章节我们将向大家讲解如何在 linux 下实现以模块的方式加载内核驱动.我们以内核里面蜂鸣器的 驱动为例来讲解. 1)首先 ...

  8. 东芝开发板驱动OLED模块显示LOGO图片

    前言 在之前的两篇评测文章: 使用系统定时器SysTick实现精确延时微秒和毫秒函数 东芝MCU实现位带操作 介绍了系统SysTick实现精确延时,GPIO的输入输出使用,并实现了位带方式操作GPIO ...

  9. s5pc100开发板网卡驱动的移植

    相关软件下载地址:http://pan.baidu.com/s/16yo8Y fsc100开发板 交叉编译工具:arm-cortex_a8-linux-gnueabi-gcc 平台代码修改 vim   ...

随机推荐

  1. 2019.12.10 switch(){ case: }

    if 适合判断范围 switch 适合判断某个值 两种方法: import java.util.Scanner; class Demo02 { public static void main(Stri ...

  2. Processing设计Android APP(1) - 安装

    1.安装环境: A. Android Studio B. Processing 3.4 (64bit) 首先,直接安装Android Studio,我这里版本是3.2.1. 然后,新建一个Sample ...

  3. outlook 修改视图

  4. mysql 遍历所有表并条件查询

    use eepm_push; DROP PROCEDURE IF EXISTS FountTable; delimiter $$ create procedure FountTable() begin ...

  5. Redis的常用JavaAPI(Jedis)实现

    一.  pom依赖: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> & ...

  6. Java-Maven(十一):Maven 项目出现pom.xml错误:Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin

    Maven项目出现ERROR: eclipse更新了Maven插件后,让后就出现了以下错误: Description Resource Path Location Type Conflicting l ...

  7. odoo开发笔记--form视图按钮样例

    如图: 对应后台views视图,class可选内容值: class="oe_highlight" class="btn-xs" class="btn- ...

  8. pytorch visdom可视化工具学习—3-命令行操作使用经验

    在使用过程中一直以为要在哪个指定的environment下(即参数env)绘制内容,就必须在使用时声明 比如如果不声明,默认的就是在'main'环境下,端口为8097: viz = visdom.Vi ...

  9. Javascript 将 console.log 日志打印到 html 页面中

    如何将 console.log() 打印的日志输出到 html 页面中 (function () { var old = console.log; var logger = document.getE ...

  10. 托马斯·贝叶斯 (Thomas Bayes)

    朴素贝叶斯   Day15,开始学习朴素贝叶斯,先了解一下贝爷,以示敬意. 托马斯·贝叶斯 (Thomas Bayes),英国神学家.数学家.数理统计学家和哲学家,1702年出生于英国伦敦,做过神甫: ...