wifi定频操作rtwpriv移植编译


前言

RTL8XXXXX 定频工具移植编译,用于wifi模块认证配置WiFi工作在定频模式下。


一、rtl8xxxx的WiFi内核配置

1.使用说明:
1.先确认driver\rtl8XXXXX下的Makefile中的
CONFIG_MP_INCLUDED 是否等于 y,不等于y,需修改后重新make重新编译驱动生成 .ko文件
2.测试时需等系统正常运行并加载WIFI驱动后再按以下命令进行测试.
3.本文档是参考 Realtek_RF_MP_Tool_Guidelines_V14_20150605 整理的;
4.各指令的含义可以参考 Realtek_RF_MP_Tool_Guidelines_V14_20150605
5.本手册适用于 rtl8XXXA的模块,需要在串口工具下测试。

二、移植rtwpriv软件到buildroot平台编译

1.建立rtwpriv包配置

添加menuconfig 索引

buildroot-2019.02.6/package/Config.in文件中添加如下配置

menu "My App"
    source "package/rtwpriv/Config.in"
endmenu

文章来源地址https://uudwc.com/A/Xoj4

如下图所示:在package下创建rtwpriv目录,并添加Config.in 和rtwpriv.mk文件

 Config.in 文件内容如下

config BR2_PACKAGE_RTWPRIV
    bool "rtwpriv"
    help
      An wifi tools.

rtwpriv.mk文件内容如下

ifeq ($(BR2_PACKAGE_RTWPRIV), y)

        RTWPRIV_VERSION:=1.0.0
        RTWPRIV_SITE=$(TOPDIR)/board/art93xx/packets/rtwpriv
        RTWPRIV_SITE_METHOD=local

define RTWPRIV_BUILD_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) CC=$(TARGET_CC) CXX=$(TARGET_CXX) -C $(@D)
endef

define RTWPRIV_CLEAN_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) clean
endef

define RTWPRIV_INSTALL_TARGET_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
endef

define RTWPRIV_UNINSTALL_TARGET_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) uninstall
endef

$(eval $(generic-package))
endif

2.源码准备

源码获取地址,我分享的csdn资源:wifi定频工具源码和使用手册

源代码如下:

Makefile文件内容

DEPS =
OBJ = rtwpriv.o
CFLAGS = -lm
CXXFLAGS= -lm

rtwpriv: rtwpriv.cpp rtw_api.cpp rtw_udpsrv.cpp
    $(CC) -o $@ $^ $(CXXFLAGS)

.PHONY: clean
clean:
    rm -f *.o *~ rtwpriv

.PHONY: install
install:
    cp -f rtwpriv $(TARGET_DIR)/usr/bin/

.PHONY: uninstall
uninstall:
    rm -f $(TARGET_DIR)/usr/bin/rtwpriv


 3.编译rtwpriv

在buildroot根目录输入 make menuconfig

选中Target packages → My App 下面的rtwpriv

 保存,并退出

最后执行make rtwpriv 就可以编rtwpriv包,输出rtwpriv可执行程序

三、RTL8XXXXX 定频软件操作手册

