MTK 驱动调试手册

MTK无线驱动开发调试手册

    1、前言
     2、MTK Wifi芯片简介
         2.1 单频WIFI芯片信息
         2.2 WiFi驱动版本
     3、MTK 无线驱动开发调试
         3.1 常用命令行
             3.1.1 设置WLAN驱动打印级别
             3.1.2 查看驱动版本
             3.1.3 设置国家区域
             3.1.4 设置国家码
             3.1.5 设置ACL表的访问策略
             3.1.6 重置所有统计计数器
             3.1.7 触发邻区扫描
             3.1.8 设置国家字符串
             3.1.9 设置AP SSID
             3.1.10 设置WLAN模式
             3.1.11 设置固定TX模式为CCK或者OFDM
             3.1.12 设置OFDM基本速率
             3.1.13 设置WIFI信道
             3.1.14 设置自动信道选择算法
             3.1.15 设置自动信道选择定时检查时间
             3.1.16 设置自动信道忽略信道列表标志
             3.1.17 设置自动信道忽略信道列
             3.1.18 设置Beacon周期
             3.1.19 设置Dtim周期
             3.1.20 设置发射功率百分比
             3.1.21 设置11b 、11g保护
             3.1.22 设置启用或禁用OLBC
             3.1.23 设置启用或禁用TxPreamble
             3.1.24 设置启用或禁用Tx Burst模式
             3.1.25 设置启用或禁用包聚合
             3.1.26 设置启用或禁用在相同BSSID内STA之间的包不转发
             3.1.27 设置启用或禁用在每个BSSID接口间不转发
             3.1.28 设置启用或禁用在每个BSSID接口间不转发组播/广播包
             3.1.29 设置启用或禁用SSID隐藏
             3.1.30 设置启用或禁用short slot time
             3.1.31 设置手动断开指定连接的STA
             3.1.32 设置手动断开所有连接的STA
             3.1.33 设置组播物理模式
             3.1.34 设置组播包的MCS
             3.1.35 设置限制每个BSS关联客户端的最大数量
             3.1.36 设置启用或禁用自动回落速率控制功能
             3.1.37 设置启用或禁用启用或禁用绿色AP功能
             3.1.38 设置MBSS无线phy模式
             3.1.39 设置启用或禁用启用或禁用硬件天线分集
             3.1.40 设置HT WLAN带宽
             3.1.41 设置启用或禁用11AC 80MHz带宽支持
             3.1.42 设置启用或禁用11AC STBC支持
             3.1.43 设置启用或禁用11 AC 带宽信令
             3.1.44 设置启用或禁用拒绝非VHT STA连接
             3.1.45 设置HT调制编码方式MCS
             3.1.46 设置保护间隔Guard interval
             3.1.47 设置HT操作模式
             3.1.48 设置启用或禁用HT STBC支持
             3.1.49 设置HtExtcha
             3.1.50 设置1个A-MPDU中MPDU的最小分离
             3.1.51 设置启用或禁用HT反向授权Reverse Direction Grant
             3.1.52 设置启用或禁用AMSDU部分
             3.1.53 设置HtAutoBa
             3.1.54 设置BADeline
             3.1.55 设置Block Ack window size
             3.1.56 设置一个传输burst的AMPDU聚合大小的数量
             3.1.57 设置手动添加一个BA条目到BA 表里
             3.1.58 设置手动删除一个Originator BA条目
             3.1.59 设置手动删除一个Recipient BA条目
             3.1.60 设置启用或禁用HT保护
             3.1.61 设置启用或禁用HT MIMO Power saving mode
             3.1.62 设置当密码为TKIP或WEP时,启用或禁用11N Rate
             3.1.63 设置触发 HT20/40 共存重新扫描
             3.1.64 设置启用或禁用HT BSS共存
             3.1.65 设置传输的空间流的数量
             3.1.66 设置接收的空间流的数量
             3.1.67 设置启用或禁用11B/G packet aggregation
             3.1.68 设置RTS门限
             3.1.69 设置Fragment门限
             3.1.70 设置AP踢出STA的最低限制
             3.1.71 设置AssocReq RSSI阈值拒绝信号弱的STA
             3.1.72 显示WLAN统计计数器
             3.1.73 显示邻区扫描结果
             3.1.74 显示与AP关联的STA的MAC地址
             3.1.75 显示块ACK表的原始数据信息
             3.1.76 显示WPS配置文件详细信息
             3.1.77 读写e2p内容
             3.1.78 设置非关联sta的rssi测量
             3.1.79 显示当前信息
         3.2 常见问题定位排查方法
             3.2.1 无线STA掉线问题
             3.2.2 无线看视频卡顿问题
             3.2.3 无线吞吐量问题

