通常 Wi-Fi 有四种模式,不同的 Wi-Fi 设备可能支持其中一种或几种模式,四种模式如下:
SoftAP:access point,一种将无线设备连接到一个网络的设备,可以理解为无线路由。
STA:station,无线设备客户端,必须连接上一个 AP 才能使用。
DIRECT:Wi-Fi 直连,也称 p2p 模式。
CONCURRENT:同时支持 AP、STA 两种模式。
wifi_project 开发包中支持这几款 Wi-Fi,分别是 Realtek rtl8188ftv、Realtek rtl8188eus、Realtek rtl8189ftv、Mediatek mt7601u、Ampak ap6181(Broadcom BCM43362模组)、ap6212/ap6212a/ap6214a(Broadcom BCM43438 模组)和ap6255(Broadcom BCM43455 模组)。其中 rtl8188ftv、rtl8188eus 和 mt7601u 为 USB 接口, rtl8189ftv、ap6181、ap6212、ap6212a、ap6214a、ap6255 为 SDIO 接口。wifi_project 开发包仅支持 SoftAP 和 STA 模式。
1 内核配置
1.1 配置 CFG80211
CFG80211 是内核中 WiFi 驱动和用户态进程的标准接口,在 CFG80211 出现之前是WEXT,现在越来越多的使用 CFG80211,WiFi Direct 功能只有 CFG80211 才支持。
进入 Network support->Wireless,设置 cfg80211 和 mac80211 为 M,如下图所示。
CFG80211 配置

1.2 配置 Wireless Extension
WEXT 是内核中 WiFi 驱动和用户态进程的标准接口,调试工具 iwconfig、iwlist、iwpriv 需要使用该接口。如果没有配置改接口,有些驱动会有编译错误。
WEXT 在内核配置中没有单独的配置项,只能通过打开依赖它的配置项来间接打开。配置了 CFG80211 后,进入 Device Drivers->Network device support->Wireless LAN,设置 USB ZD1201 based Wireless device support 为 M。如下图所示。
Wireless Extension 配置

如果找不到这项配置,需要先配置好 USB 再来配置该选项。
1.3 配置 USB 和 SDIO
请参考《外围设备驱动操作指南》中的 USB 和 SDIO 操作指南。
** rtl8189ftv、ap6181、ap6212、ap6212a、ap6214a 的接口是 SDIO2.0,请设置 SDIO时钟为 50MHz 左右,ap6255 的接口是 SDIO3.0,请设置SDIO 时钟为 150MHz 左 右。
** kernel 默认的 SDIO2.0 的 IO 电压为 3.3V,如果给 WiFi 模块的 IO 电压为 1.8V,需要修改 SDIO 驱动,将 IO 电压切换到 1.8V。
1.4 配置 IPv6
使用 ap6181、ap6212、ap6212a、ap6214a、ap6255 时,不配置 IPv6 会导致驱动运行错 误,所以需要配置 IPv6。使用其他四款 WiFi 无需配置该项。
进入 Network support->Networking options,设置 The IPv6 protocol 为 y。如下图所示。
Ipv6 配置

1.5 SDIO 中断配置
Kernel 默认没有开启 SDIO 中断,使用 rtl8189ftv 时需要将 SDIO 中断打开,开启方法,如 Hi3519V101:文件 arch/arm/boot/dts/hisi-hi3519v101.dtsi,在 WiFi 对接的 SDIO 端口属性中增加:cap-sdio-irq。
注意
配置并编译完内核后,需要基于新的内核重新编译 WiFi 驱动,否则 WiFi 驱动在运行时会出现空指针或找不到内核符号错误。

2.1 配置 wifi_project 开发包
wifi_project 在编译前需要配置交叉编译环境,修改顶层 Makefile 中的
WIFI_DEVICE、CROSS_COMPILE 和 KERNEL。

  • 交叉编译工具链
    编译时需要的交叉编译工具,例如 arm-hisiv500-linux-、arm-hisiv600-linux-等。
    如:ARCH := arm
    CROSS_COMPILE := arm-hisiv500-linux-
  • WIFI_DEVICE
    希望编译的 Wi-Fi 设备名称,支持的 WiFi 设备见 Makefile 文件中的注释。
    如:WIFI_DEVICE := sdio_ap6xxx ap6181、ap6212、ap6212a、ap6214a、ap6225 都配置为 sdio_ap6xxx。
  • KERNEL
    编译 Wi-Fi 驱动时所指定的内核路径,在编译 Wi-Fi 驱动时,必须指定内核路径,
    注意内核一定要已经编译过的。
    如:KERNEL := /home/work/linux-3.18.y 配置完后就可以进行编译了,在 wifi_project目录下执行 make all,会自动编译驱动和工具,make driver 只编译驱动,make tools 只编译工具。

