什么是 CRDA 监管域,为什么我的 Wifi 卡每分钟都在尝试设置它们?

Jon*_*han 7 wifi

我几乎无法理解我的 dmesg 日志输出,但这是我一直看到的一条消息,我认为这与我的 Wifi 每隔一分钟左右切断的更大问题有关:

[ 6170.340618] cfg80211: Calling CRDA for country: US
[ 6170.346573] cfg80211: Regulatory domain changed to country: US
[ 6170.346580] cfg80211:  DFS Master region: FCC
[ 6170.346582] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[ 6170.346588] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
[ 6170.346591] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm), (N/A)
[ 6170.346595] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2300 mBm), (0 s)
[ 6170.346599] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
[ 6170.346602] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
Run Code Online (Sandbox Code Playgroud)

这是什么意思?这是坏事吗?如果是这样,我该如何解决?

dok*_*000 6

您可以查看联机帮助页以及其中的链接 - http://wireless.kernel.org/en/developers/Regulatory/

$ apropos CRDA crda (8) - send to the kernel a wireless regulatory domain for a given ISO / IEC 3166 alpha2

man crda 的输出:

CRDA(8)                                                                  Linux                                                                  CRDA(8)

NAME
       crda - send to the kernel a wireless regulatory domain for a given ISO / IEC 3166 alpha2

SYNOPSIS
       crda

Description
       crda is the Linux wireless central regulatory domain agent.  crda is intended to be used by udev scripts and should not be run manually unless
       debugging udev scripts.  crda is triggered to run by the kernel by sending a udev event upon a new regulatory domain change. Regulatory domain
       changes are triggered by the wireless kernel subsystem (upon initialization and on reception of country IEs), wireless drivers, or userspace
       (see iw ). Upon a regulatory domain change the kernel sends a udev change event for the regulatory platform. The kernel ignores regulatory
       domains sent to it if it does not expect them. The regulatory domain is read by crda from the regulatory.bin file.

RSA Digital Signature
       If built with openssl or gcrypt support crda will have embedded into it an RSA digital signature which will prevent it from reading corrupted or
       non-authored regulatory.bin files. Authorship is respected by the RSA public key packed into crda.  This specific crda package has been built
       with an RSA public key from John Linville (the Linux wireless kernel maintainer) and as such will only read regulatory.bin files signed by him.
       For further information see the regulatory.bin man page.

UDEV RULE
       A udev regulatory rule must be put in place in order to receive and parse udev events from the kernel in order to get udev to call crda with the
       passed ISO / IEC 3166 alpha2 country code.  An example udev rule which can be used (usually in /lib/udev/rules.d/85-regulatory.rules ):

       KERNEL=="regulatory*", ACTION=="change", SUBSYSTEM=="platform", RUN+="/sbin/crda"

Environment variable
       Set the COUNTRY environment variable with a specific ISO / IEC 3166 alpha2 country code and then run crda without arguments. This will send a
       regulatory domain for that alpha2 to the kernel.

SEE ALSO
       iw(8) regulatory.bin(5)

       http://wireless.kernel.org/en/developers/Regulatory/
Run Code Online (Sandbox Code Playgroud)

回答你的其余问题:不,这不是一件坏事。CRDA(不像主题中的 CDRA)域与为给定国家选择允许的无线信道相关。并非所有国家/地区都允许使用所有频道。
示例:对于欧洲,我们有频道 12 和 13,这在北美是不允许的。

另见http://en.wikipedia.org/wiki/List_of_WLAN_channels#Interference_concerns

  • 所以如果我不改变监管领域,那么它就不应该改变,对吗?因为我经常看到这条消息——从一天几次到一分钟几次。我不认为它应该一直重新计算这个,是吗? (2认同)