1、前言

本文主要以MTK无线芯片MT7603为例,记录MTK无线驱动开发过程中常用命令以及常规无线问题的排查手段。
2、MTK Wifi芯片简介
2.1 单频WIFI芯片信息
MT7603E
高效能 802.11n,专为小型的 Wi-Fi 设备而设
联发科技 MT7603E 是一款高度整合式 Wi-Fi 单芯片,支持 300 Mbps PHY 速率。它完全符合 IEEE 802.11n 及 IEEE 802.11 b/g 标准,提供高标准而功能丰富的无线连接,并可从更远的距离提供可靠稳定、具成本效益的处理能力。优化的射频架构及基频算法带来卓越的效能表现,以及可靠而低功耗的处理能力。它的智能型媒介访问控制 (MAC) 设计采用效率极高的直接内存访问 (DMA) 引擎,亦配备可减轻主处理器负荷的硬件信息处理加速器。MT7603E 的设计旨在提供符合安全性、服务品质及国际规范标准的功能,让终端用户在任何情况下也能随时享有最佳的效能表现。
WIFI
IEEE 802.11:b/g/n
Wi-Fi Frequency:2.4GHz
Antenna:2T2R
Data Throughput:300Mbit/s
Functions And Features
MAC:Yes
RF:Yes
ePA/eLNA:Yes
BPP:Yes
AP/Repeater:Linux AP/Repeater
STA:Android,Linux
Interface:PCI-Express 1.1
2.2 WiFi驱动版本
MT7603E
# iwpriv ra0 show driverinfo && dmesg -c
driver version: 4.0.1.0rev2.P1+ (Tue Apr 9 03:35:59 CST 2019 Tue Apr 9 03:35:59 CST 2019) .
fw version:0.0.00 build:4a
build time:FjXc
3、MTK 无线驱动开发调试
3.1 常用命令行

语法:iwpriv ra0/rai0 set [parameters]=[Value]
下文中以2.4G无线主接口ra0为例子。
3.1.1 设置WLAN驱动打印级别

值:iwpriv ra0 set Debug=3
0~5
0:Debug Off
1:Debug Error
2:Debug Warning
3:Debug Trace
4:Debug Info
5:Debug Loud
3.1.2 查看驱动版本

值: iwpriv ra0 show driverinfo && dmesg -c
3.1.3 设置国家区域

设置2.4G国家区域
值:iwpriv ra0 set CountryRegion=5
在这里插入图片描述
设置5G国家区域
值: iwpriv ra0 set CountryRegionABand=7
在这里插入图片描述
3.1.4 设置国家码

值:iwpriv ra0 set CountryCode=CN
2个字符,比如CN就表示中国,US表示美国。可忽略。
3.1.5 设置ACL表的访问策略

值:iwpriv ra0 set AccessPolicy=0
0: Disable this function
1: Allow all entries of ACL table to associate AP
2: Reject all entries of ACL table to associate AP
3.1.6 重置所有统计计数器

值:iwpriv ra0 set ResetCounter=1
3.1.7 触发邻区扫描

