当前位置: 首页 > news >正文

WIFI国家码修改信道方法_高通平台

WIFI国家码修改信道方法_高通平台

目录

Qcom平台修改方法

修改前准备

相关Sheet说明

COUNTRY_LOOKUP sheet

REG_DMN_PAIR_LOOKUP、REG_DOMAIN_PAIRS_INPUT与ALL_COUNTRIES_INPUT sheet

 REG_DOMAINS_5G_LOOKUP与REG_DOMAINS_5G_INPUT sheet

FLAGS标记定义

Regulatory_BDF_In_6G_Data.xlsx sheet总结

脚本运行

国家码信道验证方法

案例分析

JP 国家码配置 5180到5240信道, 5260到5320信道 ,5550到5720信道

REG_RULES_5G_INPUT

REG_RULES_5G_LOOKUP

ALL_COUNTIES_INPUT

REG_DMN_PAIR_LOOKUP

REG_DOMAIN_PARIS_INPUT

REG_DOMAINS_5G_LOOKUP

REG_DOMAINS_5G_INPUT

总结


1 Qcom平台修改方法

修改前准备

打开代码目录, BP分支中WLAN.MSL.3.0.1\wlan_proc\wlan\phyrf_svc_li\tools\bdfUtil\Regulatory_BDF_tools

打开该目录下的Regulatory_BDF_6G_In_Data.xlsx

  1. 相关Sheet说明

    1. COUNTRY_LOOKUP sheet

COUNTRY_LOOKUP sheet是定义国家码的,添加国家码时,需要在最后面添加CTRY_开头的国家码字符和一个不和前面重复的十进制数,如下图

      1. REG_DMN_PAIR_LOOKUP、REG_DOMAIN_PAIRS_INPUT与ALL_COUNTRIES_INPUT sheet

ALL_COUNTRIES_INPUT sheet添加国家码CTRY_MCLCSTSJO对应域WORD_WORLD和国家码简写,带宽等

REG_DMN_PAIR_LOOKUP添加,名称和序号也必须唯一,参照前面的,递增1

REG_DOMAIN_PAIRS_INPUT sheet添加,其中WORD_WORLD是REG_DMN_PAIR_LOOKUP sheet定义的,WORLD_5G_3_id是REG_DOMAINS_5G_LOOKUP定义的,对应的信道在REG_DOMAINS_5G_INPUT设置;后面的WORLD_2G_2_id我这里是沿用之前的,如果要重新定义需要在REG_DOMAINS_5G_LOOKUP、REG_DOMAINS_5G_INPUT里定义和设置信道。

同样的如果之前的REG DOMAIN ID,和想要加的信道相同,也可以使用之前的,例如WORLD_5G_2_id

      1.  REG_DOMAINS_5G_LOOKUP与REG_DOMAINS_5G_INPUT sheet

REG_DOMAINS_5G_LOOKUP是5G的监管域,本人理解就是定义一个域包含哪些信道段

在REG_DOMAINS_5G_LOOKUP shett里添加WORLD_5G_3_id,VALUE也必须是唯一的,参照前面的,递增1

然后在REG_DOMAINS_5G_INPUT 相同行数添加,其中UM_REG_RULES必须与RULE总数相同,这里是52

类似的有2G的监管域REG_DOMAINS_2G_LOOKUP与REG_DOMAINS_2G_INPUT

到此,新添一个国家码信道,添加完成了

      1. FLAGS标记定义

一些FLAG的描述

REGULATORY_CHAN_DISABLED:This channel is disabled.

REGULATORY_CHAN_NO_IR:不然发起辐射,也就是不能主动发我探测或信号帧、只能被动扫描,监听周围无线网络;No-IBSS,意味着不支持自组网模式.

REGULATORY_CHAN_RADAR:在该频道进行雷达检测,如果有雷达在使用这个频道,可能会切换到其它信道.

REGULATORY_CHAN_NO_OFDM:该频道上不允许使用 OFDM(正交频分复用)技术, OFDM是将高速数据流分成多个较低速率的子载波进行传输的技术。

REGULATORY_CHAN_INDOOR_ONLY:只允许在室内使用,可能是为了保护其他无线系统的正常运行。

REGULATORY_CHAN_NO_HT40:不允许使用 40 MHz 的带宽.

REGULATORY_CHAN_NO_80MHZ:不允许使用 80 MHz 的带宽.

REGULATORY_CHAN_NO_160MHZ:不允许使用 160 MHz 的带宽.

REGULATORY_CHAN_NO_20MHZ:不允许使用 20 MHz 的带宽.

REGULATORY_CHAN_NO_10MHZ:不允许使用 10 MHz 的带宽.