WIFI2.4G测试指令
ifconfig wlan0 up ;开启网卡
rtwpriv wlan0 mp_start ;加载测试程序
一: 11b 发射模式 11M =22 步骤
111M 11b 模式 20M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
1)频道 1  
rtwpriv wlan0 mp_channel 1 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 22 ;设定模式(2211M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
2)频道 7  
rtwpriv wlan0 mp_channel 7 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 22 ;设定模式(2211M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
3)频道 13  
rtwpriv wlan0 mp_channel 13 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 22 ;设定模式(2211M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
二: 11g 发射模式 54M =108 步骤
154M 11g 模式 20M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
1)频道 1  
rtwpriv wlan0 mp_channel 1 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 108 ;设定模式(10854M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
2)频道 7  
rtwpriv wlan0 mp_channel 7 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 108 ;设定模式(10854M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
3)频道 13  
rtwpriv wlan0 mp_channel 13 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 108 ;设定模式(10854M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
三: 11N发射模式 MCS7 =135 步骤
1MCS7 11n 模式 20M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
   
1)频道 1  
rtwpriv wlan0 mp_channel 1 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
2)频道 7  
rtwpriv wlan0 mp_channel 7 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
3)频道 13  
rtwpriv wlan0 mp_channel 13 ;设定通道(1-13
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
 
三: 11N 发射模式 MCS7 =135 步骤
1MCS7 11n 模式 40M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
1)频道 3  
rtwpriv wlan0 mp_channel 3 ;设定通道(3-11
rtwpriv wlan0 mp_bandwidth 40M=1,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
2)频道 7  
rtwpriv wlan0 mp_channel 7 ;设定通道(3-11
rtwpriv wlan0 mp_bandwidth 40M=1,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
3)频道 11
rtwpriv wlan0 mp_channel 11 ;设定通道(3-11
rtwpriv wlan0 mp_bandwidth 40M=1,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
WIFI5G测试指令
一: 11a发射模式 54M =108 步骤
154M 11a 模式 20M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
1)频道 36  
rtwpriv wlan0 mp_channel 36 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 108 ;设定模式(10854M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
2)频道 149  
rtwpriv wlan0 mp_channel 149 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 108 ;设定模式(10854M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
3)频道 161  
rtwpriv wlan0 mp_channel 161 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 108 ;设定模式(10854M
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
三: 11a发射模式 MCS7 =135 步骤
1MCS7 11a 模式 20M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
   
(1)频道 36  
rtwpriv wlan0 mp_channel 36 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
2)频道149  
rtwpriv wlan0 mp_channel 149 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
3)频道 161  
rtwpriv wlan0 mp_channel 161 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=0,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
 
