SDK目录
![](https://i-blog.csdnimg.cn/blog_migrate/cef3d2505e8a85c92f3b5ca2eb44a7c9.png)
驱动
代码路径为DriverSrcPkg下的driver,根据howtomake 修改platform.mk,config.mk以及Makefile
platform.mk,针对交叉编译的平台做配置
自定义CONFIG_PLATFORM,并根据平台修改以下config
1、ARCH 内核架构 :arm or mips
2、CROSS_COMPILE: 交叉编译链的路径
3、KSRC:kernel代码路径
4、EXTRA_CFLAGS += -D_LITTLE_ENDIAN_ 大小端
config.mk
根据芯片类型,以及支持的功能配置
用Makefile_nrs直接覆盖Makefile
编译
直接在Driver目录下直接make
用户态
修改每个工具中的Makefile中的CROSS_COMPILE 以及大小端问题,如auth,wsc
编译
直接make
SCRIPT
sdk中提供了很多script ,用于配置驱动,重要的有两个
1、init.sh 初始化驱动
2、default_setting.sh 生成默认配置,路径为"/var/rtl8192c"
其他的脚本都是针对某个独立功能添加的,可以作为参考,也可以自己根据porting guide中的配置自己写
配置文件
所有的配置均在/var/rtl8192c,具体每个值的意义参考porting guide 第四章
iwpriv MIB
iwpriv 的节点,与配置文件中的参数一一对应,可以动态获取驱动配置
Bring up wifi
1、insmod wlan.ko
2、default_setting.sh wlan0
3、将自定义的config 修改到/var/rtl8192c
4、init.sh
5、ifconfig wlan0 up
开发功能流程
方法一:完全重启
针对每个独立的功能,将配置修改后重新拉起wifi,完整的init.sh会读取修改的配置,配置driver
具体的节点值,在Porting Guide中列举了详细的说明
如修改ssid,只要 echo “newssid” > /var/rtl8192c/wlan0/ssid即可
方法二:部分重启
使用iwpriv MIB 的方法
ifconfig wlan0 down
iwpriv wlan0 set_mib MIB=XXX
ifconfig wlan0 up
无线校准
对应的功率表配置有
tx_power_cck_a //11b ant 0
tx_power_cck_b //11b ant 1
tx_power_ht40_1s_a// 11n ant 0
tx_power_ht40_1s_b//11n ant 1
tx_power_diff_ht20//11n ht20 offset
tx_power_diff_ht40_2s//11n ht40 mimo offset
tx_power_diff_ofdm//11g offset
每个值都是28个16进制,代表了14channel,制式是最高速率
而如果要设置低速率,需要将mib中disable_pwr_by_rate设置为0,然后修改驱动中对应芯片的配置表
如8192es 就要修改WLANHAL/data/8192e.PHT_REG_PG_8192Emp.txt
11n_ther 温补
11n_xcap 频偏
校准过程使用mp mode,具体过程不再赘述,参考realtek mp flow
参考文档
RTL819x_AIO_porting_guide
RTL8192EE_COB_MP_FLOW