Occasionally I have found that a wifi dongle on one of my HD/Rs will fail to connect. Generally, restarting the wireless router would fix this. Recently it didn't, causing me to have to diagnose the issue properly.
The problem comes down to automatic channel selection by the router. In the IEEE802.11b/g/n system, the available wireless band is split into 14 overlapping channels, whose availability is restricted by regulations that vary from region to region. With automatic channel selection, the access point (wireless router) chooses a channel from those available to it to minimise interference from other users of the 2.4GHz band. If the access point is set for a liberal regime while the station (the dongle) accepts a stricter subset of channels, the station will fail to connect when the access point picks a channel outside the station's set. By default, the failing dongle had5 (channels 1-14 as discussed in the post below).
Perhaps this setting persists in the dongle's firmware and can be set from another host, eg PC. Well, no: it's encoded in the read-only driver settings file at
In the latest CF, this is the read-only
wset CountryRegion 5
and modify
Perhaps this issue explains why some 2870/3070 dongles work and others seem not to?
The problem comes down to automatic channel selection by the router. In the IEEE802.11b/g/n system, the available wireless band is split into 14 overlapping channels, whose availability is restricted by regulations that vary from region to region. With automatic channel selection, the access point (wireless router) chooses a channel from those available to it to minimise interference from other users of the 2.4GHz band. If the access point is set for a liberal regime while the station (the dongle) accepts a stricter subset of channels, the station will fail to connect when the access point picks a channel outside the station's set. By default, the failing dongle had
CountryRegion=7
, limiting the channels to 5-13. For a device that isn't an access point, there's no reason for the setting not to be CountryRegion=31
/etc/Wireless/RT2870STA/RT2870STA.dat
. However, when CF is available, the fix is to modify the wifi-up routine.In the latest CF, this is the read-only
/sbin/wifi-up
. Therefore you have to copy this to /mod/sbin/wifi-up1
(to avoid trashing a file used with older CF - is it really necessary? why are there different routines?), add a new line 44 after the one setting NetworkType:
Code:
wset CountryRegion 31
/mod/etc/init.d/S00wlan
to call /mod/sbin/wifi-up1
(line 10).Perhaps this issue explains why some 2870/3070 dongles work and others seem not to?
Last edited: