wndr3800 上的 Openwrt - 5Ghz wifi 显示为已禁用

wndr3800 上的 Openwrt - 5Ghz wifi 显示为已禁用

我的 openwrt GUI 显示所有 5Ghz 网络均已禁用。(带斜线的红色圆圈和“无线已禁用或未关联”)。我的电脑上也没有显示 5Ghz 无线网络。

我最近一直使用 5Ghz,但目前似乎无法正常工作。我目前有

  • Netgear WNDR3800
  • OpenWRT 稳定版 - 15.05 Chaos Calmer。(尚未是 15.05.1。opkg update几个月前我运行过一些,因此可能有点介于两者之间)。

我的配置主要只是模仿 CeroWRT(在 wndr3800 平台上开发的分支项目)。具体来说:

  • sqm-scripts修复负载下的延迟(“kill bufferbloat”)。
  • 为“客人”和我自己建立单独的网络,这些网络通过路由而不是桥接至 LAN。
  • 2.4Ghz 和 5Ghz 的独立网络。(我实际上更喜欢无缝漫游,正如最近Googly 演示 (TM);它对我来说并不总是 100% 可靠,最终我想要强制使用 2.4Ghz)。

我在路由器的系统日志中注意到以下内容:

Sun Apr  3 15:02:19 2016 user.notice SQM: Starting simple.qos
Sun Apr  3 15:02:19 2016 user.notice SQM: ifb associated with interface pppoe-wan: 
Sun Apr  3 15:02:19 2016 user.notice SQM: Currently no ifb is associated with pppoe-wan, this is normal during starting of the sqm system.
Sun Apr  3 15:02:19 2016 daemon.notice netifd: radio1 (9031): wlan1: ACS-COMPLETED freq=5320 channel=64
Sun Apr  3 15:02:19 2016 daemon.notice netifd: radio1 (9031): Using interface wlan1 with hwaddr 74:44:01:86:42:d6 and ssid "VOYAGER2091-90-jenkins"
Sun Apr  3 15:02:20 2016 user.notice SQM: Squashing differentiated services code points (DSCP) from ingress.
Sun Apr  3 15:02:21 2016 kern.info kernel: [  199.510000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): Could not set interface wlan1-1 flags (UP): Device or resource busy
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): Failed to add BSS (BSSID=76:44:01:86:42:d6)
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): Interface initialization failed
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): wlan1: interface state ACS->DISABLED
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): wlan1: AP-DISABLED 
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): ACS: Possibly channel configuration is invalid, please report this along with your config file.
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): ACS: Failed to start
Sun Apr  3 15:02:21 2016 daemon.notice netifd: radio1 (9031): wlan1: AP-DISABLED

在路由器上运行/etc/init.d/network restart没有帮助。

运行ifdown wifi_a_guest然后ifup wifi_a_guest似乎可以解决所有问题,直到下次重启。

答案1

最后两句话是关键。 OpenWRT 中似乎存在竞争条件,这是由我的特定配置触发的,如上所述

启用miniupnpd似乎也是其中的一部分。禁用它之后(由于 logspam 混乱),我发现 /etc/init.d/network restart 做过让 5Ghz 工作。这是下一个关键。

禁用可sqm永久解决 5Ghz 问题。 当然,我想找到一种方法让 sqm 正常工作 :)。我知道它sqm有一个相当慢的脚本(可能需要几秒钟),当其网络接口启动时运行。

由于 sqm 未配置为接触无线接口,我倾向于将问题归咎于 OpenWRT 的自有竞争条件netifd。事实上,即使在用忙循环替换 sqm 的实现后,我也能重现故障。(没有延迟 -sleep 3没有重现失败)。在/usr/lib/sqm/run.sh

run_sqm_scripts() {
    local section="$1"
    export IFACE=$(config_get "$section" interface)

    [ -z "$RUN_IFACE" -o "$RUN_IFACE" = "$IFACE" ] || return

    # XXX test hack
    if [ "$RUN_IFACE" = "$IFACE" ]; then
      let i=0
      while [[ $i -le 20000 ]]; do
        let i++
      done
    fi
    return
    # XXX end test hack

    [ $(config_get "$section" enabled) -ne 1 ] && ACTION=stop

相关内容