RK3399 android7.1 实现双wifi功能 STA+AP

wifi模组:
主板使用的wifi模块为海华AW-NM43438W模组以及客户提供了一款USB接口的5G双频无线网卡RTL8821CU

双wifi功能实现效果:
主板自带的wifi模组作为station正常连接外部wifi,USB接口的外接网卡作为AP(热点)供其他设备连接。


一.wifi的station和ap模式以及相关概念

1. AP

无线接入点,是一个无线网络的创建者,是网络的中心节点。一般家庭或办公室使用的无线路由器就是一个AP。
在这里插入图片描述

2. AP应用模式

WIFI 串口服务器作为一个 AP 使用,其它 WIFI 串口服务器及电脑都可以作为 STA 连到这个 WIFI 串口服务器上,同时它也可以通过 UART 或GPIO 接口连到用户设备,如图所示:
在这里插入图片描述

3. STA站点

每一个连接到无线网络中的终端(如笔记本电脑、PDA及其它可以联网的用户设备)都可称为一个站点。站点(STA,Station)在无线局域网(WLAN,WirelessLocalAreaNetworks)中一般为客户端,可以是装有无线网卡的计算机,也可以是有WiFi模块的智能手机,可以是移动的,也可以是固定的。在无线环境中STA接入的过程包括:认证STA有没有权限和接入点(AP,AccessPoint)建立链路;STA能不能接入WLAN;以及STA接入WLAN网络之后,认证STA能不能访问网络的权限。
在这里插入图片描述

4. STA 应用模式

串口服务器作为 STA 连接到其它 AP(如局域网中的路由)上,组成一个无线网络。所有的 STA 都以该 AP 作为无线网络的中心,STA 之间的相互通信都通过 AP 转发完成,如图所示:
在这里插入图片描述

5. AP+STA 应用模式

串口服务器可同时支持一个 AP 接口,一个 STA 接口。开启 AP+STA 功能后,STA 和AP 接口同时可用。串口服务器的 STA 接口与路由器相连,并通过 TCPB 与网络中的服务器相连;同时 AP 接口可以被手机/PAD 等连接(通过 TCPA 连接)。如此,网络中的服务器 TCP Server、手机/PAD 等都可以对串口服务器所连接串口设备进行控制或者对串口服务器本身参数进行设置,如图所示:
在这里插入图片描述

6. 相关概念:

AP(Access Point):无线接入点:可以当做一个无线路由器,这个路由器的特点不能插入网线,没有接入Internet,只能等待其他设备的链接,并且智能接入一个设备。
STA(Station):任何一个接入无线AP的设备都可以称为一个站点。也就是平时接入路由器的设备。
SSID(Service Set Identifier):SSID,每个无线AP都应该有一个标示用于用户识别,SSID就是这个用于用户识别的的名字,也就是我们经常说到的wifi名。
BSSID:每一个网络设备都有其用于识别的物理地址,这个东西呢就叫MAC地址,这个东西一般情况下出厂会有一个默认值,可更改,也有其固定的命名格式,也是设备识别的标识符。BSSID是针对设备说的,对于STA的设备来说,拿到AP接入点的MAC地址就是这个BSSID。
ESSID:是一个比较抽象的概念,它实际上就和ssid相同(本质也是一串字符),只是能如果有好几个无线路由器都叫这个名字,那么我们就相当于把这个ssid扩大了,所以这几个无线路由器共同的这个名字就叫ESSID。(也就是如果在一台路由器上释放的wifi信号叫某个名字如“China_CMCC”,这个名字“China_CMCC”就称为SSID;如果在好几个路由器上都释放了这个wifi信号,那么大家都叫“China_CMCC”,这个时候大家都遵循的这个名字就是ESSID。
RSSI:通过STA扫描到AP站点的信号强度。


二,系统中station+ap模式的实现

  1. 首先将两颗wifi的驱动移植好能正常跑起来:
    编译内核可生成对应的ko文件,一般是在 Android系统/system/lib/modules/xxxx.ko

  2. 保证机器自带的wifi连接上路由器,能够正常使用station功能;

  3. 运行start_softap.sh脚本,该脚本默认加载8821cu.ko,通过ndc命令开启2.4G热点和nat路由转发功能;

#!/system/bin/shssid=3399-AP #设置热点的SSID(无线网络名称)为"3399-AP"
passwd=12345678 #设置热点的密码为"12345678"LOGCAT_TAG=softap #设置日志标签为"softap",用于在日志中标识软AP的相关信息
interface=wlan1 #设置接口名称为"wlan1",这是用于启动软AP的无线网络接口stop(){ndc netd 6001 tether stopndc netd 6002 softap stopap
}start(){insmod /system/lib/modules/8821cu.ko #加载无线网卡驱动模块sleep 3busybox ifconfig $interface downndc netd 5000 softap fwreload $interface APbusybox ifconfig $interface up# cat /sys/class/net/wlan1/address | busybox awk -F':' '{print "-"$5$6}'# ssid_suffix=`cat /sys/class/net/$interface/address | busybox awk -F':' '{print "-"$5$6}'`# ssid+=$ssid_suffixlog -t $LOGCAT_TAG "Start wifi softap: name=$ssid, pwd=$passwd"echo "Start wifi softap: name=$ssid, pwd=$passwd"ndc netd 5001 softap set $interface $ssid broadcast 153 wpa2-psk $passwdndc netd 5002 softap startapbusybox ifconfig $interface 192.168.43.1ndc netd 5003 tether start 192.168.43.2 192.168.43.254echo 1 > /proc/sys/net/ipv4/ip_forwardndc netd 5004 nat enable $interface wlan0 1 192.168.43.1/24ip rule add from all lookup main pref 9999SYSTEM_DNS=$(getprop net.dns1)iptables -t nat -I PREROUTING -i $interface  -p udp --dport 53 -j DNAT --to-destination $SYSTEM_DNS
}stop
start

start_softap.sh部分参数解析:
1> interface=wlan1 //默认作为热点的wifi端口为wlan1
2> insmod /system/lib/modules/8821cu.ko //默认加载8821cu驱动,可以根据自己挑选的wifi加载对应的ko,注意Android8.1的路径为/vendor/lib/modules/wifi/8188eu.ko;
3> ndc netd 5001 softap set $interface $ssid broadcast 6 wpa2-psk $passwd //默认是2.4G热点channel 6,如果选择的模块支持5G并且需要用5G作为热点,可以将6改成153;

  1. 生成一个AP热点:name=3399-AP, pwd=12345678(本地测试至少可以供10个设备连接,上限暂时没有测试出来);
    ifconfig可看到wlan0与wlan1两个节点:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/132127.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶之高精地图介绍

高精地图 文章目录 高精地图前言什么是高精地图高精数据分发引擎1.3 名词解释1. ADAS(Advanced DriverAssistance System)2. 为什么需要高精数据的分发引擎 高精数据分发引擎的建设高精数据分发引擎与ADAS应用的关系高精数据分发引擎架构高精数据分发引擎的模型表达路网模型的抽…

IMAU鸿蒙北向开发-2023年9月5日学习日志

1. 5种调试方式 1.1 Previewer 在侧边 Previewer 选项卡内可以预览Entry。 如果要单独预览组件,可以在给组件加Preview 装饰器 1.2 Local Emulator(本地模拟) 1.3 Remote Emulator(远程模拟) 使用时需要登录华为开发…

机器学习开源工具BatteryML,一站式分析与预测电池性能

编者按:天下苦锂电池寿命久矣,时闻“开车出,推车回”,又闻“充电两小时,待机两分钟”,亦闻“气温骤降,请注意电池保暖”……随着以锂离子电池为动力源的产品,如手机、电脑、新能源汽…

python3对文件编码的转换处理

前言: 嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 公司同事邀我一起给SQLSERVER 2008导数, 数据来源有高斯和ORACLE, 数据文件保存格式有UTF-8和GBK。 当我在做测试导入的时候发现S…

【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题

前言 💓作者简介: 加油,旭杏,目前大二,正在学习C,数据结构等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏&#x1…

2023备战秋招Java面试八股文合集

Java就业大环境仍然根基稳定,市场上有很多机会,技术好的人前景就好,就看你有多大本事了。小编得到了一份很不错的资源,建议大家可以认真地来看看以下的资料,来提升一下自己的核心竞争力,在面试中轻松应对面…

学习笔记|回顾(1-12节课)|应用模块化的编程|添加函数头|静态变量static|STC32G单片机视频开发教程(冲哥)|阶段小结:应用模块化的编程(上)

文章目录 1.回顾(1-12节课)2.应用模块化的编程(.c .h)Tips:添加函数头创建程序文件三步引脚定义都在.h文件函数定义三步bdata位寻址变量的使用 3.工程文件编写静态变量static的使用完整程序为:demo.c:seg_led.c:seg_led.h: 1.回顾(1-12节课) 一、认识单…