值:iwpriv ra0 set SiteSurvey=1
主动扫描:“iwpriv ra0 set SiteSurvey=”
被动扫描:“iwpriv ra0 set SiteSurvey=11ac-AP”
3.1.8 设置国家字符串

值:iwpriv ra0 set CountryString=CHINA
3.1.9 设置AP SSID

值:iwpriv ra0 set SSID=11n-AP
0~~Z,1~32 ASCII字符串
3.1.10 设置WLAN模式

值:iwpriv ra0 set WirelessMode=5

    0: legacy 11b/g mixed
     1: legacy 11B only
     2: legacy 11A only
     3: legacy 11a/b/g mixed
     4: legacy 11G only
     5: 11ABGN mixed
     6: 11N only
     7: 11GN mixed
     8: 11AN mixed
     9: 11BGN mixed
     10: 11AGN mixed
     11: 11N only in 5G band only
     14: 11A/AN/AC mixed 5G band only(Only 11AC chipset support)
     15: 11 AN/AC mixed 5G band only(Only 11AC chipset support)

3.1.11 设置固定TX模式为CCK或者OFDM

值:iwpriv ra0 set FixedTxMode=CCK

    CCK
     OFDM
     HT

3.1.12 设置OFDM基本速率

值:iwpriv ra0 set BasicRate=
0~4095
在这里插入图片描述
3.1.13 设置WIFI信道

值:iwpriv ra0 set Channel=6
802.11b/g: 1 ~ 14 (it must agree with the CountryRegion setting)
802.11a: 36~165 (it must agree with the CountryRegionABand setting)
3.1.14 设置自动信道选择算法

值:iwpriv ra0 set AutoChannelSel=2
0: Disable
1: Old Channel Selection Algorithm(AP Count)
2: New Channel Selection Algorithm(CCA)
3:Busytime
5: AP count and not switch the best channel
6:CCA and not switch the best channel
7:Busytime and not switch the best channel
alg1-3: 评估除最优信道,并切换到最优信道; alg5-7:只扫描出评分结果,不进行信道切换
3.1.15 设置自动信道选择定时检查时间

值:iwpriv ra0 set ACSCheckTime=3
单位:小时
0: Disable
3.1.16 设置自动信道忽略信道列表标志

值:iwpriv ra0 set AutoChannelSkipListFlag=1
单位:小时
0: Disable
1: Enable
3.1.17 设置自动信道忽略信道列

值:iwpriv ra0 set AutoChannelSkipList=<channel_list>
example:
<channel_list>=2;3;4;5;7;8;9;10;11;
3.1.18 设置Beacon周期

值:iwpriv ra0 set BeaconPeriod=100
20 ~ 1024 (unit is in milli-seconds)
3.1.19 设置Dtim周期

值:iwpriv ra0 set DtimPeriod=1
1~5
3.1.20 设置发射功率百分比

值:iwpriv ra0 set TxPower=100
0~100
Note:
91 ~ 100% & AUTO, treat as 100% in terms of mW
61 ~ 90%, treat as 75% in terms of mW -1dBm
31 ~ 60%, treat as 50% in terms of mW -3dBm
16 ~ 30%, treat as 25% in terms of mW -6dBm
10 ~ 15%, treat as 12.5% in terms of mW -9dBm
0 ~ 9 %, treat as MIN(~3%) in terms of mW -12dBm
3.1.21 设置11b 、11g保护

值:iwpriv ra0 set BGProtection=0
0: disable
1: Always on
2:Always off
3.1.22 设置启用或禁用OLBC

值:iwpriv ra0 set DisableOLBC=0
0: disable
1: enable
3.1.23 设置启用或禁用TxPreamble

值:iwpriv ra0 set TxPreamble=1
0: disable
1: enable
3.1.24 设置启用或禁用Tx Burst模式

