Modify

Opened 4 years ago

Last modified 21 months ago

#16543 new defect

luci wifi configuration broken with 2 or more radios

Reported by: anonymous Owned by: developers
Priority: response-needed Milestone: Chaos Calmer 15.05
Component: base system Version: Trunk
Keywords: Cc:

Description

trying to change settings of one radio interface results in changes applied to another radio interface.

might be a luci bug while trying to set data to /etc/config/wireless, but reloading interfaces from console displays radio0 is disabled twice and sometimes radio1 is disabled also twice.
from what i understand it should display for each radio disabled every time so it might be some other bug as well

tested with radios ar9331 and rt3070 (rt2800usb)

Attachments (0)

Change History (17)

comment:1 Changed 3 years ago by anonymous

WR703N (BB 14_07) with WNDA3200 and TL-WDN3200 (rt2800usb) (both dual band)

In UCI to radio0 is assigned internal WiFi for radio1 is assigned USB WiFi stick (output of uci show wireless below comment)

When I use WNDA3200 everything works ok and settings are applayed to correct radios.
When I use TL-WDN3200 in LUCI Wireless Overview for radio0 is: Generic MAC80211 802.11abgn (radio0) which isn't true because internal radio is only "bgn".
When I get into radio0 settings bookmark I can select 5GHz channel if I save this settings it will be write to UCI (radio0) and applied to internal radio - as a result internal radio will stop working.

Bellow are also output of iwinfo and informations from LUCI with TL-WDN3200 connected.

From iwinfo phy0 is assigned to USB wifi and phy1 to internal radio (when I use other WiFi sticks internal radio is always phy0)

It look like LUCI assume that radio0 is phy0 which is not true in that case.

Output of uci show wireless:
wireless.radio0=wifi-device
wireless.radio0.type=mac80211
wireless.radio0.hwmode=11g
wireless.radio0.path=platform/ar933x_wmac
wireless.radio0.txpower=18
wireless.radio0.htmode=HT40
wireless.radio0.country=GB
wireless.radio0.channel=13
wireless.radio1=wifi-device
wireless.radio1.type=mac80211
wireless.radio1.path=platform/ehci-platform/usb1/*/*/*
wireless.radio1.htmode=HT40
wireless.radio1.country=GB
wireless.radio1.channel=1
wireless.radio1.hwmode=11g
wireless.radio1.txpower=10
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device=radio0
wireless.@wifi-iface[0].mode=ap
wireless.@wifi-iface[0].ssid=wr703n
wireless.@wifi-iface[0].encryption=psk2+ccmp
wireless.@wifi-iface[0].key=*
wireless.@wifi-iface[0].network=wlan
wireless.@wifi-iface[1]=wifi-iface
wireless.@wifi-iface[1].device=radio1
wireless.@wifi-iface[1].ssid=wr703n_monitor
wireless.@wifi-iface[1].mode=monitor
wireless.@wifi-iface[1].network=monitor

Output of iwinfo

wlan0 ESSID: unknown

Access Point: 00:00:00:00:00:00
Mode: Monitor Channel: 1 (2.412 GHz)
Tx-Power: 20 dBm Link Quality: unknown/70
Signal: unknown Noise: unknown
Bit Rate: unknown
Encryption: unknown
Type: nl80211 HW Mode(s): 802.11abgn
Hardware: unknown [Generic MAC80211]
TX power offset: unknown
Frequency offset: unknown
Supports VAPs: yes PHY name: phy0

wlan1 ESSID: "wr703n"

Access Point: 0C:82:68:D5:0B:30
Mode: Master Channel: 13 (2.472 GHz)
Tx-Power: 18 dBm Link Quality: 56/70
Signal: -54 dBm Noise: -93 dBm
Bit Rate: 72.2 MBit/s
Encryption: WPA2 PSK (CCMP)
Type: nl80211 HW Mode(s): 802.11bgn
Hardware: unknown [Generic MAC80211]
TX power offset: unknown
Frequency offset: unknown
Supports VAPs: yes PHY name: phy1

LUCI information:

Wireless Overview
Generic MAC80211 802.11abgn (radio0)
SSID: wr703n | Mode: Master
Generic MAC80211 802.11bgn (radio1)
SSID: wr703n_monitor | Mode: Monitor

WiFi network bookmarks:

