[Bug 1126751] [NEW] [wifi] CRDA Regulatory Support is broken

Launchpad Bug Tracker 1126751 at bugs.launchpad.net
Wed Jul 2 08:47:18 UTC 2014


You have been subscribed to a public bug:

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 ).

** Affects: system-image (Ubuntu)
     Importance: High
     Assignee: Mathieu Trudel-Lapierre (mathieu-tl)
         Status: In Progress

-- 
[wifi] CRDA Regulatory Support is broken
https://bugs.launchpad.net/bugs/1126751
You received this bug notification because you are a member of Ubuntu Foundations Bugs, which is subscribed to system-image in Ubuntu.



More information about the foundations-bugs mailing list