三: 11a发射模式 MCS7 =135 步骤
1MCS7 11a模式 40M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
1)频道 38  
rtwpriv wlan0 mp_channel 38 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=1,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
2)频道 151  
rtwpriv wlan0 mp_channel 151 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=1,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
3)频道 165
rtwpriv wlan0 mp_channel 159 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=1,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 135 ;设定模式(MCS7135
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
 
三: 11ac发射模式 MCS9 步骤
1MCS7 11ac模式 80M 带宽
#ifconfig wlan0 up ;开启网卡
#rtwpriv wlan0 mp_start ;加载测试程序
1)频道 42 5180MHz
rtwpriv wlan0 mp_channel 42 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=2,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 169 ;设定模式(MCS9
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
(2)频道 155  5775MHz
rtwpriv wlan0 mp_channel 155 ;设定通道(36-161
rtwpriv wlan0 mp_bandwidth 40M=2,shortGI=0 ;设定带宽(40M=0 20M/40M=1 40M/40=2 80M)
rtwpriv wlan0 mp_ant_tx a  
rtwpriv wlan0 mp_txpower patha=40 ;设定 power 值(0-63
rtwpriv wlan0 mp_rate 169 ;设定模式(MCS9
rtwpriv wlan0 mp_ctx count=%100,pkt ;连续发包
rtwpriv wlan0 mp_ctx stop ;停止发包
MAP
rtwpriv wlan0 efuse_get realmap

四、rtwpriv工具脚本

rtwpriv.sh脚本

脚本使用方法

rtwpriv.sh 7 0 a 40 135 start 1
rtwpriv.sh 7 0 a 40 135 stop 1
参数定义:  rtwpriv.sh  mp_channel:7 mp_bandwidth_40M:0 mp_ant_tx:a
mp_txpower_patha:40 mp_rate:135 run_cmd:start cmd_delay:1 "


#!/bin/sh

CHAN=$1
BANDWIDTH=$2
ANT=$3
POWER=$4
MODE=$5
RF_TRAN=$6
CMD_DELAY=$7
RTWPRIV_CMD=""
RTWPRIV_CMD_STR=""

param_check(){
 ret=0

 
 if [ $CHAN -gt 255 ]
 then
    echo "mp_channel=$CHAN >255 error !"
        ret=1
        return $ret
 fi
 
 if [ $BANDWIDTH -gt 2 ]
 then
    echo "mp_bandwidth_40M=$BANDWIDTH >2 error !"
        ret=2
        return $ret
 fi

 if [ $POWER -gt 63 ]
 then
    echo "mp_txpower_patha=$POWER >63 error !"
        ret=4
        return $ret
 fi

 if [ $MODE -gt 255 ]
 then
    echo "mp_rate=$MODE >255 error !"
        ret=5
        return $ret
 fi
 
 if [ $RF_TRAN != start ] &&  [ $RF_TRAN != stop ]
 then
    echo "run_cmd=$RF_TRAN  error, please input start or stop !"
        ret=6
        return $ret
 fi

 if   expr $CMD_DELAY \<\= 0
 then
    echo "cmd_delay=$CMD_DELAY <0 error !"
        ret=7
        return $ret
 fi


 return 0
}
cmd_exec_func(){
    RTWPRIV_CMD_STR="$1 $1 $2 $3 $4 $5 $6"
    echo "exec--->${RTWPRIV_CMD_STR}"
    $RTWPRIV_CMD
}

if [ $1 == "-h" ] || [ $1 == "--help" ]
then
  echo "usage  :   
  rtwpriv.sh 7 0 a 40 135 start 1
  rtwpriv.sh 7 0 a 40 135 stop 1
  param define -->  rtwpriv.sh  mp_channel:7 mp_bandwidth_40M:0 mp_ant_tx:a \
  mp_txpower_patha:40 mp_rate:135 run_cmd:start cmd_delay:1 "
  exit 0
fi
 
param_check
param_ret=$?
if [ $param_ret -gt 0 ] ;then
 echo "<<<<param $param_ret error!>>>>"
 echo "usage  :   
  rtwpriv.sh 7 0 a 40 135 start 1
  rtwpriv.sh 7 0 a 40 135 stop 1
  param define -->  rtwpriv.sh  mp_channel:7 mp_bandwidth_40M:0 mp_ant_tx:a \
  mp_txpower_patha:40 mp_rate:135 run_cmd:start cmd_delay:1 "
 
exit $param_ret
fi


if [ $RF_TRAN == "start" ] ;then

RTWPRIV_CMD="rtwpriv wlan0 mp_channel $CHAN"
cmd_exec_func  $RTWPRIV_CMD $RTWPRIV_CMD_STR
sleep  $CMD_DELAY
RTWPRIV_CMD="rtwpriv wlan0 mp_bandwidth 40M=$BANDWIDTH,shortGI=0"
cmd_exec_func  $RTWPRIV_CMD
sleep  $CMD_DELAY
RTWPRIV_CMD="rtwpriv wlan0 mp_ant_tx $ANT"
cmd_exec_func  $RTWPRIV_CMD
sleep  $CMD_DELAY
RTWPRIV_CMD="rtwpriv wlan0 mp_txpower patha=$POWER"
cmd_exec_func  $RTWPRIV_CMD
sleep  $CMD_DELAY
RTWPRIV_CMD="rtwpriv wlan0 mp_rate $MODE"
cmd_exec_func  $RTWPRIV_CMD
sleep  $CMD_DELAY
RTWPRIV_CMD="rtwpriv wlan0 mp_ctx count=%100,pkt"
cmd_exec_func  $RTWPRIV_CMD
sleep  $CMD_DELAY
echo "<<rtwpriv run start success !>>"
elif [ $RF_TRAN == "stop" ] ;then

RTWPRIV_CMD="rtwpriv wlan0 mp_ctx $RF_TRAN"
cmd_exec_func  $RTWPRIV_CMD
sleep  $CMD_DELAY
echo "<<rtwpriv run stop success !>>"
fi

原文地址:https://blog.csdn.net/cf812498886/article/details/126748514

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月15日 01:00
用逻辑门实现四位加法器
下一篇 2023年06月15日 01:00