生成的驱动放在 wifi_project/out/kmod 目录下,工具放在 wifi_project/out/tools 目录下,主要包括 iwconfig、iwlist、iwpriv、wpa_cli、wpa_supplicant、hostapd 等,生成的库文 件放在 wifi_project/out/lib 目录下。

3.1 载入驱动文件
编译后驱动会生成在 wifi_project/out/kmod 目录下,拷贝所需的驱动到单板中。
各个 WiFi 的驱动文件如下:
ap6181/ap6212/ap6212a/ap6214a/ap6255
cfg80211.ko、bcmdhd.ko
cfg80211.ko 文件请在 kernel 的 net/wireless 目录下拷贝。
驱动在单板上的目录不重要,比如可以放在/kmod 目录。
3.2 载入 firmware 文件
如果要使用 Broadcom 的 ap6181 芯片,请执行如下操作:
在单板上建立目录/etc/firmware,将 wifi_project/firmware/sdio_ap6181 文件夹下的
固件文件 fw_bcm40181a2.bin、fw_bcm40181a2_apsta.bin 和 nvram.txt 下载到单板
此目录下。ap6212/ap6212a/ap6214a/ap6255 请拷贝 wifi_project/firmware 对应目录 的 firmware 和 nvram 文件。
3.3 载入工具
将 wifi_project/out/lib 目录下的 libnl-genl.so.2.0.0、libnl.so.2.0.0 拷贝到单板的/lib
目录。进入单板/lib 目录,创建这两个文件的软链接:
ln –s libnl-genl.so.2.0.0 libnl-genl.so.2
ln –s libnl.so.2.0.0 libnl.so.2
拷贝 wifi_project/out/tools 目录下的 iwconfig、iwlist、iwpriv、iperf 拷贝到单板的
/sbin 目录下。这几个是调试工具,实际使用时可以不用拷贝这几个文件。
STA 模式需要将 wifi_project/out/tools 目录下的 wpa_supplicant、wpa_cli 拷贝到单板的/sbin 目录下。
AP 模式需要将 wifi_project/out/tools 目录下的 hostapd 拷贝到单板的/sbin 目录下。
Broadcom WiFi 除了使用 wpa_supplicant 和 hostapd 来配置外,还有一种方式是采 用 wl 工具,这种情况下需要将wifi_project/out/tools 目录下的 wl 拷贝到单板的/sbin 目录下。
工具拷贝到单板后,需要修改工具的可执行权限,如:
chmod a+x wpa_supplicant
3.4 wpa_supplicant.conf 文件
wpa_supplicant.conf 是启动 wpa_supplicant 进程时需要使用到的配置文件。可以在单板
上新建一个,目录不重要,比如放在/etc/Wireless 目录下。文件内容如下:
ctrl_interface=/var/wpa_supplicant 也可以将 sample 目录下的 wpa_supplicant.conf 拷贝到/etc/Wireless 目录下。
3.5 hostapd.conf 文件
hostapd.conf 是启动 hostapd 进程时需要使用到的配置文件。可以在单板上新建一个,
目录不重要,比如放在/etc/Wireless 目录下。文件内容请参考hostapd 配置和启动SoftAP。也可以将 sample 目录下的hostapd.conf 拷贝到/etc/Wireless 目录下。
3.6 udhcpd.conf 文件
udhcpd.conf 文件是 SoftAP 模式下 DHCP server 需要使用到的配置文件。在wifi_project/sample 目录下拷贝 udhcpd.conf 到单板目录下,目录不重要,比如放在/etc/Wireless 目录下。
3.7 entropy.bin 文件
entropy.bin 文件是随机数种子文件,hostapd 进程配置带加密的 SoftAP 模式时需要使用。在 wifi_project/sample 目录下拷贝 entropy.bin 到单板目录下,目录不重要,比如放 在/etc/Wireless 目录下。
…暂时更新到这
点赞继续更新

