OpenWRT的WiFi部分使能过程详解

    附件给出了netifd在启动wifi设备的AP功能的全部过程,现就其中的几点说明如下:

    1) OpenWRT中的wifi配置页的Enable|Disable按钮,首先通过luci/view/admin_network/wifi_overview.htm +428给出,从中可以看出来,其中调用了wifi_shutdown这个方法,该方法在luci/controller/admin/network.lua中定义,最终通过luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>/dev/null")语句通知到netifd,这里面,又涉及到OpenWRT编写的UBus的使用了,由于其不是重点,再次就不再详述;

    2) 在梳理netifd代码的过程中,发现OpenWRT的确做了很多功夫,其形成了很多公用的方法:Ubus、libubox,在netifd中,一些方法的使用就涉及到libubox,比如说,vlist_add()方法,从在libubox中的函数命名来看,其应该事先的是自平衡二叉树,但是调用该方法,也顺带执行了tree中的update回调,所以,有些地方需要额外注意一下;

    3) 从这两天的梳理来看,wifi的启动过程,主要涉及到mac80211.sh和netifd-wireless.sh两个脚本,其中的json等方法的使用,没有什么特殊的地方。

    OK,剩下的东东,同志们,请参考下面的流程图吧,虽然有一些需要改进的地方。


    netifd中有关wifi启动的流程图可参考下面的分享:

https://pan.baidu.com/s/1i4U2YRN


你可能感兴趣的:(C,linux)