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

文档:全志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*

转载于:https://www.cnblogs.com/fanjuntao/p/11428807.html

基于全志a33-vstar开发板的ap6210WiFi模块移植相关推荐

  1. a33 linux 硬解码_全志A33 lichee 开发板 Linux中断编程原理说明

    开发平台 * 芯灵思SinlinxA33开发板 嵌入式linux 开发板交流 641395230 本节实验目标实现按键触发中断终端显示按键松开或按下 实验平台 芯灵思Sinlinx A33 开发板 s ...

  2. A33 Vstar开发板简述及BSP下载

    BSP开发包下载链接: https://pan.baidu.com/s/1jIvJiOu 密码: p6w7 开发板模样: 功能:

  3. 基于全志A33开发板linux系统移植学习记录(Boot0)

    基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...

  4. 全志A33驱动开发 之 LED操作

    全志A33驱动开发 之 LED操作 一.整体说明 二.注意事项 三.实现led驱动 1.源文件 2.Makefile文件 四.实现测试的应用程序 五.原理图 一.整体说明   本次使用的开发板是锐尔威 ...

  5. 基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程(转)...

    源:基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程 转载于:https://www.cnblogs.com/LittleTig ...

  6. 全志r11_全志R328 Demo开发板;全志R333开发板/核心板;全志R11开发板/核心板;全志R16开发板/方案设计...

    1.全志R328 Demo开发板 参数: 扫码可见详情信息: 2.全志R333开发板/核心板 硬件特征: 扫码可见详情信息: 3.全志R11开发板/核心板 硬件特征: 具体详情扫码可见: 4.全志R1 ...

  7. 【华为云技术分享】【昇腾】【玩转Atlas200DK系列】基于Pycharm专业版构建开发板python开发运行环境

    摘要:基于Pycharm专业版构建开发板python开发运行环境(自动同步爽歪歪) 既然Matrix提供了python接口,那咱们就要将方便的用起来,接下来分享一个利用pycharm直接搞定开发板开发 ...

  8. stm32f407 6路串口dma如何配置_stm32cubeMX学习十、扫码模块程序开发(基于正点原子STM32F407开发板)...

    本程序编写基于正点原子STM32F407开发板. 本文使用的扫码模块是下面这个品牌. 扫码模块的应用场景非常广泛,我们可以上百度搜索一下: 等等. 今天就来说说如何在开发板上实现控制它吧,打开数据手册 ...

  9. *基于RT-Thread的战舰开发板连接Onenent云平台(学习笔记)**

    基于RT-Thread的战舰开发板连接Onenent云平台(学习笔记) 摘要:本文主要是我在使用正点原子开发板在rt_thread框架下连接onenet云平台的学习笔记.此文主要介绍配置步骤和开发过程 ...

最新文章

  1. C#利用Graphics类绘制进阶--绘制商品69码EAN-13
  2. Android Studio 从安装到 Hello World
  3. 也谈大公司病1——正确是最大的错误
  4. (17)System Verilog禁止类中所有变量随机属性
  5. 2021年中国独立眼科超声系统市场趋势报告、技术动态创新及2027年市场预测
  6. [转载] Python 学习笔记 迭代器和生成器
  7. 抢小米软件html版(简单有效)
  8. CDH大数据平台搭建
  9. 南航计算机英语面试经验,南航面试英文自我介绍
  10. 无线通信——GSM系统组成
  11. JAVASCRIPT设计模式pdf
  12. 【学习笔记】汇编语言入门
  13. 基于贝叶斯公式的拼音输入法二元模型实现
  14. python期末考试是怎么考的_python期末考试复习
  15. 关于检测Windows电脑电池信息
  16. 空调控制系统节点服务器,空调的云服务器
  17. 论文框架和目录一样吗_毕业论文提纲怎么写?过来人:手把手帮你打造完美论文写作模板...
  18. 雅安职业技术学院工业机器人专业_雅安职业技术学院有哪些专业_2020年学费标准_中职中专网...
  19. Hermite矩阵的酉对角化
  20. CPU中的八个通用寄存器

热门文章

  1. hamlet.txt英文哈姆雷特下载及实现文本词频统计
  2. 【报告分享】5G+工业互联网生态合作白皮书-中国电信(附下载)
  3. python中正切函数_Python tan() 函数
  4. 医咖会免费STATA教程学习笔记——计算变量的置信区间
  5. [附源码]JSP+ssm计算机毕业设计爱心捐赠管理系统设计与实现m7n8p【源码、数据库、LW、部署】
  6. 无需繁琐同步 MOTO 360使用USB调试一键安装软件教程
  7. 打通NI LabVIEW与飞桨工具链,百度携手NI探索工业硬科技新方向
  8. 20140319十个英语单词
  9. 未来计算机朝着哪几个方向发展,计算机应用的现状及未来方向
  10. 什么是PE? 什么是VC?