值:iwpriv ra0 set TxBurst=0
0: disable
1: enable
Question 1: TX和RX性能始终不平衡
A: Wi-Fi性能测试中当遇到TX和RX性能不平衡问题时,请检查TxBurst选项处于关闭或打开状态。当TxBurst开启时,TX数据包的优先级将高于RX数据包。结果,WLAN-TX的性能将高于RX。这个问题经常出现在快速以太网+WLAN解决方案中。千兆位以太网+WLAN解决方案没有这样的问题。
Question 2: How to turn off TxBurst?
A:
By profile:
TxBurst=0
By iwpriv command:
iwpriv ra0 set TxBurst=0
Note: 当设置WMM时,关闭TxBurst
在这里插入图片描述
3.1.25 设置启用或禁用包聚合

值:iwpriv ra0 set PktAggregate=1
0: disable
1: enable
3.1.26 设置启用或禁用在相同BSSID内STA之间的包不转发

值:iwpriv ra0 set NoForwarding=0
0: disable
1: enable
该命令可以做到一般的无线隔离,对于需要隔离特殊包的需要在增加指定滤包条件。
3.1.27 设置启用或禁用在每个BSSID接口间不转发

值:iwpriv ra0 set NoForwardingBTNBSSID=1
0: disable
1: enable
3.1.28 设置启用或禁用在每个BSSID接口间不转发组播/广播包

值:iwpriv ra0 set NoForwardingMBCast=1
0: disable
1: enable
3.1.29 设置启用或禁用SSID隐藏

值:iwpriv ra0 set HideSSID=1
0: disable
1: enable
3.1.30 设置启用或禁用short slot time

值:iwpriv ra0 set ShortSlot=0
0: disable
1: enable
3.1.31 设置手动断开指定连接的STA

值:iwpriv ra0 set DisConnectSta=00:11:22:33:44:55
[MAC address]
3.1.32 设置手动断开所有连接的STA

值:iwpriv ra0 set DisConnectAllSta=1
1: disconnect all STAs
3.1.33 设置组播物理模式

值:iwpriv ra0 set McastPhyMode=0
0: Disable
1: CCK
2: OFDM
3: HTMIX
3.1.34 设置组播包的MCS

值:iwpriv ra0 set McastMcs=0
0~15
3.1.35 设置限制每个BSS关联客户端的最大数量

值:iwpriv ra0 set MaxStaNum=0
0: disable this function
1~32 (default:32)
3.1.36 设置启用或禁用自动回落速率控制功能

值:iwpriv ra0 set AutoFallBack=1
0: disable
1: enable
3.1.37 设置启用或禁用启用或禁用绿色AP功能

值:iwpriv ra0 set GreenAP=0
0: disable
1: enable
3.1.38 设置MBSS无线phy模式

值:iwpriv ra0 set MBSSWirelessMode=9
0: 802.11 B/G mixed
1: 802.11 B only
2: 802.11 A only
4: 802.11 G only
6: 802.11 N only
7: 802.11 G/N mixed
8: 802.11 A/N mixed
9: 802.11 B/G/N mixed
10: 802.11 A/G/N mixed
11: 802.11 N in 5G band only
3.1.39 设置启用或禁用启用或禁用硬件天线分集

值:iwpriv ra0 set HwAntDiv=0
0: disable
1: enable
Note: Only support in RT5350.
3.1.40 设置HT WLAN带宽

值:iwpriv ra0 set HtBw=1
0: 20 MHz
1: 20/40 MHz
3.1.41 设置启用或禁用11AC 80MHz带宽支持

值:iwpriv ra0 set VhtBw=1
0: disable
1: enable
Note: 11AC chipset only
3.1.42 设置启用或禁用11AC STBC支持

值:iwpriv ra0 set VhtStbc=1
0: disable
1: enable
Note: 11AC chipset only
3.1.43 设置启用或禁用11 AC 带宽信令

值:iwpriv ra0 set VhtBwSignal=1
0: disable
1: enable
Note: 11AC chipset only
3.1.44 设置启用或禁用拒绝非VHT STA连接

值:iwpriv ra0 set VhtDisallowNonVHT=1
0: disable
1: enable to reject non-VHT STA
Note: 11AC chipset only
3.1.45 设置HT调制编码方式MCS