radio0: Master "wr703n"
Wireless Network: Master "wr703n" (wlan1)
Status
Mode: Master | SSID: wr703n
BSSID: 0C:82:68:D5:0B:30 | Encryption: WPA2 PSK (CCMP)
Channel: 13 (2.472 GHz) | Tx-Power: 18 dBm
Signal: -52 dBm | Noise: -93 dBm
Bitrate: 72.2 Mbit/s | Country: GB
Channel 13
Transmit Power 18dBm

radio1: Monitor "wr703n_monitor"
Wireless Network: Monitor "wr703n_monitor" (wlan0)
Status
SSID: wr703n_monitor | Mode: Monitor
Wireless is disabled or not associated
Wireless network is enabled
Channel 1
Transmit Power 10dBm

comment:2 Changed 3 years ago by anonymous

is this ever going to be fixed??

comment:3 Changed 2 years ago by anonymous

still a problem in both CC and trunk. this set wrong parameters to radio and damaged hardware. maybe think about this when you decide to rush another "stable" CC, DD etc release

comment:4 Changed 2 years ago by anonymous

Which hardware was it that got damaged? Sounds like serious bug that should be reported to linux-wireless.

comment:5 Changed 2 years ago by jow

Seems to happen when the phy number does not correspond to the radio id. Please try swapping the radio0 and radio1 identifiers in /etc/config/wireless

comment:6 Changed 2 years ago by jow

I cannot easily reproduce the problem, at least changing the radioX identifiers to mismatch with the phy names does not cause LuCI to write settings to the wrong radio. Trying now whether it can happen with missing ubus state.

comment:7 follow-up: Changed 2 years ago by anonymous

on AR9331 system second radio was AR9271 USB device. AR9331 lost reception sensitivity and its wifi is unusable if the client moves away more than 1m from router. when next to the router the client shows 100% signal but router shows only about 50%.

comment:8 Changed 2 years ago by jow

I'm not able to trigger such a LuCI misbehaviour. I need the exact sequence of actions leading to it and when the issue appears I need the following information:

ubus call network.wireless status
uci show wireless
cat /tmp/.uci/wireless

Also a screenshot showing which field you updated and a screenshot of the LuCI changelog after pressing "save" would be helpful.

comment:9 in reply to: ↑ 7 ; follow-up: Changed 2 years ago by jow

Replying to anonymous:

on AR9331 system second radio was AR9271 USB device. AR9331 lost reception sensitivity and its wifi is unusable if the client moves away more than 1m from router.

As far as I know it is not possible to overheat/break/damage the radio hardware by setting values in the ui. Most mismatching settings will cause hostapd to not even start, leaving only tx power and channels as candidates. Those settings however are restricted by the EEPROM, so even if LuCI writes nonsense into the wifi config then it is still up to hostapd to accept those values and finally the responsibility of the kernel driver to apply them.

comment:10 Changed 2 years ago by anonymous

root@OpenWrt:/# vi /etc/config/wireless
root@OpenWrt:/# wifi
'radio0' is disabled
'radio0' is disabled
root@OpenWrt:/#

sometimes it returns

root@OpenWrt:/# vi /etc/config/wireless
root@OpenWrt:/# wifi
'radio1' is disabled
'radio1' is disabled
root@OpenWrt:/#

probably this ubus makes incorrect read/write, and it was a cause of bug that made LuCI set wrong values in config file.

please, just make sure this gets fixed.

comment:11 Changed 2 years ago by jow

The info above does not help me in any way, sorry. I need the actual contents of the wifi config as well as the coressponding ubus network state.

comment:12 Changed 2 years ago by anonymous

without any changes it already displayed disabled twice for every radio

'radio0' is disabled
'radio1' is disabled
'radio0' is disabled
'radio1' is disabled

root@192.168.1.1's password: 


BusyBox v1.23.2 (2016-02-12 11:28:22 CET) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 CHAOS CALMER (Chaos Calmer, r48666)
 -----------------------------------------------------
  * 1 1/2 oz Gin            Shake with a glassful
  * 1/4 oz Triple Sec       of broken ice and pour
  * 3/4 oz Lime Juice       unstrained into a goblet.
  * 1 1/2 oz Orange Juice
  * 1 tsp. Grenadine Syrup
 -----------------------------------------------------