docker系列(3) - 常用软件安装

文章目录 3. docker安装常用软件3.1 安装nginx3.2 安装redis3.3 安装mysql3.4 部署springboot程序3.4.1 编写dockerfile3.4.2 构建镜像3.4.3 启动镜像 3. docker安装常用软件 3.1 安装nginx docker pull nginx#挂载启动 docker run -it -d \ --namenginx \ --networkpub_netw…

【计算机网络】什么是WebSocket?

目录 WebSocket简介协议优点使用场景 WebSocket WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务器主动向客户端推送数据。在WebSocket API中&a…

Leecode1160: 拼写单词

直接使用一个哈希表存整体的结果,一个临时的哈希表每次算一遍,但是1是要设置标志位来判断最后是否正确并加上长度,2是千万要记得每次新建一个空间来存哈希表绝对不能不空间就等于,会出事!!

Copymonkey:AI生成营销广告文案

【产品介绍】 CopyMonkey.ai 是一家成立于2021年的创新型人工智能(AI)初创企业,专注于开发一款强大的AI写作助手。我们的产品旨在帮助用户以更高效且更自然的方式创作各种文本内容,无论是文章、博客、电子邮件、简历还是其他类型的…

Sketch for mac v98.2最新版 修复了打开某些文档时导致 Sketch 崩溃的错误

Sketch是一款专为Mac操作系统设计的矢量图形编辑软件,被广泛应用于UI/UX设计、网页设计、移动应用设计等领域。Sketch提供了各种工具和功能,包括绘图、图形设计、排版等,可以帮助设计师轻松地创建高质量的矢量图形和模型。 Sketch for mac更…

AIGC:【LLM(八)】——Baichuan2技术报告

文章目录 摘要1. 引言2. 预训练2.1 预训练数据(Pre-training Data)2.2 架构(Architecture)2.3 令牌化器(Tokenizer)2.3.1 Positional Embeddings 2.4 激活和规范化(Activations and Normalizati…

巨人互动|Facebook海外户Facebook风控规则有什么

Facebook是全球最大的社交媒体平台之一,每天有数十亿的用户在其上发布、分享和交流各种内容。为了维护平台的安全性和用户体验,Facebook制定了严格的风控规则来监测和处理违规行为。下面小编讲讲Facebook风控规则。 巨人互动|Google海外户&Google Ad…

Ubuntu不能上网解决办法

问题及现象 Ubuntu的虚拟机(18.04)总是莫名就不能上网了。 使用ifconfig -a 查看,ensxx(xx为虚拟机分配的id号)对应的网卡有mac地址,但是没有分配ip地址。 Network中也没有Wired的选项。 临时解决方案 使…

一阶微分方程

目录 可分离变量的方程 齐次微分方程 一阶线性微分方程 伯努科方程 全微分方程 可分离变量的方程 可分离变量的方程是一种常见的一阶常微分方程类型,其特点是可以通过将变量分离到方程的两侧,从而可以分别对各自变量进行积分。一般形式的可分离变量…

ElasticSearch系列-简介与安装详解

全文检索 讲ElasticSearch之前, 需要先提一下全文检索.全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。 …

文本直接生成20多种背景音乐,免费版Stable Audio来了!

9月14日,著名开源平台Stability AI在官网发布了,音频生成式AI产品Stable Audio。(免费使用地址:https://www.stableaudio.com/generate) 用户通过文本提示就能直接生成摇滚、爵士、电子、嘻哈、重金属、民谣、流行、朋…

天线原理【1】 天线辐射的物理过程

1 前言 前面讲以振子方程入手分析电磁场问题的解的时候,有网友发信息说这和天线有什么关系,怎么从振子入手分析天线; 那我就开始写几次关于天线的。 有一种说法是,能给任何人讲懂的理论,才说明你真的懂了。 对天线部…

地理地形sdk:Tatuk GIS Developer Kernel for .NET Crack

Tatuk GIS Developer Kernel for .NET 是一个变体,它是受控代码和 .NET GIS SDK,用于为用户 Windows 操作系统创建专业 GIS 软件的过程。它被认为是一个完全针对Win Forms 的.NET CIL,WPF 框架是针对C# 以及VB.NET、VC、Oxy 以及最终与.NET 的…