博通开发调试命令
前言
本文主要介绍博通方案的常用的无线配置方法和以及开发调试过程中出现的一些常见问题及解决方案。
1、命令行基本语法
BCM基本命令行存在两种方式:wl 和 nvram
(1)、wl
Usage:
wl [-a|i <adapter>] [-h] [-d|u|x] <command> [arguments]
-h this message and command descriptions
-h [cmd] command description for cmd
-a, -i adapter name or number
-d output format signed integer
-u output format unsigned integer
-x output format hexdecimal
-i选项,用于指定具体的设备节点,如2.4G ssid1对应wl0, ssid2对应wl0.1,ssid3对应wl0.2,依此类推;
5G ssid1 则对应wl1,ssid2 对应wl1.1,依此类推
(2)、nvram
usage:
nvram [get name] [set name=value] [unset name] [show] [commit] [godefault] [save] [restore]
[set] : set name with value
[setflag] : set bit value
[unset] : remove nvram entry
[get] : get nvram value with name
[getflag] : get bit value
[show:dump:getall] : show all nvrams
[loadfile] : populate nvram value from files
[savefile] : save all nvram value to file
[commit] : save nvram [optional] to restart wlan when following restart
[restart] : restart wlan
1、bcm常见命令行
(1)查看软件版本信息
命令行:wl -i wl0 ver
说明:查看2.4G的版本信息
(2)查看无线硬件版本信息
命令行:wl –i wl0/wl1 revinfo
说明:命令行显示的无线硬件版本信息
(3)查看无线状态
命令行:wl status
说明:默认查询到的时2.4G主ssid的信息,如果需要查询指定ssid的信息,使用【-i】选项
wl -i wl0 status
SSID: “ChinaNet-zyh111”
Mode: Managed RSSI: 0 dBm SNR: 0 dB noise: -89 dBm Channel: 1l
BSSID: 00:23:22:22:11:55 Capability: ESS ShortSlot
Supported Rates: [ 1(b) 2(b) 5.5(b) 6 9 11(b) 12 18 24 36 48 54 ]
HE Capable:
Chanspec: 2.4GHz channel 3 40MHz (0x1803)
Primary channel: 1
HT Capabilities: 40MHz SGI20 SGI40
Supported HT MCS : 0-23 32
Supported VHT MCS:
NSS1 Tx: 0-11 Rx: 0-11
NSS2 Tx: 0-11 Rx: 0-11
NSS3 Tx: 0-11 Rx: 0-11
Supported HE MCS:
20/40/80 MHz:
NSS1 Tx: 0-11 Rx: 0-11
NSS2 Tx: 0-11 Rx: 0-11
NSS3 Tx: 0-11 Rx: 0-11
VHT MCS:表示802.11n mcs
HE MCS:表示802.11ax,也即支持wifi6
(4)查看无线驱动统计信息
命令行:wl –i wl0/wl1 counters
说明:命令行显示的无线驱动统计信息。
(5)无线驱动加载map文件信息
命令行:wl –i wl0/wl1 srdump
说明:命令行显示的加载到驱动里的map信息。
map文件储存无线校准相关参数,所以在调试中有时会需要调高或调低发射功率;产测涉及更新map文件。相当于mtk中的iwpriv ra0 e2p
(6)查询关联sta信息
命令行:wl -i wl0 assoclist
说明:查询指定接口下关联的sta列表
(7)查询指定sta详细信息
命令行:wl -i wl0 sta_info F8:87:F1:6C:E3:30
说明:查询已关联指定sta的相关信息
(8)查看AP当前发射功率
命令行:wl –i wl0/wl1 curpower
说明:命令行输出AP每根天线当前实时发射功率
(9)查看AP天线的RSSI
命令行:wl –i wl0/wl1 dump rssi
说明:命令行输出AP天线实时的接收灵敏度
(10)查看AP邻居信息
命令行:wl –i wl0/wl1 scan
命令行:wl –i wl0/wl1 scanresults
说明:这两个命令行完成AP对周围其他SSID信息的扫描及输出
(11)查看AP实时物理速率
命令行:wl –i wl0/wl1 rate
说明:命令行显示的无线AP实时协商物理速率。
(12)设置无线ssid
命令行:wl –i wl0 ssid ChinaNet-zyh1111
wlctl -i wl0 ssid -C 0 ChinaNet-zyh1111
说明:命令行设置无线ssid。
(13)设置无线信道
命令行:
wlctl -i wl0 down
wlctl -i wl0 channel 6
wlctl -i wl0 up
说明:命令行设置无线ssid。
(14)触发自动信道选择
命令行:
acs_cli2 -i wl0 autochannel
acs_cli2 -i wl1 autochannel
说明:触发自动信道选择并切换到最优信道
(15)自动信道选择调试命令行
自动信道选择调试命令行,主要包含开启日志打印、dump相关信息,比如信道扫描评分、配置信道扫描时间等
bcm自动信道选择涉及相关命令:
acs_cli2 -h // 查询支持的命令行信息
usage: acs_cli2 [options] <command>|<variable>[ <value>]
options are:
-i, --interface <ifname> Apply command to specified wl interface on server
-p, --port <port> Server TCP Port of remote ACSD
-s, --server <server> Server address of remote ACSD (IP address or name)
-C, --commands Lists available commands and variables to get/set
-S, --settings Retrieves and displays all known variables
-R, --report Retrieves and displays all known information.
-h, --help This help text.
NOTE:- Start the acsd on target to use this command
/fhrom/fhshell # acs_cli2 -i wl0 -C
Available commands:
autochannel csscan dump get info set
status
Dump options:
acs_record ACSD Channel switch log records
acsd_stats ACSD Statistics
bss BSS counters per channel
candidate Channel switch candidate details
chanim Channel Interference monitor counters
cscore Channel switch candidate scores
dfsr ACSD DFS Reentry Information
scanresults ACSD Scan results
Available variables (more may exist in the daemon):
acs_chan_dwell_time acs_chan_flop_period acs_ci_scan_timeout
acs_ci_scan_timer acs_cs_scan_timer acs_dfs
acs_ci_scan_chanim_stats acs_flags acs_far_sta_rssi
acs_nofcs_least_rssi acs_policy acs_scan_chanim_stats
acs_scan_entry_expire acs_trigger_var acs_txdelay_cnt
acs_txdelay_period acs_txdelay_ratio acs_tx_idle_cnt
chanim_flags lockout_period max_acs
mode msglevel sample_period
threshold_time test_dfsr test_preclear
zdfs_5g_move zdfs_2g_move zdfs_5g_preclear
zdfs_2g_preclear bw_upgradable fallback_to_primary
switch_score_thresh ci_scan_txop_limit acs_txop_limit
ACSD设置打印等级:
#define ACSD_DEBUG_ERROR 0x0001
#define ACSD_DEBUG_WARNING 0x0002
#define ACSD_DEBUG_INFO 0x0004
#define ACSD_DEBUG_DETAIL 0x0008
#define ACSD_DEBUG_CHANIM 0x0010
#define ACSD_DEBUG_5G 0x0020
#define ACSD_DEBUG_DFSR 0x0040
nvram get acsd_debug_level
nvram set acsd_debug_level=0
acs_cli2 -i wl0 get msglevel
acs_cli2 -i wl0 set msglevel 1
acs_cli2 -i wl0 get mode
acs_cli2 -i wl0 dump acs_record
acs_cli2 -i wl0 dump acsd_stats
acs_cli2 -i wl0 dump bss
acs_cli2 -i wl0 dump candidate
acs_cli2 -i wl0 dump cscore
acs_cli2 -i wl0 dump scanresults
acs_cli2 -i wl1 csscan
acs_cli2 -i wl1 dump cscore
acs_cli2 -i wl1 autochannel
acs_cli2 -i wl1 get acs_policy
acs_cli2 -i wl1 set acs_policy 9
acs_cli2 -i wl0 get acs_cs_scan_timer
自动信道评分算法:
#define CH_SCORE_BSS 0 /* number of bss */
#define CH_SCORE_BUSY 1 /* channel occupancy */
#define CH_SCORE_INTF 2 /* interference */
#define CH_SCORE_INTFADJ 3 /* interference adjustment, include neighboring channels */
#define CH_SCORE_FCS 4 /* FCS */
#define CH_SCORE_TXPWR 5 /* TX pwr consideration */
#define CH_SCORE_BGNOISE 6
#define CH_SCORE_TOTAL 7
#define CH_SCORE_CNS 8
/* adjacent channel score(number of bss's using the adjacent channel spec) */
#define CH_SCORE_ADJ 9
#define CH_SCORE_TXOP 10
#define CH_SCORE_MAX 11
static void
acs_candidate_score_total(ch_candidate_t *candi, acs_chaninfo_t* c_info)
{
int i, total;
ch_score_t *score_p;
total = 0;
score_p = candi->chscore;
for (i = 0; i < CH_SCORE_TOTAL; i++)
total += score_p[i].score * score_p[i].weight;
if (BAND_5G(c_info->rs_info.band_type) && c_info->txop_weight) {
total += score_p[CH_SCORE_TXOP].score * c_info->txop_weight;
} else {
total += score_p[CH_SCORE_TXOP].score * score_p[CH_SCORE_TXOP].weight;
}
score_p[CH_SCORE_TOTAL].score = total;
}
Fact Score Weight SubTotal
BSS 4 10 40
busy 23 1 23
interf. 4 1 4
TOTAL 317 1 317
CNS -97 1 -97
TXOP 25 10 250
hannel (Chspec) Use DFS BSS busy interf. itf_adj fcs txpower bgnoise TOTAL CNS ADJ TXOP
36/80 (0xe02a) - 90 0 0 0 0 20 0 160 -97 0 50
(16)查询关联sta信息
命令行:
wl -i wl0 rx_report
说明:查询下挂终端的信息,相比wl -i wl0 assoclist的信息更为详尽
设置非关联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
2、bcm easymesh简介
bcmesaymesh有两种角色:
controller、agent、controller+agent
开启easymesh后,主要有两个进程:
1)、如果是controller或者controller+Agent,则启动wbd_master和wbd_slave
2)、如果是作为agent,则启动wbd_slave
(1)查询组网信息
命令行:
wb_cli -s info
说明:查询组网状态信息