值:iwpriv ra0 set HtMcs=33
0 ~15, 32: Fix MCS rate for HT rate.
33: Auto Rate Adaption, recommended
3.1.46 设置保护间隔Guard interval

值:iwpriv ra0 set HtGi=1
0: long guard interval
1: short guard interval
3.1.47 设置HT操作模式

值:iwpriv ra0 set HtOpMode=0
0: HT mixed mode
1: HT Greenfield mode
3.1.48 设置启用或禁用HT STBC支持

值:iwpriv ra0 set HtStbc=1
0: disable
1: enable
3.1.49 设置HtExtcha

值:iwpriv ra0 set HtExtcha=0
0: below 下面
1: Above 上面
3.1.50 设置1个A-MPDU中MPDU的最小分离

值:iwpriv ra0 set HtMpduDensity=4
0~7
0: no restriction 无限制
1: 1/4 µs
2: 1/2 µs
3: 1 µs
4: 2 µs
5: 4 µs
6: 8 µs
7: 16 µs
3.1.51 设置启用或禁用HT反向授权Reverse Direction Grant

值:iwpriv ra0 set HtRdg=1
0: disable
1: enable
3.1.52 设置启用或禁用AMSDU部分

值:iwpriv ra0 set HtAmsdu=0
0: disable
1: enable
3.1.53 设置HtAutoBa

值:iwpriv ra0 set HtAutoBa=1
0: disable
1: enable
3.1.54 设置BADeline

值:iwpriv ra0 set BADecline=0
0: disable
1: enable
3.1.55 设置Block Ack window size

值:iwpriv ra0 set HtBaWinSize=64
1~64
3.1.56 设置一个传输burst的AMPDU聚合大小的数量

值:iwpriv ra0 set HtTxBASize=64
1~64
3.1.57 设置手动添加一个BA条目到BA 表里

值:iwpriv ra0 set BASetup=00:0c:43:01:02:03-1
16进制MAC地址-10进制tid值
3.1.58 设置手动删除一个Originator BA条目

值:iwpriv ra0 set BAOriTearDown=00:0c:43:01:02:03-1
3.1.59 设置手动删除一个Recipient BA条目

值:iwpriv ra0 set BARecTearDown=00:0c:43:01:02:03-1
3.1.60 设置启用或禁用HT保护

值:iwpriv ra0 set HtProtect=0
0: disable
1: enable
3.1.61 设置启用或禁用HT MIMO Power saving mode

值:iwpriv ra0 set HtMimoPs=0
0: disable
1: enable
3.1.62 设置当密码为TKIP或WEP时,启用或禁用11N Rate

值:iwpriv ra0 set HtDisallowTKIP=0
0: disable
1: enable
3.1.63 设置触发 HT20/40 共存重新扫描

值:iwpriv ra0 set AP2040Rescan=1
1: trigger to rescan
3.1.64 设置启用或禁用HT BSS共存

值:iwpriv ra0 set HtBssCoex=0
0: disable
1: enable
3.1.65 设置传输的空间流的数量

值:iwpriv ra0 set HtTxStream=1 or 2 or 3 or 4
1~4: valid spatial streams
3.1.66 设置接收的空间流的数量

值:iwpriv ra0 set HtRxStream=1 or 2 or 3 or 4
1~4: valid spatial streams
3.1.67 设置启用或禁用11B/G packet aggregation

值:iwpriv ra0 set PktAggregate=1
0: disable
1: enable
3.1.68 设置RTS门限

值:iwpriv ra0 set RTSThreshold=2347
1~2347
3.1.69 设置Fragment门限

值:iwpriv ra0 set FragThreshold=2346
256~2346
3.1.70 设置AP踢出STA的最低限制

值:iwpriv ra0 set KickStaRssiLow=0
0: Disable
0 ~ -100
3.1.71 设置AssocReq RSSI阈值拒绝信号弱的STA