REGULATORY_PHYMODE_NO11A:不允许使用 11a.

REGULATORY_PHYMODE_NO11B:不允许使用 11b.

REGULATORY_PHYMODE_NO11G:不允许使用 11g.

REGULATORY_CHAN_NO11N:不允许使用 11n.

REGULATORY_PHYMODE_NO11AC:不允许使用 11ac,也就是Wi-Fi 5.

REGULATORY_PHYMODE_NO11AX:不允许使用 11ax,也就是Wi-Fi 6.

修改FLAGS的方法如下,首先从ALL_COUNTRIES_INPUT sheet里找到对应国家比如CTRY_JAPAN,通过REG_DOMAIN_PAIRS_INPUT找到对应的5G域MKK17_id,通过REG_DOMAINS_5G_LOOKUP里MKK17_id的行数找到REG_DOMAINS_5G_INPUT对应行数就是这个域对应的信道段,在REG_RULES_5G_LOOKUP找其中一个段CHAN_5170_5250_8,通过行数12找到REG_RULES_5G_INPUT里的的12行就是这个段对应的频道范围起始频道、结束频道、带宽、PWR、还有FLAGS,在这里就可以修改了

通过这张图可以看到整个Regulatory_BDF_In_6G_Data.xlsx如何定义国家码了,将途中的5G改为2G就是修改2.4G频道的方法。图中只修改了CHAN_5170_5250_8,还有其它组,也是一样的。

      1. Regulatory_BDF_In_6G_Data.xlsx sheet总结

  • REGDB_VERSION_HISTORY:修改记录的sheet

LOOKUP结尾的sheet都是定义,添加国家码、域组(包含2.4G域和5G域)、域(包含很多信道段)、信道段都是通过这些带LOOKUP的shett,FLAGS的话我认为是不能添加的,除非有其它对应修改

  • REG_DOMAINS_2G_LOOKUP:2.4G域定义的sheet
  • REG_DOMAINS_5G_LOOKUP:5G域定义的sheet
  • REG_RULES_2G_LOOKUP:2G信道段定义的sheet
  • REG_RULES_5G_LOOKUP:5G信道段定义的sheet
  • IMPORTANT_MACROS_LOOKUP:重要的FLAGS定义的sheet
  • DFS_LOOKUP:DFS FLAGS定义的sheet
  • CTL_LOOKUP:CTL FLAGS定义的sheet
  • COUNTRY_LOOKUP:国家码定义的sheet
  • REG_DMN_PAIR_LOOKUP:5G和2.4G域组定义的sheet

INPUT结尾的sheet都是赋值,国家码、域组、域、信道段定义个十进制值,不能重复,这个应该在解析表格时为了程序容易辨识

  • ALL_COUNTRIES_INPUT:设置每个国家码对应的域组、国家码简写、2.4G带宽、5G带宽等
  • REG_DOMAIN_PAIRS_INPUT:设置域组对应的5G和2.4G域
  • REG_RULES_2G_INPUT:设置2.4G域对应的信道范围、带宽、power、FLAGS、PAD_INTERNAL
  • REG_RULES_5G_INPUT:设置5G域对应的信道范围、带宽、power、FLAGS、PAD_INTERNAL
  • REG_DOMAINS_5G_INPUT:设置5G域的范围,也就是具体支持哪些域组
  • REG_DOMAINS_2G_INPUT:设置2.4G域的范围,也就是具体支持哪些域组
    1. 脚本运行

修改完Regulatory_BDF_6G_In_Data.xlsx后,运行同一目录下RegDB_excel2bin.py Regulatory_BDF_6G_In_Data.xlsx得到regdb.bin 和regdb.txt

为了优先使用regdb.bin内容来控制信道,需要将regdb.txt内regDbEnable置为1

具体规则是:

Software firstchecksinregdb.binand uses the following flow to load regulatory database:

■If regDbEnable (in regdb.bin) = 1, then take values from regdb.bin.

■If regDbEnable (in regdb.bin) = 0, then check for regDbFlag in bdf.

■If regDbFlag (in bdf) = 1, then take values from BDF.

■If regDbFlag (in bdf) is also 0,then take default values from driver/firmware.

    1. 国家码信道验证方法

如果不想等全编验证的话,可以将生成的regdb.bin push进手机并重启生效后查看当前国家码及信道

临时PUSH指令:

adb root

adb remount

adb shell mount -o rw,remount  /dev/block/sde6 /vendor/firmware_mnt

adb push regdb.bin  /vendor/firmware_mnt/image/qca6750/regdb.bin

adb shell sync

adb reboot

需要提交的文件

