crda
Configure wireless regulatory domain settings
SYNOPSIS
crda
DESCRIPTION
The crda command is a userspace helper program in Linux used to set the regulatory domain for wireless devices. Regulatory domains define the allowed frequencies, transmit power, and other parameters for wireless communication in a specific geographic region. crda typically interacts with the kernel's wireless subsystem (primarily mac80211) to ensure compliance with local regulations.
It accomplishes this by reading the regulatory domain from a configuration file (typically /etc/default/crda) and then using the nl80211 netlink interface to communicate this information to the kernel.
crda is often triggered automatically during system boot or when a wireless interface is brought up. It's an essential component for ensuring legal and safe wireless operation.
CAVEATS
crda itself doesn't take any command-line parameters. It reads its configuration from /etc/default/crda, and relies on the kernel to enforce the regulatory domain. Incorrect configuration can lead to non-compliant wireless operation or even legal issues. Proper configuration requires understanding local regulations and careful configuration of the wireless interface (using iw, or a similar tool).
CONFIGURATION FILE
The /etc/default/crda file typically contains a single line specifying the regulatory domain, for example: `REGDOMAIN=US`. This file is read by crda to determine the regulatory domain to set.
REGULATORY DOMAIN DETECTION
crda can also use the country code detected by the wireless device (e.g., from access point beacons) to automatically set the regulatory domain. If automatic detection fails or is not desired, the regulatory domain can be manually configured in /etc/default/crda.
HISTORY
crda was developed as part of the Linux wireless subsystem to provide a centralized mechanism for managing regulatory domains. It addresses the need to dynamically set the regulatory domain based on the detected country code or user-defined settings.
Historically, managing regulatory domains was a more manual process, potentially requiring kernel recompilation or complex configurations. crda simplified this process by providing a userspace tool to communicate with the kernel's mac80211 subsystem.