值:iwpriv ra0 set AssocReqRssiThres=0
0: Disable
0~ -100
3.1.72 显示WLAN统计计数器

值:iwpriv ra0 stat
获取每秒wlan统计计数器的结果:
while true;do iwpriv ra0 set ResetCounter=1;sleep 1;iwpriv ra0 stat;done
3.1.73 显示邻区扫描结果

值:iwpriv ra0 get_site_survey
需要先使用”iwpriv ra0 set SiteSurvey=”去进行邻区扫描,收集信息。
3.1.74 显示与AP关联的STA的MAC地址

值:iwpriv ra0 get_mac_table
3.1.75 显示块ACK表的原始数据信息

值:iwpriv ra0 get_ba_table
3.1.76 显示WPS配置文件详细信息

值:wpriv ra0 get_wsc_profile
3.1.77 读写e2p内容

值://Read
iwpriv ra0 e2p offset
//Write EEPROM
iwpriv ra0 e2p offset=value
offset = hex address
value= hex value
3.1.78 设置非关联sta的rssi测量

iwpriv ra0 set mnt_clr=1
iwpriv ra0 set mnt_sta0=00:00:00:00:00:00
iwpriv ra0 set mnt_en=1
iwpriv ra0 set mnt_rule=1:1:1
iwpriv ra0 set mnt_sta0=F8:9A:78:BC:12:98
3.1.79 显示当前信息

值:iwpriv ra0/rai0 show [parameters]
下文中以ra0为例子。
序号    parameters    说明
1    driverinfo    驱动版本信息
2    stat    STA TX/RX等统计信息。
3    stainfo    STA信息,MAC地址/RSSI/MCS/Rate等。
4    stacountinfo    STA TX/RX个数信息。
5    stasecinfo    STA认证加密信息。
6    bainfo    BlockAck信息。
7    connStatus    AP-Clinet连接状态。
8    reptinfo    MAC Repeater信息。
9    wdsinfo    WDS连接列表。
10    igmpinfo    IGMP Snooping列表。
11    mbss    MBSS PHY 模式信息。
12    blockch    DFS blocked 信道列表。
13    devinfo    AP Mode, 信道, 带宽。
14    sysinfo    WDEV信息。
15    trinfo    TX/RX Ring配置信息
16    pwrinfo    功率内部信息
17    txqinfo    TxQ信息
18    sta_tr    AP BSSID/wcid等。
19    stat_reset    统计清零
3.2 常见问题定位排查方法
3.2.1 无线STA掉线问题

1、确认无线是否有无重启现象
2、确认无线是否做完校准
3、确认rssi大小,最宜:-30 > RSSI > -50
4、扫描周围无线信号,看是否存在名称相同的SSID以及相同MAC地址的无线
5、更换sta测试
3.2.2 无线看视频卡顿问题

1、首先确认网络带宽是否满足要求,可以通过有线看视频是否也会出现该现象;
2、在上述没问题的情况下,再排除硬件问题

    2.1)、确认板子是否做过校准,如果校准过,更换设备是否正常
     2.2)、确认wifi RF正常,请检查RF测试报告
     2.3)、有条件的话可以找对比设备,其他厂家的无线能否正常看视频

3、确认环境,在环境较好的地方测试,看是否有改善

4、检测无线信号是否稳定,检查RSSI

    4.1)、范围要在-30 > RSSI > -50,太强(>-30)会有Maximum input 问题

    4.2)、两个RSSI差异不能大于5,可通过调整天线(或衰减)调整RSSI

    4.3)、使用cable线时RSSI调整说明:
         两路天线加相同的衰减,RSSI数值应该相差不大
         如果两路天线加相同的衰减但RSSI数值相差较大,则可能是屏蔽线或天线的问题,此时的check方法:交换2根屏蔽线,看RSSI数值是否随屏蔽线交换而变化,如果随之变化则说明屏蔽线有问题,否则说明可能是信号差的那一路wifi RF有问题。

