For permanent configuration of certain device behaviours, UHD supports configuration files.
Configurations files use the INI format. A UHD configuration file might look like this:
For the most part, any setting that can get put into device args at initialization time can be put into the config file. For example, the X300 has a key called ext_adc_self_test
which is disabled by default. To enable it, you can add it to your device args:
However, this can be cumbersome if the intention is to permanently enable this for all X300s connected to this machine. To generally enable this option for all X300s without having to modify the make()
call, the config file can simply be updated as such:
This will act as if this key/value pair had been passed to the device args directly. This means the valid key/value pairs for the config files are the same as those for the device args (see Device Configuration through address string).
For settings that are not specific to a device, but rather to the UHD session, there is the Global
section. At the time of writing this, there is only one setting available in this section which is the guided_mode
which supports the user on X440 devices. For turning it off, the following can be added to the config file:
DPDK is a special case. Because there are so many things to configure for DPDK, it is highly recommended to use config files. The section headers for DPDK configurations depend on on the network device used, not the USRP device. For more details, see NIC Configuration.
MPM devices (N3xx, E3xx) have their own configuration file (mpm.conf
) which is read once during initialization of MPM. It controls different things than the uhd.conf
file (both can be used for a session, but the UHD configuration will be used at every UHD session, whereas the MPM configuration file is only read once during MPM initialization). To reload the MPM configuration file, a restart of MPM is required.
The mpm.conf
files are structured a bit differently from uhd.conf
, so here's an example:
The key/value pairs for the type
or product
sections are documented in Device Configuration through MPM configuration files.
UHD will look for up to three configuration files:
/etc/uhd/uhd.conf
. On Windows systems, %programdata%/uhd/uhd.conf
. The default can be overwritten at compile time by setting UHD_SYS_CONF_FILE
through CMake.$XDG_CONFIG_HOME/uhd.conf
, where $XDG_CONFIG_HOME
is usually the same as $HOME/.config
. On Windows systems, it also checks %localappdata%
and %appdata%
. The default can be overwritten at compile time by setting the UHD_USER_CONF_FILE
through CMake.UHD_CONFIG_FILE
UHD will read these files in this order (if they exist). Settings from one file will overwrite those from a previous one, so if the same setting exists in the system-wide file and the user-specific file, the settings from the user-specific file will take effect. There is no error if a file does not exist, or the environment variable is not set.
MPM will only look for a configuration file in /etc/uhd/mpm.conf
, on the device running MPM itself.