|
本帖最后由 cappie 于 2016-7-6 09:01 编辑
2016-07-06 09:00 ========================================
哈哈哈、哈哈哈…………
K2顺利下车,收益2.98元,放心了,钱回来了。。。。。。。
2016-07-05 23:59 ========================================
哈哈哈、哈哈哈…………
多谢各位同志陪我一起完成了Padavan固件对无线功率的控制的这部分学习研究,今天终于,对这部分有了比较清晰的了解了。
兜兜转转,原来啊,Padavan的固件已经对这部分做得很好了,下面我把我学习的成果和大家分享下:
1. trunk/vendors/Ralink/MT7620目录:
里面有几个BIN,编译脚本会根据PA和LNA是内置还是外置选择拷贝相应的文件到,但是,经过测试,这些文件是没用的。这些文件是MTK默认的无线参数,只是在读取eeprom的无线参数出错的时候,用来启动无线,eeprom正常的情况下不会用到他们。
在编译后的固件中,他们的位置在/etc_ro/Wireless目录下
2. trunk/configs/boards/路由型号目录:
这个目录是保存路由核心配置的地方,有的型号里面有SingleSKU_*.dat文件,这些文件是控制无线在不同模式下的增益的数据,对应eeprom就是DEh~EFh部分的数据,但是从表格看来,可用比eeprom更细致的控制不同信道、不同模式下的功率,具体可以看看图3.19 TX rate power configuration (DEh~EFh)。
在编译后的固件中,他们的位置在/etc_ro/Wireless目录下,同时,固件会根据你在2.4G无线页面中所选择的国家,选择对应的dat文件,作连接(ln)到/etc/Wireless/RT2860目录下。
/etc/Wireless/RT2860这个目录保存了一个RT2860AP.dat文件和一个SingleSKU.dat文件,这个是MTK的驱动决定的,就这个位置,然后Padavan固件都是根据需要生成RT2860AP.dat和连接SingleSKU.dat。这部分的处理,在rc的ralink.c中实现。
3. trunk\user\rc\ralink.c文件:
这个文件是在路由启动的时候,处理与雷凌相关的内容。
里面定义了国家代码ralink_cc_table和国家对应的无线参数要求asus_regspec_table,通过这两个数组确定你选择的国家要套用哪个SKU文件,然后在通过SKU修改无线参数使其达到那个国家对无线管理的要求。
静态方法symlink_sku_file是处理SKU文件的关键方法,它会“/* first, try custom SKU file from storage */”,会先尝试连接/etc/storage/wlan目录中的SingleSKU%s.dat文件,同样是连接到/etc/Wireless/RT2860/SingleSKU.dat,如果没有自定义的SKU,就会根据设置的国家代码(nvram中rt_country_code)去匹配上面两个数组,确定出要连接的SKU文件。
总结来说,无线参数部分,就是留意以下几个目录或文件:
源码内:
trunk/configs/boards/路由型号
trunk\user\rc\ralink.c
固件内:
/etc_ro/Wireless
/etc/Wireless/RT2860
/etc/storage/wlan
/etc/storage是唯一可写的地方,所以要自定义啥东东,也就在/etc/storage/wlan里面完成
往/etc/storage/wlan里面复制一个自己的SingleSKU.dat,固件会优先连接这个文件到/etc/Wireless/RT2860/SingleSKU.dat,而忽略国家代码
所以我说,兜兜转转,又绕会原点。其实我们啥都不用改,Padavan固件已经都考虑好了。
没了,搞了几天就学到了这么点东西,附上一个Excel写的无聊小工具,用来输出SingleSKU.dat。
==================== 我是分割线 ====================
事情的起因是看了BettermanBao(好人包?)的文章:
【原创】斐讯 K2 PSG1218 Padavan 原版固件 完美适配,外加SSR一键安装脚本!
https://www.right.com.cn/forum/thread-187561-1-1.html
文章中说到“使用斐讯原厂的增益参数优化无线信号和传输速率。”
然后是看到了荒野无灯的文章:
【自编译】【virtual**智能翻Q】【最新源码】斐讯 K2 Padavan 纯净版固件[20160626]
https://www.right.com.cn/forum/thread-187654-1-1.html
文章中说到“开启了 2.4G 和 5G 外置PA & LNA 支持,信号大大增加”
之后又看了BettermanBao又在文章中的回复:
https://www.right.com.cn/forum/fo ... =187654&pid=1249983
“不过斐讯的K2要信号好,仅仅在epa elna选个y是不够的。”
之后就对这个为什么仅仅开启epa和elna还不够产生了疑问。
于是去看了下MTK的SDK和Andy Padavan的rt-n56u源码,发现他们都会在trunk/romfs/etc_ro/Wireless/目录下产生两个文件:
MT7612E_EEPROM.bin
MT7620_AP_2T2R-4L_V15.bin
刚好碰上斐讯发布V21.4.6.10新固件,于是再下下来对比,发现斐讯固件在/etc_ro/wlan目录下有三个文件:
MT7612E_EEPROM.bin
MT7620_AP_2T2R-4L_V13.BIN
MT7620_AP_2T2R-4L_V15.BIN
之后我好像明白了什么……这些应该就是无线功率的参数!
为了证实我的想法,我把几个文件都复制出来,用UltraCompare做二进制对比:
从图中可以看到两个文件只有47个字节的差异,而且长相和编程固件中Factory分区的长相差不多。
接着又想到斐讯的固件有个功率设置的选项,“一键穿墙模式”和“绿色节能模式”,
那么是不是两种模式的切换和MT7620_AP_2T2R-4L_V13.BIN、MT7620_AP_2T2R-4L_V15.BIN这两个文件有关呢?
上面这个是猜想,带着这个猜想,我去查了一下MT7620 EEPROM Content,也就是EEPROM的内容说明:
果然52h~6Ch部分,就是控制无线输出功率的,那么我猜斐讯固件的功率控制应该是:
一键穿墙使用MT7620_AP_2T2R-4L_V15.BIN文件的参数;
绿色节能使用MT7620_AP_2T2R-4L_V13.BIN文件的参数。
同时在论坛上,找到一款叫“NEWIFI MIWIFI MT7620方案 智能路由器 EEPROM 设置工具”的软件:
软件上说它的“设置项是频道功率增强,并非功率校准数据,可以放心修改”,对比了一下它修改的部分,是DEh~EFh这部分数据:
那么这里就有疑问了:
1.这两部分的数据,控制的功率有什么不同?
2.MT7620_AP_2T2R-4L_V15.BIN中,这部分数据比MT7620_AP_2T2R-4L_V13.BIN中的要小?
3.为什么官方固件修改模式不是改变这部分的增益参数,而是改变上面那部分呢?
希望BettermanBao出来指导一下……
上面废话说了一堆,到底有什么用呢?
我们来看看Padavan中MT7620_AP_2T2R-4L_V15.bin和官方固件中的MT7620_AP_2T2R-4L_V13.BIN对比就知道了:
可以看到,两者在功率控制那两部分数据几乎一样,也就是说,如果编译Padavan固件的时候使用固件内带的BIN文件,编译出来的固件就差不多和官方使用绿色节能模式一样!
则可能就是BettermanBao说“不过斐讯的K2要信号好,仅仅在epa elna选个y是不够的。”的原因吧。
BettermanBao,包大哥出来指导一下???
如果想要使用官方的参数,可以有两个方法:
1.替换Padavan源码中trunk/vendors/Ralink/MT7620/目录下的MT7612E_EEPROM.bin和MT7620_AP_2T2R-4L_external_LNA_external_PA_V15.bin。
因为我们是外置的PA和LNA,所以要替换MT7620_AP_2T2R-4L_external_LNA_external_PA_V15.bin文件,记得是用MT7620_AP_2T2R-4L_V15.BIN来替换。
2.在编译过程中,如果你不是使用su方式来编译,在最后固件打包前,会要你输入su密码:
在这个时候可以用官方的MT7620_AP_2T2R-4L_V15.BIN来替换trunk/romfs/etc_ro/Wireless/目录中的MT7620_AP_2T2R-4L_V15.bin。
替换的时候注意下,两个文件的后缀名BIN,大小写是不一样的,Linux大小写是敏感的,要注意改过来。
替换完后出来的固件就和官方使用同样的参数文件了,但是效果怎么样我不知道,因为我还没刷上路由器去。
BettermanBao,包大哥出来指导一下,是不是这样搞的???
提供一个附件,里面有两个目录:Stock_v21.4.6.10目录下的是K2官方固件21.4.6.10版提取的MT7620_AP_2T2R-4L_V13.BIN、MT7620_AP_2T2R-4L_V15.BIN、MT7612E_EEPROM.bin
Padavan_30ae6a906e目录下的,是Padavan固件7月1日提交(30ae6a906e)里面的MT7620_AP_2T2R-4L_V15.bin、MT7612E_EEPROM.bin
大家可以自行对比。。。。
另外求指导,在Padavan中集成软件包的方法,和用它的toolchain来编译软件的方法。。。。。
固件地址在二楼。。。。。。。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|