![如果要重新分配的 WLAN 发生故障或不可用,OpenWRT 将无法启动本地 WLAN](https://linux22.com/image/1347013/%E5%A6%82%E6%9E%9C%E8%A6%81%E9%87%8D%E6%96%B0%E5%88%86%E9%85%8D%E7%9A%84%20WLAN%20%E5%8F%91%E7%94%9F%E6%95%85%E9%9A%9C%E6%88%96%E4%B8%8D%E5%8F%AF%E7%94%A8%EF%BC%8COpenWRT%20%E5%B0%86%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8%E6%9C%AC%E5%9C%B0%20WLAN.png)
我正在尝试设置运行 OpenWRT 的 TP-Link TL-MR3020 来重新分配无线网络,例如在旅行和住在酒店时。
到目前为止,我的设置运行良好 - 如果无线网络确实可用且可以连接。如果不是,或者我在某处输入了 SSID 或 WPA 密钥,OpenWRT 不仅无法启动要重新分配的网络,也无法启动“本地”WLAN。如果我有一台带以太网插孔的笔记本电脑,情况还不算太糟 - 但如果我只带一台 iPad 出行,情况就非常糟糕了。
我的相关(据我所知)配置文件如下:
/etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option ifname 'eth0'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
config interface 'wan'
option proto 'dhcp'
option 'ifname' 'wlan0-1'
/etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option macaddr '64:70:02:6a:03:ae'
option hwmode '11ng'
option htmode 'HT20'
list ht_capab 'SHORT-GI-20'
list ht_capab 'SHORT-GI-40'
list ht_capab 'RX-STBC1'
list ht_capab 'DSSS_CCK-40'
option country 'DE'
option channel '13'
option txpower '20'
config wifi-iface
option network 'lan'
option ssid 'tlmr3020'
option device 'radio0'
option mode 'ap'
option encryption 'psk2'
option key '....'
option disabled '0'
option wmm '1'
config wifi-iface
option network 'wan'
option ssid '....'
option encryption 'psk2'
option device 'radio0'
option mode 'sta'
option key '....'
option disabled '0'
option wmm '1'
当wifi up
要重新分配的 SSID 出现拼写错误时,我会得到以下输出:
command failed: Device or resource busy (-16)
Configuration file: /var/run/hostapd-phy0.conf
Using interface wlan0 with hwaddr 64:70:02:6a:03:ae and ssid "tlmr3020"
Successfully initialized wpa_supplicant
这里没有明显的错误消息,command failed
总是会出现(即使连接成功),似乎没有任何影响。
logread
似乎表明 netifd 尝试通过 DHCP 获取 wan 接口的 IP,现在这当然会失败。不过,它似乎从未超时或执行其他操作。
Jan 15 12:14:54 tlmr3020 daemon.notice netifd: wan (13582): udhcpc (v1.19.4) started
Jan 15 12:14:54 tlmr3020 daemon.notice netifd: wan (13582): Sending discover...
Jan 15 12:14:57 tlmr3020 daemon.notice netifd: wan (13582): Sending discover...
Jan 15 12:15:00 tlmr3020 daemon.notice netifd: wan (13582): Sending discover...
这样,tlmr3020
无线网络就永远不会出现,使我无法通过无线网络连接到 MR3020——至少可以说非常不方便。
有谁知道该怎么做才能让“主机” WLAN 连接正常失败,而不影响“本地”网络?我搜索并尝试了几乎所有我能想到的方法,但毫无进展。
谢谢!
答案1
自从提出这个问题以来,我能够通过在 openwrt 论坛中找到的信息来解决这个问题。
作为这张票状态
如果 wpa_supplicant 失去连接,它将进入主动扫描周期,这会导致 wiphy 无法用于 ap 模式操作,因此如果 sta 失去关联,ap 将被关闭。这不是可以轻松修复的问题,目前也没有计划解决这个问题。
为了让路由器正常工作,我必须实施论坛成员 warchild 建议的解决方案 - 对我来说效果很好。它使用 WPS 按钮禁用故障的客户端网络。如果该网络关闭,扫描周期就会中断,ap 会按预期工作;可以连接到 WLAN,修复问题(例如连接到新的 SSID/更改密码)并重新分配网络。
可以找到脚本以及指向按钮配置的指针在这篇文章中(在线程上方有更多信息)。
答案2
据我所知,运行 openwrt 的 TL-MR3020 不支持使用通道 13。我遇到了同样的问题。通道 11 似乎运行正常。