(2)查询easymesh配置信息
开启bsd打印:
nvram set bsd_msglevel=0x205
nvram get wl0_bss_enabled
nvram get wl1_bss_enabled
#map_agent:
#获取agent的onboarding状态:
nvram get map_onboarded
#获取agent的配置 同步状态:
nvram get map_agent_configured
nvram get map_bss_names
nvram get fh_map
nvram get bh_map
nvram get wbd_ifnames
nvram set wbd_ifnames
(3)手动触发renew消息
命令行:
i5ctl apConfigRenew f6:6f:ed:9d:41:2a 2 0
说明:手动触发renew消息格式:i5ctl apConfigRenew ALID freqband role
(4)手动模拟触发wps按键组网
#在controller运行如下命令:
hostapd_cli -p /var/run/hostapd -i wl0 wps_cancel
hostapd_cli -p /var/run/hostapd -i wl0 wps_pbc
hostapd_cli -p /var/run/hostapd -i wl1.1 wps_cancel
hostapd_cli -p /var/run/hostapd -i wl1.1 wps_pbc
#在agent上运行如下命令:
wpa_cli -p /var/run/wl1_wpa_supplicant -i wl1 wps_cancel
wpa_cli -p /var/run/wl1_wpa_supplicant -i wl1 wps_pbc
wpa_cli -p /var/run/wl1_wpa_supplicant -i wl0 wps_cancel
wpa_cli -p /var/run/wl1_wpa_supplicant -i wl0 wps_pbc
后续更新

本文详述了博通无线BCM的开发调试过程,包括命令行基本语法、 bcm常见命令行用法,如查看软件版本、硬件版本、无线状态、驱动统计信息等,并介绍了easymesh的相关配置和查询命令,如查询组网和配置信息。
1077

被折叠的 条评论
为什么被折叠?



