转载请注明出处: 【钱国正的专栏http://blog.csdn.net/qianguozheng/article/details/37574373】
前言
为了满足客户须要。须要建立私有专用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,否则真的难以辨别问题所在。
尽管至今不能输入,可是我还是有了很多须要看到的信息。
转载请注明出处: 【钱国正的专栏http://blog.csdn.net/qianguozheng/article/details/37574373】