虽然起作用的只是regdb.bin,但是其它文件也要修改特别是Regulatory_BDF_In_6G_Data.xlsx,因为要是没有提交,后面人修改的这个文件就不包含你的修改,通过它生成的regdb.bin也就没有你的修改。

手机重启后,将国家码设置为对应国家,然后使用命令读取支持的信道,也可查看Log。

  1. 案例分析

    1. JP 国家码配置 5180到5240信道, 5260到5320信道 ,5550到5720信道

      1. REG_RULES_5G_INPUT

在REG_RULES_5G_INPUT  里面找到第107行,对应的起始信道5170,终止信道5250,带宽80M, 中心频段是5180,5200,5220,5240;

找到第108行,对应的起始信道为5250,终止信道为5330,带宽80M,中心频段是5240,5260,5280,5300;

找到第115行,对应的起始信道为5490,终止信道为5730,带宽为160M,中心频段为5500,5520,5540, 5560,5580,5600,5620,5640,5660,5680,5700,5720

      1. REG_RULES_5G_LOOKUP

在REG_RULES_5G_LOOKUP  107行找到信道段是CHAN_5170_5250_15

在REG_RULES_5G_LOOKUP  108行找到信道段是CHAN_5250_5330_20

在REG_RULES_5G_LOOKUP  115行找到信道段是CHAN_5490_5730_1

      1. ALL_COUNTIES_INPUT

ALL_COUNTIES_INPUT里面通过国家码JP搜索到第207行,JP对应的区域码为MKK5_MKKC

      1. REG_DMN_PAIR_LOOKUP

 在REG_DMN_PAIR_LOOKUP  中搜索到MKK5_MKKC

      1. REG_DOMAIN_PARIS_INPUT

在REG_DOMAIN_PARIS_INPUT中搜索到MKK5_MKKC对应的WIFI 5G的信道段为MKK5_id

      1. REG_DOMAINS_5G_LOOKUP

在REG_DOMAINS_5G_LOOKUP中找到MKK5_id对应47行

      1. REG_DOMAINS_5G_INPUT

在REG_DOMAINS_5G_INPUT中47行配置RULE1为CHAN_5170_5250_15,RULE2为CHAN_5250_5330_20,RULES3为CHAN_5490_5730_1

最后保存Regulatory_BDF_In_6G_Data.xlsx文件, 编译regdb.bin文件,按前面方法push到手机,验证,最后提交相关文件上库。

总结

通过相关修改,测试机作为WIFI STA(2.4G)时,支持1-13ch

测试机作为WIFI STA(5G)时,支持36-64ch 和100-144ch。

http://www.lryc.cn/news/626463.html

相关文章:

  • 开发避坑指南(29):微信昵称特殊字符存储异常修复方案
  • 多模型创意视频生成平台
  • 微美全息(NASDAQ:WIMI):以区块链+云计算混合架构,引领数据交易营销科技新潮流
  • Linux: network: arp: arp_accept
  • imx6ull-驱动开发篇29——Linux阻塞IO 实验
  • Java并发容器详解
  • ubuntu go 环境变量配置
  • uv,下一代Python包管理工具
  • ⭐CVPR2025 给3D高斯穿 “UV 衣” 框架[特殊字符]
  • grpc 1.45.2 在ubuntu中的编译
  • 【软考架构】软件工程:软件项目管理
  • 氢元素:宇宙基石与未来能源之钥的多维探索
  • HTML <meta name=“color-scheme“>:自动适配系统深色 / 浅色模式
  • 简笔成画:让AI绘画变得简单而有趣
  • 基于隐函数定理的偏导数计算及其C++实现
  • Vue3 学习教程,从入门到精通,基于 Vue 3 + Element Plus + ECharts + JavaScript 开发图书销售网站(42)
  • K8S-Ingress资源对象
  • Linux-文本搜索工具grep
  • Nginx 负载均衡和缓存配置
  • 栈的概念(韦东山学习笔记)
  • java17学习笔记-switch总结
  • 服务器硬盘进行分区和挂载
  • 《CDN加速的安全隐患与解决办法:如何构建更安全的网络加速体系》
  • CSDN技术探讨:GEO(生成式引擎优化)如何助力品牌在AI搜索中脱颖而出
  • 有向图(Directed Graph)和有向无环图(Directed Acyclic Graph,DAG)代码实践
  • mRNA 的修饰方式有哪些?它们分别作用于哪些位置?
  • strncpy 函数使用及其模拟实现
  • 医疗AI与医院数据仓库的智能化升级:异构采集、精准评估与高效交互的融合方向(上)
  • Model Context Protocol (MCP) - 尝试创建和使用一下MCP Client
  • 软件测试:如何利用Burp Suite进行高效WEB安全测试