RK3399 rk3288 RK3326 wIFi驱动移植说明
1. 驱动修改说明:
1. 修改 RealTek wifi 驱动入口函数
一般来说, RealTek 的驱动, 都有统一的入口函数
Realtek USB WIFI 驱动入口在 wifi_dirver/os_dep/linux/usb_intf.c 的 rtw_drv_entry 函数中
Realtek SDIO WIFI 驱动入口在 wifi_dirver/os_dep/linux/sdio_intf.c 的 rtw_drv_entry 函数中
确认如下内容即可:
static int __init rtw_drv_entry(void)
static void __exit rtw_drv_halt(void)
module_init(rtw_drv_entry);
module_exit(rtw_drv_halt);
2. 修改 RealTek wifi 驱动 Makefile
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ARM_RK3188 = y 3. RealTek wifi 驱动 debug LOG 开关
#define CONFIG_DEBUG /* DBG_871X, etc... */ #注释掉这行可以关闭掉 wifi 驱动的
debug 信息
RealTeK KO编译
1、 如果是 3.0 内核需要将驱动解压到内核 kernel/drivers/net/wireless 目录下; 如果是 3.10
内核,解压到 kernel/drivers/net/wireless/rockchip_wlan
2、一些使用相同驱动的需要先执行 make_drv 并选择,比如 8188etv or 8189es
3、然后修改驱动源码包中的 Makefile 文件
ARCH := arm
#CROSS_COMPILE
:= /usr/src/release_fae_version/toolchain/arm-eabi-4.4.0/bin/arm-eabiKSRC := /xxxx/kernel #这个改成实际内核的路径,也就是具体项目的内核路径
在内核根目录直接运行 make modules 即可编译出相应的 wifi ko
5、 ko 编译成功后,通过如下方式可以确定使用的 wifi 驱动版本:
方法 1:直接查看驱动源码 include/rtw_version.h
方法 2:烧写固件后,进入 adb 或者串口 cat proc/net/rtl8822bs/drv_cfg 查看
rk3328_box:/ # cat proc/net/rtl8822bs/drv_cfg
Kernel Version: 3.10.104
Driver Version: v5.1.7_20554.20161209_COEX20161026-3434_aml
------------------------------------------------
CFG80211
RTW_USE_CFG80211_STA_EVENT
DBG:0
CONFIG_CONCURRENT_MODE
LOAD_PHY_PARA_FROM_FILE - REALTEK_CONFIG_PATH=/system/etc/firmware/
RTW_DEF_MODULE_REGULATORY_CERT=0x00
CONFIG_TXPWR_BY_RATE_EN=1
CONFIG_TXPWR_LIMIT_EN=0
CONFIG_RTW_ADAPTIVITY_EN = 0
CONFIG_TX_AGGREGATION
MAX_XMITBUF_SZ = 20480
MAX_RECVBUF_SZ = 65536
3. RealTek wifi 驱动中相关重要参数说明
1、 SURVEY_TO ==> channel remain time;
定义位置在 include/rtw_mlme_ext.h 文件中。
#define SURVEY_TO (100) 说明每个 channel 扫描的时候保持的时间为100ms。
增大这个时间可以一定程度上提高扫描 ap 数量稳定性,特别是对于信号强度比较差的
AP,但是也会拉长一次扫描的时间,太大了反而影响其他 channel 扫描。一般情况下不建议
修改。
2、 int rtw_channel_plan = RT_CHANNEL_DOMAIN_MAX; ==> channel set;
这个定义是 wifi 驱动 country code 定义,可以修改来使默认支持的通道数量比如1~11、
1~13、 1~14。默认情况下是13个通道,
RT_CHANNEL_DOMAIN_FCC ==> US
RT_CHANNEL_DOMAIN_ETSI ==> EU
RT_CHANNEL_DOMAIN_MKK ==> JP
RT_CHANNEL_DOMAIN_CHINA ==> CN
RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN ==> IN
3、 notify_signal ==> wifi signel level;
这个变量在文件 os_dep/linux/ioctl_cfg80211.c 中是每个扫描到的 AP 往上层上报 RSSI
大小的地方,修改这个可以改变设置中扫描到的所有 AP 的信号强度,比如在原先基础上增
大 100*10,那么设置中所有的 AP 都将增大10dbm 的信号强度。
一般情况下不建议修改,这个是信号认为造假的行文,对实际通信没有任何好处,一
般信号问题都是硬件方面的问题,解决信号问题需要从硬件方面去改善或者优化才是最有
效的方法。
xcy-rk3399主板效果展示
xcy-rk3399主板 wifi支持列表
|