[Bug 1126751] Re: [wifi] CRDA Regulatory Support is broken
Matthew Paul Thomas
mpt at canonical.com
Wed Jul 2 08:47:15 UTC 2014
** Project changed: touch-preview-images => system-image (Ubuntu)
** Tags added: touch-preview-images
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to system-image in Ubuntu.
https://bugs.launchpad.net/bugs/1126751
Title:
[wifi] CRDA Regulatory Support is broken
Status in “system-image” package in Ubuntu:
In Progress
Bug description:
Our images currently are broken with respect to Wi-Fi CRDA ( Central
Regulatory Domain Agent ) / Regulatory support.
We don't include the regulatory DB package ( wireless-regdb ) nor the
user agent used to load regulatory information into the kernel ( crda
). The kernel requests CRDA updates by generating a uevent, which is
caught by udevd, which in turn matches a simple role that causes
/sbin/crda to be invoked. As we're missing the required packages and
not running udev on our images, CRDA updates fail.
If you look /var/log/syslog on a Galaxy Nexus / maguro running
phablet-image >= 83, you'll see the following messages whenever the
phone boots:
cfg80211: Calling CRDA to update world regulatory domain
This may be related to some of the bugs we're seeing with 802.11an (
5GHz band ) access points we've seen including bug # 1107943 ( maguro
) and bug # 1126264 ( manta ).
Also, I went ahead an installed wireless-regdb and crda on my maguro.
When I run 'sudo iw reg set US', it has no effect.
Note, for more information on the Linux regulatory framework, please
refer to:
http://wireless.kernel.org/en/developers/Regulatory
or Documentation/networking/regulatory.txt in the kernel.
In order for this to be fixed, we need to do the following:
1. Add wireless-regdb and crda to our builds
2. Figure out someway to properly set the REGDOMAIN in /etc/default/crda
( distro plans to fix by modifying the post-install script of crda, but I'm not sure this will work for us )
3. Fix one or more Wi-Fi drivers, if so required
== Drivers ==
=== Galaxy Nexus (maguro) ===
The Galaxy Nexus uses the bcmdhd Wi-Fi driver. Which it turns out has
code to set a custom world regdomain by default ( see
/drivers/net/wireless/bcmdhd/wl_cfg80211.c ), and also appears not to
play well with the kernel wireless regulatory framework.
This causes problems for wpa_supplicant, which actually queries the
regdomain info from the kernel/driver, and uses this information to
govern it's behavior.
This means it's probably time to revisit the delta between Android's
version of wpa_supplicant, and the latest version in Ubuntu.
Also note, while doing some investigation on the bcmdhd driver, I ran
into a reference of a private Broadcom-specific wpa_supplicant
library.
== Nexus 4 (mako) ==
The Nexus 4 uses the wcnss_wlan driver ( aka prima ). The upstream
git tree can be found at git://codeaurora.org/external/wlan/prima.git.
This driver also apparently doesn't react to 'iw reg set' either. It
also doesn't appear to be integrated with cfg80211 either.
Note, from the codearora.org site, it appears the Prima driver is for
a Qualcomm MSM WLAN module ( which may use an Atheros chip internally
).
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/system-image/+bug/1126751/+subscriptions
More information about the foundations-bugs
mailing list