root@OpenWrt:~# ubus call network.wireless status
{
	"radio0": {
		"up": false,
		"pending": false,
		"autostart": true,
		"disabled": true,
		"config": {
			"channel": "11",
			"hwmode": "11g",
			"path": "platform\/ar933x_wmac",
			"htmode": "HT20",
			"disabled": true
		},
		"interfaces": [
			{
				"section": "@wifi-iface[0]",
				"config": {
					"mode": "ap",
					"ssid": "OpenWrt",
					"encryption": "none",
					"network": [
						"lan"
					],
					"mode": "ap"
				}
			}
		]
	}
}
root@OpenWrt:~# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.channel='11'
wireless.radio0.hwmode='11g'
wireless.radio0.path='platform/ar933x_wmac'
wireless.radio0.htmode='HT20'
wireless.radio0.disabled='1'
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device='radio0'
wireless.@wifi-iface[0].network='lan'
wireless.@wifi-iface[0].mode='ap'
wireless.@wifi-iface[0].ssid='OpenWrt'
wireless.@wifi-iface[0].encryption='none'
root@OpenWrt:~# wifi detect >> /etc/config/wireless
root@OpenWrt:~# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.channel='11'
wireless.radio0.hwmode='11g'
wireless.radio0.path='platform/ar933x_wmac'
wireless.radio0.htmode='HT20'
wireless.radio0.disabled='1'
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device='radio0'
wireless.@wifi-iface[0].network='lan'
wireless.@wifi-iface[0].mode='ap'
wireless.@wifi-iface[0].ssid='OpenWrt'
wireless.@wifi-iface[0].encryption='none'
wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.channel='11'
wireless.radio1.hwmode='11g'
wireless.radio1.path='platform/ehci-platform/usb1/1-1/1-1:1.0'
wireless.radio1.htmode='HT20'
wireless.radio1.disabled='1'
wireless.@wifi-iface[1]=wifi-iface
wireless.@wifi-iface[1].device='radio1'
wireless.@wifi-iface[1].network='lan'
wireless.@wifi-iface[1].mode='ap'
wireless.@wifi-iface[1].ssid='OpenWrt'
wireless.@wifi-iface[1].encryption='none'
root@OpenWrt:~# wifi
'radio0' is disabled
'radio1' is disabled
'radio0' is disabled
'radio1' is disabled
root@OpenWrt:~# ubus call network.wireless status
{
	"radio0": {
		"up": false,
		"pending": false,
		"autostart": true,
		"disabled": true,
		"config": {
			"channel": "11",
			"hwmode": "11g",
			"path": "platform\/ar933x_wmac",
			"htmode": "HT20",
			"disabled": true
		},
		"interfaces": [
			{
				"section": "@wifi-iface[0]",
				"config": {
					"mode": "ap",
					"ssid": "OpenWrt",
					"encryption": "none",
					"network": [
						"lan"
					],
					"mode": "ap"
				}
			}
		]
	},
	"radio1": {
		"up": false,
		"pending": false,
		"autostart": true,
		"disabled": true,
		"config": {
			"channel": "11",
			"hwmode": "11g",
			"path": "platform\/ehci-platform\/usb1\/1-1\/1-1:1.0",
			"htmode": "HT20",
			"disabled": true
		},
		"interfaces": [
			{
				"section": "@wifi-iface[1]",
				"config": {
					"mode": "ap",
					"ssid": "OpenWrt",
					"encryption": "none",
					"network": [
						"lan"
					],
					"mode": "ap"
				}
			}
		]
	}
}

comment:13 Changed 2 years ago by anonymous

another indication it's not working properly is when the USB card resets or is being reconnected to the USB port the txpower on AR9331 radio resets back to 18dBm:

txpower of both ifaces before resetting:

root@OpenWrt:~# iwconfig
gre0      no wireless extensions.

lo        no wireless extensions.

gretap0   no wireless extensions.

wlan1     IEEE 802.11bgn  Mode:Master  Tx-Power=20 dBm   
          RTS thr:off   Fragment thr:off
          Power Management:off
          
wlan0     IEEE 802.11bgn  Mode:Master  Tx-Power=0 dBm   
          RTS thr:off   Fragment thr:off
          Power Management:off
          
eth0      no wireless extensions.

br-lan    no wireless extensions.

and config:

root@OpenWrt:~# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type='mac80211'
wireless.radio0.hwmode='11g'
wireless.radio0.path='platform/ar933x_wmac'
wireless.radio0.channel='1'
wireless.radio0.txpower='0'
wireless.radio0.country='US'
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device='radio0'
wireless.@wifi-iface[0].network='lan'
wireless.@wifi-iface[0].mode='ap'
wireless.@wifi-iface[0].ssid='OpenWrt'
wireless.@wifi-iface[0].encryption='psk2+ccmp'
wireless.@wifi-iface[0].key='fbgaiuwbwrgtu49a'
wireless.radio1=wifi-device
wireless.radio1.type='mac80211'
wireless.radio1.channel='11'
wireless.radio1.hwmode='11g'
wireless.radio1.path='platform/ehci-platform/usb1/1-1/1-1:1.0'
wireless.radio1.htmode='HT20'
wireless.@wifi-iface[1]=wifi-iface
wireless.@wifi-iface[1].device='radio1'
wireless.@wifi-iface[1].network='lan'
wireless.@wifi-iface[1].mode='ap'
wireless.@wifi-iface[1].ssid='OpenWrt'
wireless.@wifi-iface[1].encryption='psk2+ccmp'
wireless.@wifi-iface[1].key='arhbgh9EOHRNBLBGREA'

disabling USB port:

root@OpenWrt:~# echo 0 > /sys/class/gpio/gpio18/value
root@OpenWrt:~# iwconfig
gre0      no wireless extensions.

lo        no wireless extensions.

gretap0   no wireless extensions.

wlan0     IEEE 802.11bgn  Mode:Master  Tx-Power=0 dBm   
          RTS thr:off   Fragment thr:off
          Power Management:off
          
eth0      no wireless extensions.

br-lan    no wireless extensions.

and re-enabling reset txpower value of wlan0:

root@OpenWrt:~# echo 1 > /sys/class/gpio/gpio18/value
root@OpenWrt:~# iwconfig
gre0      no wireless extensions.

lo        no wireless extensions.

gretap0   no wireless extensions.

wlan1     IEEE 802.11bgn  Mode:Master  Tx-Power=20 dBm   
          RTS thr:off   Fragment thr:off
          Power Management:off
          
wlan0     IEEE 802.11bgn  Mode:Master  Tx-Power=18 dBm   
          RTS thr:off   Fragment thr:off
          Power Management:off
          
eth0      no wireless extensions.

br-lan    no wireless extensions.

i've repeat same procedure without any USB device and with card-reader device plugged into USB port and the wlan0 txpower value remained at 0

comment:14 in reply to: ↑ 9 ; follow-up: Changed 23 months ago by anonymous

Replying to jow:

Most mismatching settings will cause hostapd to not even start, leaving only tx power and channels as candidates. Those settings however are restricted by the EEPROM

no they are not.

comment:15 in reply to: ↑ 14 Changed 23 months ago by jow

  • Priority changed from high to response-needed

Replying to anonymous:

no they are not.

Details? Driver? OpenWrt version?

comment:16 Changed 23 months ago by anonymous

i don't know. i'm neither a progrmaer nor an atheros employee to know. any openwrt version i guess.

comment:17 Changed 21 months ago by anonymous

I recently used the Luci interface to enable the second radio on my TP-Link TL-WDR4300 v1.

I checked that it was on a different station than radio0, then hit the "enable" button under Network -> Wifi. DON'T DO IT PEOPLE, DON'T DO IT. At least if you have a similar type of router, don't enable the second radio through the Luci interface, use cli.

My wifi was immediately broken, I did a complete reboot, modem, router, computer, checked again, no connectivity repeated the complete reboot, still no internet connection whatsoever either on wifi or lan. I usually would be able to ssh into the router, but was not able to access it in any way. Fortunately for me, my entire root system with lots of changes and configurations I had made previously (all of which were working well) was extracted unto a usb stick. I was able to simply take that out, and the router was back to the condition as when it was first flased with OpenWrt. I then mounted my usb in a separate folder and went in to find /etc/config/wifi.

Strangely, the iface configuration for radio1 had the line "disabled '1' " even though I had just enabled it through Luci. Yes, yes, I TRIPLE checked that I was looking at the mounted system on the usb, not the original software with its defaults. I then rebooted with the usb in (the fstab file is configured to automatically load the new configurations), and still had no internet access using my mounted system. I was not happy that apparently I had lost the usuability of all my configurations and changes, which I had been using for several months with no connectivity problems. I rebooted one more time (with default settings) looked back in the /etc/config/wifi on the usb again and very strangely, THIS time the "disabled '1' " line was not present in the file. Didn't want to take any chances, so I wrote the line back in, and decided not to use my second radio for now, unless I can get some info from somebody about how to properly enable it through command line.

It doesn't seem to make sense, but after a reboot, all my configurations are fine, wifi and lan connections are back just fine, even though the /etc/config/wifi file now has all the exact same configs as when I was unable to get connection.

I suspect that the Luci interface makes other changes to other files? Maybe somebody knows more about this?

Add Comment

Modify Ticket

Action
as new .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.