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 版本

开发调试指令大全--(MTK开发调试命令)相关推荐

  1. 开发调试指令大全--(realtek开发调试命令)

    1.术语与缩写解释 缩写.术语 解释 BBP Baseband Processor,基带处理,指PHY,物理层. NIC Network Interface Card,网卡也叫"网络适配器& ...

  2. Android开发人员资料大全(开发人员必看)

    在移动开发如火如荼的今天,Android开发市场广阔,是目前市场占有率最高的智能手机操作系统.这个文档里整理大量优质的Android开发资料,网上的资料众多,参差不齐,然而这批资料确实经过精心整理的, ...

  3. 开发调试指令大全--(博通开发调试命令)

    博通开发调试命令 前言 1.命令行基本语法 1.bcm常见命令行 (1)查看软件版本信息 (2)查看无线硬件版本信息 (3)查看无线状态 (4)查看无线驱动统计信息 (5)无线驱动加载map文件信息 ...

  4. mc服务器plotme修改,我的世界op地皮指令大全 不会plotme命令的可以参考

    来源:游戏园日期:2019-09-13 04:04:43 我的世界op地皮指令的命令大全,不会或者忘了plotme命令的玩家可以收藏下,希望对玩家获得地皮有帮助.注意,PlotMe是一个多世界的地皮管 ...

  5. python我的世界给予物品指令_我的世界给予物品指令大全 | 手游网游页游攻略大全...

    发布时间:2015-11-19 我的世界命令方块指令大全 我的世界命令方块怎么用.我的世界命令方块都有哪些攻能?我的世界命令方块怎么使用?下面99单机网小编给大家带来我的世界命令方块指令大全. /gi ...

  6. insurgency服务器修改,insurgency指令大全 | 手游网游页游攻略大全

    发布时间:2015-10-01 我的世界游戏中玩家可以使用服务器指令来获取和给予权限,轻而易举完成一般玩家做不到的事,非常便利.那么我的世界有哪些服务器指令呢?下面99单机网小编就来汇总我的世界服务器 ...

  7. 未转变者服务器车怎么得,未转变者刷车指令大全 | 手游网游页游攻略大全

    发布时间:2016-05-16 天天飞车应该怎么刷车呢?相信很多玩家都已经会使用烧饼来刷车了,下面小编就给大家介绍一下天天飞车的刷车代码. 标签: 天天飞车 游戏攻略 游戏秘籍 发布时间:2017-0 ...

  8. MTK 开发调试方法

    mtk开发基本调试方法大概就三种模拟器方式,trac方式,串口方式 普通的界面修改,功能行基本都可以通过模拟器完成,但是遇到死机或者与l4c相关的问题是就需要打trac配合cather进行调试了:如果 ...

  9. alios things开发板_AliOS Things开发:让你的开发板支持AliOS Studio调试-阿里云开发者社区...

    给AliOS Things一颗STAR(前往GitHub关注我们) 目录 简介 在AliOS-Things 2.1版本之后,AliOS Studio提供了一套简单易懂的接口可以让开发者很容易适配开发板 ...

最新文章

  1. python列表不包含哪个内置函数_python 列表的推导器和内置函数
  2. Nodejs学习(三)-安装nodejs supervisor,提高点效率吧。
  3. 【CodeForces - 214C 】Game (拓扑排序,思维)
  4. vue Draggable实现拖动改变顺序
  5. linux vim emmet,前端开发神器Emmet.vim使用笔记
  6. 马云后悔创办阿里:想停根本停不下来;人民日报评“滴滴顺风车争议”;jQuery 曝漏洞|极客头条...
  7. 动态创建Sql Server数据库相关(全)
  8. java 药品管理系统_基于Java web的医药药品管理系统
  9. 数学建模-二胎政策对中国人口的影响
  10. 中国航空标准件市场运行动态分析及十四五发展规划研究报告2022年版
  11. 激光导航AGV的停车精度受环境变化的影响有多大?
  12. java识别音高_如何找出音乐的音高
  13. 《踏踏实实学英语》读书笔记
  14. 浅析SkipList跳跃表原理及代码实现
  15. 抖音上火的电脑代码cmd_抖音很火的:仅靠三行代码,帮妹子“修电脑”?如何做到的!...
  16. prometheus监控域名证书到期时间
  17. java实现lbs_Java总结篇系列:Java泛型
  18. 海康威视视频在页面中展示
  19. arima模型 白噪声检验_白噪声模型
  20. json字符串转成 json对象 json对象转换成java对象

热门文章

  1. motionpro.exe官网下载需要使用firefox浏览器,不然验证码刷不出来
  2. 马云语录:今天很残酷,明天更残酷!后天很美好!但大多数人都死在明天晚上,看不到后天的太阳!
  3. 视觉机器学习20讲-MATLAB源码示例(4)-决策树学习算法
  4. 关于 ZEGO 支撑 100 亿场高质量直播的秘笈
  5. 你是时侯该在网络上说谎了!
  6. 可以提升网站排名的seo站内优化技巧
  7. 哈工大深圳计算机跨专业保研,孤独的征程——我的保研路(跨专业篇)
  8. 《星际穿越》与“宇宙三禁律”
  9. 云渲染平台每家计费方式不一样,究竟哪家便宜?
  10. shejimoshi设计模式