5、检查Tx/Rx PER (iwpriv ra0 set ResetCounter=1,后间隔1s下几次iwpriv ra0 stat)

    PER最好 < 5%,PER太高会降rate
     Tx retry count = 20, PER=1.8%
     Rx with CRC = 54, PER=10.1%

3.2.3 无线吞吐量问题

1、 HW RF Check

    确认wifi RF正常,请检查RF测试报告

    iwpriv ra0/rai0 e2p 确认eeprom 值是否异常(请硬件工程师确认)

    检查EfuseBufferMode(主要是5G)
         tcapi get Wlan_Common EfuseBufferMode (检查)
         tcapi set WLan11ac_Common EfuseBufferMode 0/1 (设置,用tcapi save 保存)
             5G如果为插卡方式,则EfuseBufferMode=0
             5G如果为on-board,则EfuseBufferMode=1

2、RSSI (iwpriv ra0 show stainfo)

    范围要在-30 > RSSI > -50,太强(>-30)会有Maximum input 问题
     两个RSSI差异不能大于5,可通过调整天线(或衰减)调整Rssi
     使用cable线时RSSI调整说明:
         两路天线加相同的衰减,RSSI数值应该相差不大
         如果两路天线加相同的衰减但RSSI数值相差较大,则可能是屏蔽线或天线的问题,此时的check方法:交换2根屏蔽线,看RSSI数值是否随屏蔽线交换而变化,如果随之变化则说明屏蔽线有问题,否则说明可能是信号差的那一路wifi RF有问题。

3、 检查Tx/Rx PER (iwpriv ra0 set ResetCounter=1,后间隔1s下几次iwpriv ra0 stat)

    PER最好 < 5%,PER太高会降rate
     Tx retry count = 20, PER=1.8%
     Rx with CRC = 54, PER=10.1%

4、检查每秒发包数量

    while true;do iwpriv ra0/rai0 set ResetCounter=1;sleep 1;iwpriv ra0/rai0 stat;done
     根据每秒的Tx/Rx Success的数值,以及sniffer抓包结果(其中有每个封包的大小),可以计算出WiFi每秒处理的数据量,进而检查进出WiFi driver的数据量是否正常。

5、检查Tx/Rx data rate(MCS)是否有降(iwpriv ra0 show stainfo/iwpriv ra0 stat)

    查看Data Rate是否为高Rate: 11n MCS15(2x2 300Mbps, 1x1 144Mbps);11ac MCS9(866Mbps)
     如果MCS有降,尝试Fixed Rate(profile设置MCS=15)看是否稳定
     选择几个固定rate,测试performance,并抓sniffer

6、检查False CCA是否异常

    while true;do iwpriv ra0/rai0 set ResetCounter=1;sleep 1;iwpriv ra0/rai0 stat;done
     每秒下一次iwpriv ra0/rai0 stat,检查每秒false CCA增加的值
         如超过1000,则表示环境教差,可以换Channel尝试;
         如果在屏蔽室环境还是会到几千或者几万,请HW检查硬件(扫FFT),很有可能是板子上有nosie

7、检查BA状态

    iwpriv ra0 show bainfo
     分析sniffer log

8、AGG range 为aggregation 的个数

    iwpriv ra0 stat
     分析sniffer log

9、检查是否和Channel有关

    页面配置channe或者iwpriv ra0 set Channel=xx 更改channel看下是否和channel相关
     如果不同channel差异很大
         请检查是否为环境原因,拿测试ok的板子对比或者在屏蔽室做确认
         HW本身原因,屏蔽室中某些channel有大量false CCA或者有nosie

10、检查平台Switch相关

    检查LAN端是否使用的是千兆网口
         cat /proc/tc3162/gsw_link_st
         条件允许可的话,100M lan切成giga的etherwan测试

