mirror of
https://github.com/saymrwulf/uhd.git
synced 2026-05-16 21:10:10 +00:00
This adds some more details on mpm.conf, what it does, how it works, and which keys it accepts.
118 lines
4.5 KiB
Text
118 lines
4.5 KiB
Text
/*! \page page_configfiles Configuration Files
|
|
|
|
\tableofcontents
|
|
|
|
For permanent configuration of certain device behaviours, UHD supports
|
|
configuration files.
|
|
|
|
\section configfiles_format Format of the configuration files
|
|
|
|
Configurations files use the INI format. A UHD configuration file might look
|
|
like this:
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.ini}
|
|
; Comments start with a semicolon
|
|
; Sections are put in square brackets:
|
|
[type=b200]
|
|
; These settings apply to all USRPs that are of type b200:
|
|
master_clock_rate=20e6
|
|
|
|
[serial=FE18011]
|
|
; These settings apply to the USRPs with the given serial:
|
|
master_clock_rate=10e6 ; If this is a b200, this will overwrite the above settings
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
\section configfiles_usrps Configuring USRPs
|
|
|
|
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:
|
|
|
|
~~~{.cpp}
|
|
auto usrp = uhd::usrp::multi_usrp::make("type=x300,ext_adc_self_test=1");
|
|
~~~
|
|
|
|
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:
|
|
|
|
~~~~{.ini}
|
|
[type=x300]
|
|
ext_adc_self_test=1
|
|
~~~~
|
|
|
|
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 \ref config_devaddr).
|
|
|
|
\section configfiles_usrps_dpdk Configuring DPDK
|
|
|
|
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 \ref dpdk_nic_config.
|
|
|
|
\section configfiles_usrps_mpm Configuring MPM
|
|
|
|
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:
|
|
|
|
~~~~{.ini}
|
|
; This section is for any MPM behaviour
|
|
[mpm]
|
|
; Default log level for journald, can be overwritten by -v when starting manually
|
|
log_level=info
|
|
; Number of log records to buffer for the next get_log_buf() API call
|
|
log_buf_size=100
|
|
|
|
; Device-specific behaviour is set here. This allows having the same file for
|
|
; different device types, e.g., when a fleet of different devices are
|
|
; managed via Salt or similar tools. The key here is the same as what you would
|
|
; use in device args as a type value.
|
|
[n3xx]
|
|
KEY=VALUE
|
|
|
|
; Alternatively, specify a product value.
|
|
[n310]
|
|
KEY=VALUE
|
|
~~~~
|
|
|
|
The key/value pairs for the `type` or `product` sections are documented
|
|
in \ref config_mpm.
|
|
|
|
\section configfiles_location Location of configuration files
|
|
|
|
\b UHD will look for up to three configuration files:
|
|
|
|
1. A system-wide configuration file. On Unix systems, the default location for
|
|
this file is <b><tt>/etc/uhd/uhd.conf</tt></b>. On Windows systems,
|
|
<b><tt>\%programdata%/uhd/uhd.conf</tt></b>. The default can be overwritten
|
|
at compile time by setting `UHD_SYS_CONF_FILE` through CMake.
|
|
2. A user-specific configuration file. On Unix systems, it defaults to
|
|
`$XDG_CONFIG_HOME/uhd.conf`, where `$XDG_CONFIG_HOME` is usually the same as
|
|
`$HOME/.config`. On Windows systems, it also checks
|
|
<b><tt>\%localappdata%</tt></b> and <b><tt>\%appdata%</tt></b>.
|
|
The default can be overwritten at compile time by setting
|
|
the `UHD_USER_CONF_FILE` through CMake.
|
|
3. A configuration file specified by the environment variable `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.
|
|
|
|
\b MPM will only look for a configuration file in `/etc/uhd/mpm.conf`, on the
|
|
device running MPM itself.
|
|
|
|
*/
|
|
// vim:ft=doxygen:
|