OpenWrt mt7620n双SSID实现原理

前言

    为了满足客户需要,需要建立私有专用SSID,和共有共用SSID,这就需要用到双SSID.

原理

    无线网卡驱动支持多SSID,通过不同的SSID可以划分不同的用户使用范围,但是不同的SSID的测试带宽、性能等同样需要考究。

技术困难

    实现多SSID本来是不难的,但是对于一个新手来说还是有一定的挑战性,尤其是对于要到一个新的平台上openwrt, 使用的是qdk放在github上的源码,这个本来是很好的,但是使用过程中发现,系统在firstboot的时候,第二个SSID无法正常启动。任何一次恢复出厂设置后都会存在这种问题。

解决方法

    通过分析发现,openwrt系统在启动的过程中是通过/sbin/procd启动一些进行,init, askfirst, ubus, ubox等执行启动过程,在脚本之中会有wifi detect 来初始化无线驱动相关的信息,而之后的done脚本中会有switch2jffs这个link 指向mount_root,从ubox里面编译出来,用来mount根文件系统/ 为jffs文件系统,/rom为squashfs分区, 从而实现文件系统的读写功能。 就在第一次之星switch2jffs的时候可能会卡住或者出现broken的脚本执行过程,这个事我目前不能完全理解的,还需要进一步学习。我的怀疑是这个过程导致了,无线驱动寻找dat文件的时候出错,或者使用过程中出错。

直接建立文件/etc/Wireless/RT2860/RT2860.dat来实现这个目的,这样,在恢复出厂设置的时候,无线驱动就起来了。

意外收获

    通过这个调试,我发现luci的页面是通过/etc/config/wireless文件是否存在来决定是否显示无线配置页面的。

总结

    这个问题耗费了我三天的时间,加上双SSID,其实这个问题没有想象中的那么困难,只不过是使用过程中需要主要各个程序或者驱动的依赖项,我曾经试图移植最新的openwrt官网上关于启动相关的信息,发现不行。最终是在想到系统启动的时候或者是调试无线驱动的时候都需要用console,否则真的难以辨别问题所在。虽然至今不能输入,但是我还是有了许多需要看到的信息。

本文章由作者:佐须之男 整理编辑,原文地址: OpenWrt mt7620n双SSID实现原理
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