11、检查LAN端是否有限速

    qdmamgr_lan get txratelimit/rxratelimit
     关闭限速
         Tx方向
         qdmamgr_lan set txratelimit 0 Disable 1000000
         qdmamgr_lan set txratelimit 1 Disable 1000000
         qdmamgr_lan set txratelimit 2 Disable 1000000
         qdmamgr_lan set txratelimit 3 Disable 1000000
         qdmamgr_lan set txratelimit 4 Disable 1000000
         Rx方向
         qdmamgr_lan set rxratelimit config Disable packet

12、查看switch有无异常信息,类似crc error之类(实际的port以及port6)

    cat /proc/tc3162/gsw_stats

13、检查LAN端是否有丢包(diag工具)

    检测工具:diag
     使用命令:
         insmod diag_2_6_36/diag_3_18.ko //加载模块,版本根据kernel选择
         echo dump > /proc/tc3126/diag //dump芯片关键信息
         echo start > /proc/tc3126/diag //设定起始点,记录数据和状态
         echo stop > /proc/tc3126/diag //设定结束点,并分析起始点和结束点的数据
         注意1:统计过程中会有打印信息,但只分析echo stop > /proc/tc3162/diag后的信息
         注意2:为保证统计准确性,待打流结束10秒后再echo stop > /proc/tc3162/diag

14、检查平台的4k buffer limit的问题 cat /proc/net/skbmgr_info查看是否alloc fail的情况

    Dump信息如下所示,wifi吃的是skb_4k,因此需要观察红色部分
     skbmgr_limit = 4096
     skbmgr_max_alloc_no = 791
     skbmgr_alloc_fail = 0
     skbmgr_alloc_no = 767
     skbmgr_max_list_len = 4
     skbmgr_4k_limit = 1024
     skbmgr_4k_max_alloc_no = 129
     skbmgr_4k_alloc_fail = 0
     skbmgr_4k_alloc_no = 128
     skbmgr_4k_max_list_len = 0
     skbmgr_queue_len CPU0 = 1
     skbmgr_4k_queue_len CPU0 = 1
     增加SKB buffer命令:
     echo xxxx > /proc/net/skbmgr_4K_limit
     echo xxxx > /proc/net/skbmgr_driver_max_skb

15、查看是否所有流都已经成功加速

    hw_nat –g(只在AP有数据流量时(e.g. 测试throughput)才能学习硬加速规则)
         如果没有学到硬加速规则,封包均会由CPU处理,而CPU的性能瓶颈会影响throughput
     硬加速规则分为二层(MAC层)和三层(IP层),可使用如下命令查看:
         sys memrl bfb50294
             0x08000000:二层加速
             0x00000000:三层加速
         sys memwl bfb50294 00000000 //修改硬加速规则为二层
             清除硬加速规则
             hw_nat -!
             目的是为验证是否有学到正确的硬加速规则,可在测试前清除一次

16、mpstat-P ALL 1检查是否有CPU loading大的情况

    cat /proc/interrupt 检查中断绑定情况
     如果是多核的话尝试做更改中断绑定测试
         例如把rai0绑定到CPU 3处理
         echo 8 > /proc/irq/24/smp_affinity(8:每个bit代表一个CPU,24:代表是中断号)

17、对比测试

    golden版本测试
     确认测试环境是否有问题
         golden版本测试无问题 —> 环境没问题
         golden版本测试有问题 —> 环境有问题
     无线连接与Cable线连接的对比
     确认是open mode环境原因还是软硬件问题
         cable线测试无问题 —> open mode环境问题
         cable线测试有问题 —> 开发板软件/硬件有问题
     demo板使用与我们的软件的对比
     确认是软件问题还是硬件问题
         无问题 —>硬件有问题
         有问题 —>软件有问题
     现有软件与正常版本软件的区别
         WiFi配置文件
         Driver 版本
————————————————
版权声明:本文为CSDN博主「珞珈琉璃」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sky619351517/article/details/89280347

posted on 2022-09-29 13:51  sudochen  阅读(495)  评论(0编辑  收藏  举报

导航