AMPAK正基AP6XXX系列WiFi移植(1)相关推荐

  1. 正基AP6XXX系列模块硬件排查方法

    模组原理图脚位显示: 以AP6212及AP6255为参考说明: 1.主控sdio的驱动电流等级是多少的,是8ma?12ma?这个确认一下 2.主控sdio有没有加内部上拉电阻,如果没有,sdcmd和s ...

  2. RK903 RK901 AP6xxx系列WiFi模块配置

    包括以下模块:RK901.RK903.AP6181.AP6210.AP6330.AP6476.AP6335等选择"RK901/RK903/BCM4330/AP6XXX wireless ca ...

  3. ampak正基RF定频安装指导

    android系统RF定频安装指导 操作步骤: 1.adb push C:\Users\lenovo\rftesttool54 /data/rftesttool/ 2.adb install C:\U ...

  4. 分享个ampak正基驱动文件,瑞芯微及安卓系统案例

    驱动文件 不懂的私信留言 wifi驱动更新 如果是kernel 3.10版本 kernel_3.10直接替换对应的驱动 根据你的wifi模块名字,参考1.diff(AP6236)添加修改 dts中配置 ...

  5. ampak正基RF定频手动测试命令

    一.2.4G_11B TX test command wl down wl band b wl mpc 0 wl nrate -r 11 wl rateset 11b wl country ALL w ...

  6. ap6212 Linux 蓝牙,替代正基AP6212、AP6330的SDIO WiFi+UART蓝牙组合

    原标题:替代正基AP6212.AP6330的SDIO WiFi+UART蓝牙组合 SKYLAB推出的SDIO wifi+串口蓝牙二合一模块WG221,可完全替代正基的WiFi+蓝牙二合一模块AP621 ...

  7. Android KitKat 4.4 Wifi移植AP模式和网络共享的调试日志

    Tethering技术在移动平台上已经运用的越来越广泛了.它能够把移动设备当做一个接入点,其它的设备能够通过Wi-Fi.USB或是Bluetooth等方式连接到此移动设备.在Android中能够将Wi ...

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

    作者:熊老师, 大家都知道在做wifi的移植过程中主要是涉及到移植三个东西,一个openssl的移植,一个wpa_suplicant的移植.还有一个就是添加咱们的wifi驱动了,咱们这里使用的rt81 ...

  9. Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程

    Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程 一:前言 最近手上压了一块米联客的Miz7035,一块xilinx zynq-7000系列的开发板,想着正好学习一下linu ...

最新文章

  1. POJ - 2492 种类并查集
  2. 在C#中什么时候用分号?
  3. 怎样下载企业通讯录Excel模板
  4. PS 自定义画笔工具
  5. 国开计算机上机表格试题答案,国开大学计算机实操答案一
  6. 如何查找共享计算机的用户名和密码错误,访问共享文件夹提示“未知的用户名或密码错误...
  7. Pygame 打字游戏项目
  8. html标签 补全方法 python,Python Beautiful Soup学习之HTML标签补全功能
  9. jeecgboot 查询_124.JSuperQuery高级查询组件 - JeecgBoot 开发文档
  10. python批量删除文件名中的下划线-代码详解
  11. PS之基础知识汇总(总结版)
  12. 深度学习半自动标注_时下流行的深度学习数据标注工具
  13. 地平线机器人上海待遇_目前室内机器人、SLAM现状如何?行业内顶尖技术在哪些高校或企业 ?...
  14. twisted的简单介绍
  15. OTA法规及备案要求
  16. cinta作业7:同态同构商群正规子群
  17. 果园机器人的课文_《果园机器人》课文原文
  18. 定时备份脚本分享(网站数据和数据库数据)
  19. matlab由图像得到复振幅程序,基于Matlab的空间滤波实验的计算机仿真
  20. 记录一道流量分析的题——攻防世界:流量分析1

热门文章

  1. 电脑维修中的“八先八后”是什么?
  2. php随机生成三位数,php随机生成数字加字母 PHP随机生成数字+调用,
  3. 获取ubuntu管理员权限
  4. 运行ORB-SLAM2
  5. vulnhub:Sar
  6. 2021-10-24 CMake安装报错Error when bootstrapping CMake: Cannot find appropriate C compiler on this syst
  7. 三星s10android10功能,安卓老大王者归来 三星S10曝光黑科技一览
  8. JSP 人力资源管理系统 软件开发设计 myeclipse开发 mysql数据库
  9. [JDBC连接] 使用JDBC操作数据库中的数据
  10. 专科php的就业方向,2018就业前景好的专科专业 哪些专业最有前途