[LEDE-DEV] WRT3200ACM crashes after mac80211 wireless-testing 2017-11-01

Syrone Wong wong.syrone at gmail.com
Wed Nov 22 16:25:14 PST 2017


1. minor warning

.config:5:warning: symbol value 'm' invalid for ATH_REG_DYNAMIC_USER_REG_HINTS

The config entry is of type bool.

bool "Atheros dynamic user regulatory hints"
default n
 Say N. This should only be enabled in countries where
 this feature is explicitly allowed and only on cards that
 specifically have been tested for this.

2. wireless-regdb

python $(PKG_BUILD_DIR)/db2fw.py $(PKG_BUILD_DIR)/regulatory.db
$(PKG_BUILD_DIR)/db.txt in Build/Compile assumes python is linked to
python2 by default. But it's not the truth for bleeding edge distros,
for example, Archlinux.

It will fail on the system that links python to python 3.

 File "/home/wong/github/lede-1/build_dir/target-arm_cortex-a9+vfpv3_musl_eabi/wireless-regdb-2017-10-20-4343d359/db2fw.py",
line 13

    print 'Usage: %s output-file input-file' % sys.argv[0]
SyntaxError: Missing parentheses in call to 'print'. Did you mean
print(int 'Usage: %s output-file input-file' % sys.argv[0])?

The error got ignored silently.

I propose following `tools/scons/files/pywrap.sh` way, find python2
ourselves and call python2 explicitly.

3. About the crash

It crashes in ~5mins after clients connected to the router. No warning
or kernel panic messages at all, just rebooting.

I tried to build new backports based on wt-2017-11-14, drop some
patches already upstream, and still the same issue.

After reverting
2dc485250d516f1535eeaf53f0f2f5742e5f9e0c and
f9fa266faf9a2fdea48cc2fb72fa5a7e52a527c0, the crash disappears.

4. My thoughts

The big change has been made is switching from internal regdb to a
self-built one.

>From net/wireless/Kconfig, there are several config entries are
enabled by default.

bool "require regdb signature" if CFG80211_CERTIFICATION_ONUS
default y
 Require that in addition to the "regulatory.db" file a
 "regulatory.db.p7s" can be loaded with a valid PKCS#7
 signature for the regulatory.db file made by one of the
 keys in the certs/ directory.

bool "allow regdb keys shipped with the kernel" if CFG80211_CERTIFICATION_ONUS
default y
 Allow the regulatory database to be signed by one of the keys for
 which certificates are part of the kernel sources
 (in net/wireless/certs/).

 This is currently only Seth Forshee's key, who is the regulatory
 database maintainer.

config CFG80211_CRDA_SUPPORT
bool "support CRDA" if EXPERT
default y
depends on CFG80211
 You should enable this option unless you know for sure you have no
 need for it, for example when using internal regdb (above) or the
 database loaded as a firmware file.

 If unsure, say Y.

We don't have CRDA installed and there is no signing key being
installed. This might be the root cause. While I'm not familiar with
this series of changes. I wonder if someone can dig into it.

Best Regards,
Syrone Wong

More information about the Lede-dev mailing list