AMD Ryzen: Testing Part 2

For the same system in a previous article, AMD has been very helpful, and they wanted to see if having a newer BIOS on the motherboard with a newer version of AGESA would help things out any. Seems a reasonable request, as the BIOS on the motherboard was a year old, so I flashed a new BIOS and tried it again.

Trouble in paradise manifests around 11m:50s, and AMD has sent me a short RMA form to fill out and return.

Updated information from this time around:

Motherboard BIOS Version:
- Before flashing: E7A34AMS.120 03/2017
- After flashing to newer version: E7A34AMS.1C0 01/2018

New Bios Screenshots:
BIOS Screenshot - Shows updated BIOS version.
BIOS Screenshot - Shows voltage readings under new BIOS. (Spoiler alert: they haven't changed.)

Temperatures:
- Ambient (room) temp about 22 degrees C.
- No appreciable load, around 30 - 35 degrees C according to k10temp
- Under load, peak in the low 50s degrees C per k10temp
- Temperature at failure point, 52.4 degrees C according to k10temp

New, Improved Information Video:
- Slideshow, sensors for k10temp, top, tail -f /var/log/kern/log
- https://github.com/Oxalin/ryzen-test (very mild stress test)
- Camera monitoring inside of PC (showing cooling live as it happens)
- At failure time (11m:50s), evidence appears in ryzen-test and tail kern.log windows.
- Video online: https://youtu.be/26x56Ft8EZ8
- Video download: The_AMD_Ryzen_Linux_Testing_Part_2.mkv [138MB]

Unix man page: nmcli (1431 lines; 6817 words; 76322 bytes).

NMCLI(1)                    General Commands Manual                   NMCLI(1)

NAME
       nmcli - command-line tool for controlling NetworkManager

SYNOPSIS
       nmcli [OPTIONS...] {help | general | networking | radio | connection |
             device | agent | monitor} [COMMAND] [ARGUMENTS...]

DESCRIPTION
       nmcli is a command-line tool for controlling NetworkManager and
       reporting network status. It can be utilized as a replacement for
       nm-applet or other graphical clients.  nmcli is used to create,
       display, edit, delete, activate, and deactivate network connections, as
       well as control and display network device status.

       Typical uses include:

       ·   Scripts: Utilize NetworkManager via nmcli instead of managing
           network connections manually.  nmcli supports a terse output format
           which is better suited for script processing. Note that
           NetworkManager can also execute scripts, called "dispatcher
           scripts", in response to network events. See NetworkManager(8) for
           details about these dispatcher scripts.

       ·   Servers, headless machines, and terminals: nmcli can be used to
           control NetworkManager without a GUI, including creating, editing,
           starting and stopping network connections and viewing network
           status.

OPTIONS
       -t | --terse
           Output is terse. This mode is designed and suitable for computer
           (script) processing.

       -p | --pretty
           Output is pretty. This causes nmcli to produce easily readable
           outputs for humans, i.e. values are aligned, headers are printed,
           etc.

       -m | --mode {tabular | multiline}
           Switch between tabular and multiline output:

           tabular
               Output is a table where each line describes a single entry.
               Columns define particular properties of the entry.

           multiline
               Each entry comprises multiple lines, each property on its own
               line. The values are prefixed with the property name.

           If omitted, default is tabular for most commands. For the commands
           producing more structured information, that cannot be displayed on
           a single line, default is multiline. Currently, they are:

           ·   nmcli connection show ID

           ·   nmcli device show

       -c | --colors {yes | no | auto}
           This option controls color output (using terminal escape
           sequences).  yes enables colors, no disables them, auto only
           produces colors when standard output is directed to a terminal. The
           default value is auto.

       -f | --fields {field1,field2... | all | common}
           This option is used to specify what fields (column names) should be
           printed. Valid field names differ for specific commands. List
           available fields by providing an invalid value to the --fields
           option.  all is used to print all valid field values of the
           command.  common is used to print common field values of the
           command.

           If omitted, default is common.

       -g | --get-values {field1,field2... | all | common}
           This option is used to print values from specific fields. It is
           basically a shortcut for --mode tabular --terse --fields and is a
           convenient way to retrieve values for particular fields. The values
           are printed one per line without headers.

           If a section is specified instead of a field, the section name will
           be printed followed by colon separated values of the fields
           belonging to that section, all on the same line.

       -e | --escape {yes | no}
           Whether to escape : and \ characters in terse tabular mode. The
           escape character is \.

           If omitted, default is yes.

       -a | --ask
           When using this option nmcli will stop and ask for any missing
           required arguments, so do not use this option for non-interactive
           purposes like scripts. This option controls, for example, whether
           you will be prompted for a password if it is required for
           connecting to a network.

       -s | --show-secrets
           When using this option nmcli will display passwords and secrets
           that might be present in an output of an operation. This option
           also influences echoing passwords typed by user as an input.

       -w | --wait seconds
           This option sets a timeout period for which nmcli will wait for
           NetworkManager to finish operations. It is especially useful for
           commands that may take a longer time to complete, e.g. connection
           activation.

           Specifying a value of 0 instructs nmcli not to wait but to exit
           immediately with a status of success. The default value depends on
           the executed command.

       --complete-args
           Instead of conducting the desired action, nmcli will list possible
           completions for the last argument. This is useful to implement
           argument completion in shell.

           The exit status will indicate success or return a code 65 to
           indicate the last argument is a file name.

           NetworkManager ships with command completion support for GNU Bash.

       -v | --version
           Show nmcli version.

       -h | --help
           Print help information.

GENERAL COMMANDS
       nmcli general {status | hostname | permissions | logging}
                     [ARGUMENTS...]

       Use this command to show NetworkManager status and permissions. You can
       also get and change system hostname, as well as NetworkManager logging
       level and domains.

       status
           Show overall status of NetworkManager. This is the default action,
           when no additional command is provided for nmcli general.

       hostname [hostname]
           Get and change system hostname. With no arguments, this prints
           currently configured hostname. When you pass a hostname, it will be
           handed over to NetworkManager to be set as a new system hostname.

           Note that the term "system" hostname may also be referred to as
           "persistent" or "static" by other programs or tools. The hostname
           is stored in /etc/hostname file in most distributions. For example,
           systemd-hostnamed service uses the term "static" hostname and it
           only reads the /etc/hostname file when it starts.

       permissions
           Show the permissions a caller has for various authenticated
           operations that NetworkManager provides, like enable and disable
           networking, changing Wi-Fi and WWAN state, modifying connections,
           etc.

       logging [level level] [domains domains...]
           Get and change NetworkManager logging level and domains. Without
           any argument current logging level and domains are shown. In order
           to change logging state, provide level and, or, domain parameters.
           See NetworkManager.conf(5) for available level and domain values.

NETWORKING CONTROL COMMANDS
       nmcli networking {on | off | connectivity} [ARGUMENTS...]

       Query NetworkManager networking status, enable and disable networking.

       on, off
           Enable or disable networking control by NetworkManager. All
           interfaces managed by NetworkManager are deactivated when
           networking is disabled.

       connectivity [check]
           Get network connectivity state. The optional check argument tells
           NetworkManager to re-check the connectivity, else the most recent
           known connectivity state is displayed without re-checking.

           Possible states are:

           none
               the host is not connected to any network.

           portal
               the host is behind a captive portal and cannot reach the full
               Internet.

           limited
               the host is connected to a network, but it has no access to the
               Internet.

           full
               the host is connected to a network and has full access to the
               Internet.

           unknown
               the connectivity status cannot be found out.

RADIO TRANSMISSION CONTROL COMMANDS
       nmcli radio {all | wifi | wwan} [ARGUMENTS...]

       Show radio switches status, or enable and disable the switches.

       wifi [on | off]
           Show or set status of Wi-Fi in NetworkManager. If no arguments are
           supplied, Wi-Fi status is printed; on enables Wi-Fi; off disables
           Wi-Fi.

       wwan [on | off]
           Show or set status of WWAN (mobile broadband) in NetworkManager. If
           no arguments are supplied, mobile broadband status is printed; on
           enables mobile broadband, off disables it.

       all [on | off]
           Show or set all previously mentioned radio switches at the same
           time.

ACTIVITY MONITOR
       nmcli monitor

       Observe NetworkManager activity. Watches for changes in connectivity
       state, devices or connection profiles.

       See also nmcli connection monitor and nmcli device monitor to watch for
       changes in certain devices or connections.

CONNECTION MANAGEMENT COMMANDS
       nmcli connection {show | up | down | modify | add | edit | clone |
                        delete | monitor | reload | load | import | export}
                        [ARGUMENTS...]

       NetworkManager stores all network configuration as "connections", which
       are collections of data (Layer2 details, IP addressing, etc.) that
       describe how to create or connect to a network. A connection is
       "active" when a device uses that connection's configuration to create
       or connect to a network. There may be multiple connections that apply
       to a device, but only one of them can be active on that device at any
       given time. The additional connections can be used to allow quick
       switching between different networks and configurations.

       Consider a machine which is usually connected to a DHCP-enabled
       network, but sometimes connected to a testing network which uses static
       IP addressing. Instead of manually reconfiguring eth0 each time the
       network is changed, the settings can be saved as two connections which
       both apply to eth0, one for DHCP (called default) and one with the
       static addressing details (called testing). When connected to the
       DHCP-enabled network the user would run nmcli con up default , and when
       connected to the static network the user would run nmcli con up
       testing.

       show [--active] [--order [+-]category:...]
           List in-memory and on-disk connection profiles, some of which may
           also be active if a device is using that connection profile.
           Without a parameter, all profiles are listed. When --active option
           is specified, only the active profiles are shown.

           The --order option can be used to get custom ordering of
           connections. The connections can be ordered by active status
           (active), name (name), type (type) or D-Bus path (path). If
           connections are equal according to a sort order category, an
           additional category can be specified. The default sorting order is
           equivalent to --order active:name:path.  + or no prefix means
           sorting in ascending order (alphabetically or in numbers), - means
           reverse (descending) order. The category names can be abbreviated
           (e.g.  --order -a:na).

       show [--active] [id | uuid | path | apath] ID...
           Show details for specified connections. By default, both static
           configuration and active connection data are displayed. When
           --active option is specified, only the active profiles are taken
           into account. Use global --show-secrets option to display secrets
           associated with the profile.

           id, uuid, path and apath keywords can be used if ID is ambiguous.
           Optional ID-specifying keywords are:

           id
               the ID denotes a connection name.

           uuid
               the ID denotes a connection UUID.

           path
               the ID denotes a D-Bus static connection path in the format of
               /org/freedesktop/NetworkManager/Settings/num or just num.

           apath
               the ID denotes a D-Bus active connection path in the format of
               /org/freedesktop/NetworkManager/ActiveConnection/num or just
               num.

           It is possible to filter the output using the global --fields
           option. Use the following values:

           profile
               only shows static profile configuration.

           active
               only shows active connection data (when the profile is active).

           You can also specify particular fields. For static configuration,
           use setting and property names as described in nm-settings(5)
           manual page. For active data use GENERAL, IP4, DHCP4, IP6, DHCP6,
           VPN.

           When no command is given to the nmcli connection, the default
           action is nmcli connection show.

       up [id | uuid | path] ID [ifname ifname] [ap BSSID] [passwd-file file]
           Activate a connection. The connection is identified by its name,
           UUID or D-Bus path. If ID is ambiguous, a keyword id, uuid or path
           can be used. When requiring a particular device to activate the
           connection on, the ifname option with interface name should be
           given. If the ID is not given an ifname is required, and
           NetworkManager will activate the best available connection for the
           given ifname. In case of a VPN connection, the ifname option
           specifies the device of the base connection. The ap option specify
           what particular AP should be used in case of a Wi-Fi connection.

           If --wait option is not specified, the default timeout will be 90
           seconds.

           See connection show above for the description of the ID-specifying
           keywords.

           Available options are:

           ifname
               interface that will be used for activation.

           ap
               BSSID of the AP which the command should connect to (for Wi-Fi
               connections).

           passwd-file
               some networks may require credentials during activation. You
               can give these credentials using this option. Each line of the
               file should contain one password in the form:

                   setting_name.property_name:the password

               For example, for WPA Wi-Fi with PSK, the line would be

                   802-11-wireless-security.psk:secret12345

               For 802.1X password, the line would be

                   802-1x.password:my 1X password

               nmcli also accepts wifi-sec and wifi strings instead of
               802-11-wireless-security. When NetworkManager requires a
               password and it is not given, nmcli will ask for it when run
               with --ask. If --ask was not passed, NetworkManager can ask
               another secret agent that may be running (typically a GUI
               secret agent, such as nm-applet or gnome-shell).

       down [id | uuid | path | apath] ID...
           Deactivate a connection from a device without preventing the device
           from further auto-activation. Multiple connections can be passed to
           the command.

           Be aware that this command deactivates the specified active
           connection, but the device on which the connection was active, is
           still ready to connect and will perform auto-activation by looking
           for a suitable connection that has the 'autoconnect' flag set. This
           includes the just deactivated connection. So if the connection is
           set to auto-connect, it will be automatically started on the
           disconnected device again.

           In most cases you may want to use device disconnect command
           instead.

           The connection is identified by its name, UUID or D-Bus path. If ID
           is ambiguous, a keyword id, uuid, path or apath can be used.

           See connection show above for the description of the ID-specifying
           keywords.

           If --wait option is not specified, the default timeout will be 10
           seconds.

       modify [--temporary] [id | uuid | path] ID
       {option value | [+|-]setting.property value}...
           Add, modify or remove properties in the connection profile.

           To set the property just specify the property name followed by the
           value. An empty value ("") removes the property value.

           In addition to the properties, you can also use short names for
           some of the properties. Consult the PROPERTY ALIASES section for
           details.

           If you want to append an item to the existing value, use + prefix
           for the property name. If you want to remove just one item from
           container-type property, use - prefix for the property name and
           specify a value or an zero-based index of the item to remove (or
           option name for properties with named options) as value. The + and
           - modifies only have a real effect for multi-value (container)
           properties like ipv4.dns, ipv4.addresses, bond.options, etc.

           See nm-settings(5) for complete reference of setting and property
           names, their descriptions and default values. The setting and
           property can be abbreviated provided they are unique.

           The connection is identified by its name, UUID or D-Bus path. If ID
           is ambiguous, a keyword id, uuid or path can be used.

       add [save {yes | no}] {option value | [+|-]setting.property value}...
           Create a new connection using specified properties.

           You need to describe the newly created connections with the
           property and value pairs. See nm-settings(5) for the complete
           reference. You can also use the aliases described in PROPERTY
           ALIASES section. The syntax is the same as of the nmcli connection
           modify command.

           To construct a meaningful connection you at the very least need to
           set the connection.type property (or use the type alias) to one of
           known NetworkManager connection types:

           ·   ethernet

           ·   wifi

           ·   wimax

           ·   pppoe

           ·   gsm

           ·   cdma

           ·   infiniband

           ·   bluetooth

           ·   vlan

           ·   bond

           ·   bond-slave

           ·   team

           ·   team-slave

           ·   bridge

           ·   bridge-slave

           ·   vpn

           ·   olpc-mesh

           ·   adsl

           ·   tun

           ·   ip-tunnel

           ·   macvlan

           ·   vxlan

           ·   dummy

           The most typical uses are described in the EXAMPLES section.

           Aside from the properties and values two special options are
           accepted:

           save
               Controls whether the connection should be persistent, i.e.
               NetworkManager should store it on disk (default: yes).

           --
               If a single -- argument is encountered it is ignored. This is
               for compatibility with older versions on nmcli.

       edit {[id | uuid | path] ID | [type type] [con-name name] }
           Edit an existing connection or add a new one, using an interactive
           editor.

           The existing connection is identified by its name, UUID or D-Bus
           path. If ID is ambiguous, a keyword id, uuid, or path can be used.
           See connection show above for the description of the ID-specifying
           keywords. Not providing an ID means that a new connection will be
           added.

           The interactive editor will guide you through the connection
           editing and allow you to change connection parameters according to
           your needs by means of a simple menu-driven interface. The editor
           indicates what settings and properties can be modified and provides
           in-line help.

           Available options:

           type
               type of the new connection; valid types are the same as for
               connection add command.

           con-name
               name for the new connection. It can be changed later in the
               editor.

           See also nm-settings(5) for all NetworkManager settings and
           property names, and their descriptions; and nmcli-examples(7) for
           sample editor sessions.

       clone [--temporary] [id | uuid | path] ID new_name
           Clone a connection. The connection to be cloned is identified by
           its name, UUID or D-Bus path. If ID is ambiguous, a keyword id,
           uuid or path can be used. See connection show above for the
           description of the ID-specifying keywords.  new_name is the name of
           the new cloned connection. The new connection will be the exact
           copy except the connection.id (new_name) and connection.uuid
           (generated) properties.

           The new connection profile will be saved as persistent unless
           --temporary option is specified, in which case the new profile
           won't exist after NetworkManager restart.

       delete [id | uuid | path] ID...
           Delete a configured connection. The connection to be deleted is
           identified by its name, UUID or D-Bus path. If ID is ambiguous, a
           keyword id, uuid or path can be used. See connection show above for
           the description of the ID-specifying keywords.

           If --wait option is not specified, the default timeout will be 10
           seconds.

       monitor [id | uuid | path] ID...
           Monitor connection profile activity. This command prints a line
           whenever the specified connection changes. The connection to be
           monitored is identified by its name, UUID or D-Bus path. If ID is
           ambiguous, a keyword id, uuid or path can be used. See connection
           show above for the description of the ID-specifying keywords.

           Monitors all connection profiles in case none is specified. The
           command terminates when all monitored connections disappear. If you
           want to monitor connection creation consider using the global
           monitor with nmcli monitor command.

       reload
           Reload all connection files from disk. NetworkManager does not
           monitor changes to connection files by default. So you need to use
           this command in order to tell NetworkManager to re-read the
           connection profiles from disk when a change was made to them.
           However, the auto-loading feature can be enabled and then
           NetworkManager will reload connection files any time they change
           (monitor-connection-files=true in NetworkManager.conf(5)).

       load filename...
           Load/reload one or more connection files from disk. Use this after
           manually editing a connection file to ensure that NetworkManager is
           aware of its latest state.

       import [--temporary] type type file file
           Import an external/foreign configuration as a NetworkManager
           connection profile. The type of the input file is specified by type
           option.

           Only VPN configurations are supported at the moment. The
           configuration is imported by NetworkManager VPN plugins.  type
           values are the same as for vpn-type option in nmcli connection add.
           VPN configurations are imported by VPN plugins. Therefore the
           proper VPN plugin has to be installed so that nmcli could import
           the data.

           The imported connection profile will be saved as persistent unless
           --temporary option is specified, in which case the new profile
           won't exist after NetworkManager restart.

       export [id | uuid | path] ID [file]
           Export a connection.

           Only VPN connections are supported at the moment. A proper VPN
           plugin has to be installed so that nmcli could export a connection.
           If no file is provided, the VPN configuration data will be printed
           to standard output.

DEVICE MANAGEMENT COMMANDS
       nmcli device {status | show | set | connect | reapply | modify |
                    disconnect | delete | monitor | wifi | lldp}
                    [ARGUMENTS...]

       Show and manage network interfaces.

       status
           Print status of devices.

           This is the default action if no command is specified to nmcli
           device.

       show [ifname]
           Show detailed information about devices. Without an argument, all
           devices are examined. To get information for a specific device, the
           interface name has to be provided.

       set [ifname] ifname [autoconnect {yes | no}] [managed {yes | no}]
           Set device properties.

       connect ifname
           Connect the device. NetworkManager will try to find a suitable
           connection that will be activated. It will also consider
           connections that are not set to auto connect.

           If --wait option is not specified, the default timeout will be 90
           seconds.

       reapply ifname
           Attempt to update device with changes to the currently active
           connection made since it was last applied.

       modify ifname {option value | [+|-]setting.property value}...
           Modify the settings currently active on the device.

           This command lets you do temporary changes to a configuration
           active on a particular device. The changes are not preserved in the
           connection profile.

           See nm-settings(5) for the list of available properties. Please
           note that some properties can't be changed on an already connected
           device.

           You can also use the aliases described in PROPERTY ALIASES section.
           The syntax is the same as of the nmcli connection modify command.

       disconnect ifname...
           Disconnect a device and prevent the device from automatically
           activating further connections without user/manual intervention.
           Note that disconnecting software devices may mean that the devices
           will disappear.

           If --wait option is not specified, the default timeout will be 10
           seconds.

       delete ifname...
           Delete a device. The command removes the interface from the system.
           Note that this only works for software devices like bonds, bridges,
           teams, etc. Hardware devices (like Ethernet) cannot be deleted by
           the command.

           If --wait option is not specified, the default timeout will be 10
           seconds.

       monitor [ifname...]
           Monitor device activity. This command prints a line whenever the
           specified devices change state.

           Monitors all devices in case no interface is specified. The monitor
           terminates when all specified devices disappear. If you want to
           monitor device addition consider using the global monitor with
           nmcli monitor command.

       wifi [list [ifname ifname] [bssid BSSID]]
           List available Wi-Fi access points. The ifname and bssid options
           can be used to list APs for a particular interface or with a
           specific BSSID, respectively.

       wifi connect (B)SSID [password password] [wep-key-type {key | phrase}]
       [ifname ifname] [bssid BSSID] [name name] [private {yes | no}]
       [hidden {yes | no}]
           Connect to a Wi-Fi network specified by SSID or BSSID. The command
           creates a new connection and then activates it on a device. This is
           a command-line counterpart of clicking an SSID in a GUI client. The
           command always creates a new connection and thus it is mainly
           useful for connecting to new Wi-Fi networks. If a connection for
           the network already exists, it is better to bring up (activate) the
           existing connection as follows: nmcli con up id name. Note that
           only open, WEP and WPA-PSK networks are supported at the moment. It
           is also supposed that IP configuration is obtained via DHCP.

           If --wait option is not specified, the default timeout will be 90
           seconds.

           Available options are:

           password
               password for secured networks (WEP or WPA).

           wep-key-type
               type of WEP secret, either key for ASCII/HEX key or phrase for
               passphrase.

           ifname
               interface that will be used for activation.

           bssid
               if specified, the created connection will be restricted just
               for the BSSID.

           name
               if specified, the connection will use the name (else NM creates
               a name itself).

           private
               if set to yes, the connection will only be visible to the user
               who created it. Otherwise the connection is system-wide, which
               is the default.

           hidden
               set to yes when connecting for the first time to an AP not
               broadcasting its SSID. Otherwise the SSID would not be found
               and the connection attempt would fail.

       wifi hotspot [ifname ifname] [con-name name] [ssid SSID]
       [band {a | bg}] [channel channel] [password password]
           Create a Wi-Fi hotspot. The command creates a hotspot connection
           profile according to Wi-Fi device capabilities and activates it on
           the device. The hotspot is secured with WPA if device/driver
           supports that, otherwise WEP is used. Use connection down or device
           disconnect to stop the hotspot.

           Parameters of the hotspot can be influenced by the optional
           parameters:

           ifname
               what Wi-Fi device is used.

           con-name
               name of the created hotspot connection profile.

           ssid
               SSID of the hotspot.

           band
               Wi-Fi band to use.

           channel
               Wi-Fi channel to use.

           password
               password to use for the created hotspot. If not provided, nmcli
               will generate a password. The password is either WPA pre-shared
               key or WEP key.

               Note that --show-secrets global option can be used to print the
               hotspot password. It is useful especially when the password was
               generated.

       wifi rescan [ifname ifname] [ssid SSID...]
           Request that NetworkManager immediately re-scan for available
           access points. NetworkManager scans Wi-Fi networks periodically,
           but in some cases it can be useful to start scanning manually (e.g.
           after resuming the computer). By using ssid, it is possible to scan
           for a specific SSID, which is useful for APs with hidden SSIDs. You
           can provide multiple ssid parameters in order to scan more SSIDs.

           This command does not show the APs, use nmcli device wifi list for
           that.

       lldp [list [ifname ifname]]
           Display information about neighboring devices learned through the
           Link Layer Discovery Protocol (LLDP). The ifname option can be used
           to list neighbors only for a given interface. The protocol must be
           enabled in the connection settings.

SECRET AGENT
       nmcli agent {secret | polkit | all}

       Run nmcli as a NetworkManager secret agent, or polkit agent.

       secret
           Register nmcli as a NetworkManager secret agent and listen for
           secret requests. You do usually not need this command, because
           nmcli can handle secrets when connecting to networks. However, you
           may find the command useful when you use another tool for
           activating connections and you do not have a secret agent available
           (like nm-applet).

       polkit
           Register nmcli as a polkit agent for the user session and listen
           for authorization requests. You do not usually need this command,
           because nmcli can handle polkit actions related to NetworkManager
           operations (when run with --ask). However, you may find the command
           useful when you want to run a simple text based polkit agent and
           you do not have an agent of a desktop environment. Note that
           running this command makes nmcli handle all polkit requests, not
           only NetworkManager related ones, because only one polkit agent can
           run for the session.

       all
           Runs nmcli as both NetworkManager secret and a polkit agent.

PROPERTY ALIASES
       Apart from the property-value pairs, connection add, connection modify
       and device modify also accept short forms of some properties. They
       exist for convenience. Some aliases can affect multiple connection
       properties at once.

       The overview of the aliases is below. An actual connection type is used
       to disambiguate these options from the options of the same name that
       are valid for multiple connection types (such as mtu).

       Table 1. Options for all connections
       ........................................................................
       .Alias       . Property                  . Note                        .
       ........................................................................
       .type        . connection.type           . This alias also             .
       .            .                           . accepts values of           .
       .            .                           . bond-slave,                 .
       .            .                           . team-slave and              .
       .            .                           . bridge-slave. They          .
       .            .                           . create ethernet             .
       .            .                           . connection                  .
       .            .                           . profiles. Their use         .
       .            .                           . is discouraged in           .
       .            .                           . favor of using a            .
       .            .                           . specific type with          .
       .            .                           . master option.              .
       ........................................................................
       .con-name    . connection.id             . When not provided a         .
       .            .                           . default name is             .
       .            .                           . generated:                  .
       .            .                           . [-][-]). .
       ........................................................................
       .autoconnect . connection.autoconnect    .                             .
       ........................................................................
       .ifname      . connection.interface-name . A value of * will be        .
       .            .                           . interpreted as no value,    .
       .            .                           . making the connection       .
       .            .                           . profile                     .
       .            .                           . interface-independent.      .
       .            .                           . Note: use quotes around *   .
       .            .                           . to suppress shell           .
       .            .                           . expansion.  For bond, team  .
       .            .                           . and bridge connections a    .
       .            .                           . default name will be        .
       .            .                           . generated if not set.       .
       ........................................................................
       .master      . connection.master         . Value specified here will   .
       .            .                           . be canonicalized.  It can   .
       .            .                           . be prefixed with ifname/,   .
       .            .                           . uuid/ or id/ to             .
       .            .                           . disambiguate it.            .
       ........................................................................
       .slave-type  . connection.slave-type     .                             .
       ........................................................................

       Table 2. PPPoE options
       ............................
       .Alias    . Property       .
       ............................
       .username . pppoe.username .
       ............................
       .password . pppoe.password .
       ............................
       .service  . pppoe.service  .
       ............................
       .parent   . pppoe.parent   .
       ............................

       Table 3. Wired Ethernet options
       ........................................
       .Alias      . Property                 .
       ........................................
       .mtu        . wired.mtu                .
       ........................................
       .mac        . wired.mac-address        .
       ........................................
       .cloned-mac . wired.cloned-mac-address .
       ........................................

       Table 4. Infiniband options
       .............................................
       .Alias          . Property                  .
       .............................................
       .mtu            . infiniband.mtu            .
       .............................................
       .mac            . infiniband.mac-address    .
       .............................................
       .transport-mode . infiniband.transport-mode .
       .............................................
       .parent         . infiniband.parent         .
       .............................................
       .p-key          . infiniband.p-key          .
       .............................................

       Table 5. Wi-Fi options
       ...........................................
       .Alias      . Property                    .
       ...........................................
       .ssid       . wireless.ssid               .
       ...........................................
       .mode       . wireless.mode               .
       ...........................................
       .mtu        . wireless.mtu                .
       ...........................................
       .mac        . wireless.mac-address        .
       ...........................................
       .cloned-mac . wireless.cloned-mac-address .
       ...........................................

       Table 6. WiMax options
       .............................
       .Alias . Property           .
       .............................
       .nsp   . wimax.network-name .
       .............................
       .mac   . wimax.mac-address  .
       .............................

       Table 7. GSM options
       ..........................
       .Alias    . Property     .
       ..........................
       .apn      . gsm.apn      .
       ..........................
       .user     . gsm.username .
       ..........................
       .password . gsm.password .
       ..........................

       Table 8. CDMA options
       ...........................
       .Alias    . Property      .
       ...........................
       .user     . cdma.username .
       ...........................
       .password . cdma.password .
       ...........................

       Table 9. Bluetooth options
       ...................................................
       .Alias   . Property         . Note                .
       ...................................................
       .addr    . bluetooth.bdaddr .                     .
       ...................................................
       .bt-type . bluetooth.type   . Apart from the      .
       .        .                  . usual panu, nap and .
       .        .                  . dun options, the    .
       .        .                  . values of dun-gsm   .
       .        .                  . and dun-cdma can be .
       .        .                  . used for            .
       .        .                  . compatibility with  .
       .        .                  . older versions.     .
       .        .                  . They are equivalent .
       .        .                  . to using dun and    .
       .        .                  . setting appropriate .
       .        .                  . gsm.* or cdma.*     .
       .        .                  . properties.         .
       ...................................................

       Table 10. VLAN options
       ......................................
       .Alias   . Property                  .
       ......................................
       .dev     . vlan.parent               .
       ......................................
       .id      . vlan.id                   .
       ......................................
       .flags   . vlan.flags                .
       ......................................
       .ingress . vlan.ingress-priority-map .
       ......................................
       .egress  . vlan.egress-priority-map  .
       ......................................

       Table 11. Bonding options
       ...................................................
       .Alias         . Property     . Note              .
       ...................................................
       .mode          .              . Setting each of   .
       ................              . these adds the    .
       .primary       .              . option to         .
       ................              . bond.options      .
       .miimon        .              . property.  It's   .
       ................              . equivalent to the .
       .downdelay     .              . +bond.options     .
       ................ bond.options . 'option=value'    .
       .updelay       .              . syntax.           .
       ................              .                   .
       .arp-interval  .              .                   .
       ................              .                   .
       .arp-ip-target .              .                   .
       ................              .                   .
       .lacp-rate     .              .                   .
       ...................................................

       Table 12. Team options
       ............................................
       .Alias  . Property    . Note               .
       ............................................
       .config . team.config . Either a filename  .
       .       .             . or a team          .
       .       .             . configuration in   .
       .       .             . JSON format. To    .
       .       .             . enforce one or the .
       .       .             . other, the value   .
       .       .             . can be prefixed    .
       .       .             . with "file://" or  .
       .       .             . "json://".         .
       ............................................

       Table 13. Team port options
       .................................................
       .Alias  . Property         . Note               .
       .................................................
       .config . team-port.config . Either a filename  .
       .       .                  . or a team          .
       .       .                  . configuration in   .
       .       .                  . JSON format. To    .
       .       .                  . enforce one or the .
       .       .                  . other, the value   .
       .       .                  . can be prefixed    .
       .       .                  . with "file://" or  .
       .       .                  . "json://".         .
       .................................................

       Table 14. Bridge options
       .................................................
       .Alias              . Property                  .
       .................................................
       .stp                . bridge.stp                .
       .................................................
       .priority           . bridge.priority           .
       .................................................
       .forward-delay      . bridge.forward-delay      .
       .................................................
       .hello-time         . bridge.hello-time         .
       .................................................
       .max-age            . bridge.max-age            .
       .................................................
       .ageing-time        . bridge.ageing-time        .
       .................................................
       .group-forward-mask . bridge.group-forward-mask .
       .................................................
       .multicast-snooping . bridge.multicast-snooping .
       .................................................
       .mac                . bridge.mac-address        .
       .................................................
       .priority           . bridge-port.priority      .
       .................................................
       .path-cost          . bridge-port.path-cost     .
       .................................................
       .hairpin            . bridge-port.hairpin-mode  .
       .................................................

       Table 15. VPN options
       ..............................
       .Alias    . Property         .
       ..............................
       .vpn-type . vpn.service-type .
       ..............................
       .user     . vpn.user-name    .
       ..............................

       Table 16. OLPC Mesh options
       ................................................
       .Alias        . Property                       .
       ................................................
       .ssid         . olpc-mesh.ssid                 .
       ................................................
       .channel      . olpc-mesh.channel              .
       ................................................
       .dhcp-anycast . olpc-mesh.dhcp-anycast-address .
       ................................................

       Table 17. ADSL options
       .....................................
       .Alias         . Property           .
       .....................................
       .username      . adsl.username      .
       .....................................
       .protocol      . adsl.protocol      .
       .....................................
       .password      . adsl.password      .
       .....................................
       .encapsulation . adsl.encapsulation .
       .....................................

       Table 18. MACVLAN options
       .........................
       .Alias . Property       .
       .........................
       .dev   . macvlan.parent .
       .........................
       .mode  . macvlan.mode   .
       .........................
       .tap   . macvlan.tap    .
       .........................

       Table 19. MACsec options
       ...........................
       .Alias   . Property       .
       ...........................
       .dev     . macsec.parent  .
       ...........................
       .mode    . macsec.mode    .
       ...........................
       .encrypt . macsec.encrypt .
       ...........................
       .cak     . macsec.cak     .
       ...........................
       .ckn     . macsec.ckn     .
       ...........................
       .port    . macsec.port    .
       ...........................

       Table 20. VxLAN options
       ............................................
       .Alias            . Property               .
       ............................................
       .id               . vxlan.id               .
       ............................................
       .remote           . vxlan.remote           .
       ............................................
       .dev              . vxlan.parent           .
       ............................................
       .local            . vxlan.local            .
       ............................................
       .source-port-min  . vxlan.source-port-min  .
       ............................................
       .source-port-max  . vxlan.source-port-max  .
       ............................................
       .destination-port . vxlan.destination-port .
       ............................................

       Table 21. Tun options
       ................................
       .Alias       . Property        .
       ................................
       .mode        . tun.mode        .
       ................................
       .owner       . tun.owner       .
       ................................
       .group       . tun.group       .
       ................................
       .pi          . tun.pi          .
       ................................
       .vnet-hdr    . tun.vnet-hdr    .
       ................................
       .multi-queue . tun.multi-queue .
       ................................

       Table 22. IP tunneling options
       ............................
       .Alias  . Property         .
       ............................
       .mode   . ip-tunnel.mode   .
       ............................
       .local  . ip-tunnel.local  .
       ............................
       .remote . ip-tunnel.remote .
       ............................
       .dev    . ip-tunnel.parent .
       ............................

       Table 23. IPv4 options
       ...............................................
       .Alias . Property       . Note                .
       ...............................................
       .ip4   . ipv4.addresses . The alias is        .
       .      . ipv4.method    . equivalent to the   .
       .      .                . +ipv4.addresses     .
       .      .                . syntax and also     .
       .      .                . sets ipv4.method to .
       .      .                . manual. It can be   .
       .      .                . specified multiple  .
       .      .                . times.              .
       ...............................................
       .gw4   . ipv4.gateway   .                     .
       ...............................................

       Table 24. IPv6 options
       ...............................................
       .Alias . Property       . Note                .
       ...............................................
       .ip6   . ipv6.addresses . The alias is        .
       .      . ipv6.method    . equivalent to the   .
       .      .                . +ipv6.addresses     .
       .      .                . syntax and also     .
       .      .                . sets ipv6.method to .
       .      .                . manual. It can be   .
       .      .                . specified multiple  .
       .      .                . times.              .
       ...............................................
       .gw6   . ipv6.gateway   .                     .
       ...............................................

       Table 25. Proxy options
       ..........................................................
       .Alias        . Property           . Note                .
       ..........................................................
       .method       . proxy.method       .                     .
       ..........................................................
       .browser-only . proxy.browser-only .                     .
       ..........................................................
       .pac-url      . proxy.pac-url      .                     .
       ..........................................................
       .pac-script   . proxy.pac-script   . Read the JavaScript .
       .             .                    . PAC (proxy          .
       .             .                    . auto-config) script .
       .             .                    . from file or pass   .
       .             .                    . it directly on the  .
       .             .                    . command line.       .
       .             .                    . Prefix the value    .
       .             .                    . with "file://" or   .
       .             .                    . "js://" to force    .
       .             .                    . one or the other.   .
       ..........................................................

ENVIRONMENT VARIABLES
       nmcli's behavior is affected by the following environment variables.

       LC_ALL
           If set to a non-empty string value, it overrides the values of all
           the other internationalization variables.

       LC_MESSAGES
           Determines the locale to be used for internationalized messages.

       LANG
           Provides a default value for the internationalization variables
           that are unset or null.

INTERNATIONALIZATION NOTES
       Be aware that nmcli is localized and that is why the output depends on
       your environment. This is important to realize especially when you
       parse the output.

       Call nmcli as LC_ALL=C nmcli to be sure the locale is set to C while
       executing in a script.

       LC_ALL, LC_MESSAGES, LANG variables specify the LC_MESSAGES locale
       category (in that order), which determines the language that nmcli uses
       for messages. The C locale is used if none of these variables are set,
       and this locale uses English messages.

EXIT STATUS
       nmcli exits with status 0 if it succeeds, a value greater than 0 is
       returned if an error occurs.

       0
           Success – indicates the operation succeeded.

       1
           Unknown or unspecified error.

       2
           Invalid user input, wrong nmcli invocation.

       3
           Timeout expired (see --wait option).

       4
           Connection activation failed.

       5
           Connection deactivation failed.

       6
           Disconnecting device failed.

       7
           Connection deletion failed.

       8
           NetworkManager is not running.

       10
           Connection, device, or access point does not exist.

       65
           When used with --complete-args option, a file name is expected to
           follow.

EXAMPLES
       This section presents various examples of nmcli usage. If you want even
       more, please refer to nmcli-examples(7) manual page.

       nmcli -t -f RUNNING general
           tells you whether NetworkManager is running or not.

       nmcli -t -f STATE general
           shows the overall status of NetworkManager.

       nmcli radio wifi off
           switches Wi-Fi off.

       nmcli connection show
           lists all connections NetworkManager has.

       nmcli -p -m multiline -f all con show
           shows all configured connections in multi-line mode.

       nmcli connection show --active
           lists all currently active connections.

       nmcli -f name,autoconnect c s
           shows all connection profile names and their auto-connect property.

       nmcli -p connection show "My default em1"
           shows details for "My default em1" connection profile.

       nmcli --show-secrets connection show "My Home WiFi"
           shows details for "My Home WiFi" connection profile with all
           passwords. Without --show-secrets option, secrets would not be
           displayed.

       nmcli -f active connection show "My default em1"
           shows details for "My default em1" active connection, like IP, DHCP
           information, etc.

       nmcli -f profile con s "My wired connection"
           shows static configuration details of the connection profile with
           "My wired connection" name.

       nmcli -p con up "My wired connection" ifname eth0
           activates the connection profile with name "My wired connection" on
           interface eth0. The -p option makes nmcli show progress of the
           activation.

       nmcli con up 6b028a27-6dc9-4411-9886-e9ad1dd43761 ap 00:3A:98:7C:42:D3
           connects the Wi-Fi connection with UUID
           6b028a27-6dc9-4411-9886-e9ad1dd43761 to the AP with BSSID
           00:3A:98:7C:42:D3.

       nmcli device status
           shows the status for all devices.

       nmcli dev disconnect em2
           disconnects a connection on interface em2 and marks the device as
           unavailable for auto-connecting. As a result, no connection will
           automatically be activated on the device until the device's
           'autoconnect' is set to TRUE or the user manually activates a
           connection.

       nmcli -f GENERAL,WIFI-PROPERTIES dev show wlan0
           shows details for wlan0 interface; only GENERAL and WIFI-PROPERTIES
           sections will be shown.

       nmcli -f CONNECTIONS device show wlp3s0
           shows all available connection profiles for your Wi-Fi interface
           wlp3s0.

       nmcli dev wifi
           lists available Wi-Fi access points known to NetworkManager.

       nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"
           creates a new connection named "My cafe" and then connects it to
           "Cafe Hotspot 1" SSID using password "caffeine". This is mainly
           useful when connecting to "Cafe Hotspot 1" for the first time. Next
           time, it is better to use nmcli con up id "My cafe" so that the
           existing connection profile can be used and no additional is
           created.

       nmcli -s dev wifi hotspot con-name QuickHotspot
           creates a hotspot profile and connects it. Prints the hotspot
           password the user should use to connect to the hotspot from other
           devices.

       nmcli dev modify em1 ipv4.method shared
           starts IPv4 connection sharing using em1 device. The sharing will
           be active until the device is disconnected.

       nmcli dev modify em1 ipv6.address 2001:db8::a:bad:c0de
           temporarily adds an IP address to a device. The address will be
           removed when the same connection is activated again.

       nmcli connection add type ethernet autoconnect no ifname eth0
           non-interactively adds an Ethernet connection tied to eth0
           interface with automatic IP configuration (DHCP), and disables the
           connection's autoconnect flag.

       nmcli c a ifname Maxipes-fik type vlan dev eth0 id 55
           non-interactively adds a VLAN connection with ID 55. The connection
           will use eth0 and the VLAN interface will be named Maxipes-fik.

       nmcli c a ifname eth0 type ethernet ipv4.method disabled ipv6.method
       link-local
           non-interactively adds a connection that will use eth0 Ethernet
           interface and only have an IPv6 link-local address configured.

       nmcli connection edit ethernet-em1-2
           edits existing "ethernet-em1-2" connection in the interactive
           editor.

       nmcli connection edit type ethernet con-name "yet another Ethernet
       connection"
           adds a new Ethernet connection in the interactive editor.

       nmcli con mod ethernet-2 connection.autoconnect no
           modifies 'autoconnect' property in the 'connection' setting of
           'ethernet-2' connection.

       nmcli con mod "Home Wi-Fi" wifi.mtu 1350
           modifies 'mtu' property in the 'wifi' setting of 'Home Wi-Fi'
           connection.

       nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.23/24
       192.168.1.1, 10.10.1.5/8, 10.0.0.11"
           sets manual addressing and the addresses in em1-1 profile.

       nmcli con modify ABC +ipv4.dns 8.8.8.8
           appends a Google public DNS server to DNS servers in ABC profile.

       nmcli con modify ABC -ipv4.addresses "192.168.100.25/24 192.168.1.1"
           removes the specified IP address from (static) profile ABC.

       nmcli con import type openvpn file ~/Downloads/frootvpn.ovpn
           imports an OpenVPN configuration to NetworkManager.

       nmcli con export corp-vpnc /home/joe/corpvpn.conf
           exports NetworkManager VPN profile corp-vpnc as standard Cisco
           (vpnc) configuration.

NOTES
       nmcli accepts abbreviations, as long as they are a unique prefix in the
       set of possible options. As new options get added, these abbreviations
       are not guaranteed to stay unique. For scripting and long term
       compatibility it is therefore strongly advised to spell out the full
       option names.

BUGS
       There are probably some bugs. If you find a bug, please report it to
       https://bugzilla.gnome.org/ — product NetworkManager.

SEE ALSO
       nmcli-examples(7), nm-online(1), NetworkManager(8),
       NetworkManager.conf(5), nm-settings(5), nm-applet(1), nm-connection-
       editor(1).

DOCUMENTATION COPYRIGHT AND LICENSE
       Copyright: 2012 - 2016 The NetworkManager Authors
       License: GFDL-NIV-1.1+

NetworkManager 1.10.6                                                 NMCLI(1)

Unix man page: networkmanager (318 lines; 1707 words; 14167 bytes).

NETWORKMANAGER(8)         Network management daemons         NETWORKMANAGER(8)

NAME
       NetworkManager - network management daemon

SYNOPSIS
       NetworkManager [OPTIONS...]

DESCRIPTION
       The NetworkManager daemon attempts to make networking configuration and
       operation as painless and automatic as possible by managing the primary
       network connection and other network interfaces, like Ethernet, WiFi,
       and Mobile Broadband devices. NetworkManager will connect any network
       device when a connection for that device becomes available, unless that
       behavior is disabled. Information about networking is exported via a
       D-Bus interface to any interested application, providing a rich API
       with which to inspect and control network settings and operation.

DISPATCHER SCRIPTS
       NetworkManager will execute scripts in the
       /etc/NetworkManager/dispatcher.d directory or subdirectories in
       alphabetical order in response to network events. Each script should be
       a regular executable file owned by root. Furthermore, it must not be
       writable by group or other, and not setuid.

       Each script receives two arguments, the first being the interface name
       of the device an operation just happened on, and second the action. For
       device actions, the interface is the name of the kernel interface
       suitable for IP configuration. Thus it is either VPN_IP_IFACE,
       DEVICE_IP_IFACE, or DEVICE_IFACE, as applicable. For the hostname and
       connectivity-change actions it is always "none".

       The actions are:

       pre-up
           The interface is connected to the network but is not yet fully
           activated. Scripts acting on this event must be placed or symlinked
           into the /etc/NetworkManager/dispatcher.d/pre-up.d directory, and
           NetworkManager will wait for script execution to complete before
           indicating to applications that the interface is fully activated.

       up
           The interface has been activated.

       pre-down
           The interface will be deactivated but has not yet been disconnected
           from the network. Scripts acting on this event must be placed or
           symlinked into the /etc/NetworkManager/dispatcher.d/pre-down.d
           directory, and NetworkManager will wait for script execution to
           complete before disconnecting the interface from its network. Note
           that this event is not emitted for forced disconnections, like when
           carrier is lost or a wireless signal fades. It is only emitted when
           there is an opportunity to cleanly handle a network disconnection
           event.

       down
           The interface has been deactivated.

       vpn-pre-up
           The VPN is connected to the network but is not yet fully activated.
           Scripts acting on this event must be placed or symlinked into the
           /etc/NetworkManager/dispatcher.d/pre-up.d directory, and
           NetworkManager will wait for script execution to complete before
           indicating to applications that the VPN is fully activated.

       vpn-up
           A VPN connection has been activated.

       vpn-pre-down
           The VPN will be deactivated but has not yet been disconnected from
           the network. Scripts acting on this event must be placed or
           symlinked into the /etc/NetworkManager/dispatcher.d/pre-down.d
           directory, and NetworkManager will wait for script execution to
           complete before disconnecting the VPN from its network. Note that
           this event is not emitted for forced disconnections, like when the
           VPN terminates unexpectedly or general connectivity is lost. It is
           only emitted when there is an opportunity to cleanly handle a VPN
           disconnection event.

       vpn-down
           A VPN connection has been deactivated.

       hostname
           The system hostname has been updated. Use gethostname(2) to
           retrieve it. The interface name (first argument) is empty and no
           environment variable is set for this action.

       dhcp4-change
           The DHCPv4 lease has changed (renewed, rebound, etc).

       dhcp6-change
           The DHCPv6 lease has changed (renewed, rebound, etc).

       connectivity-change
           The network connectivity state has changed (no connectivity, went
           online, etc).

       The environment contains more information about the interface and the
       connection. The following variables are available for the use in the
       dispatcher scripts:

       CONNECTION_UUID
           The UUID of the connection profile.

       CONNECTION_ID
           The name (ID) of the connection profile.

       CONNECTION_DBUS_PATH
           The NetworkManager D-Bus path of the connection.

       CONNECTION_FILENAME
           The backing file name of the connection profile (if any).

       CONNECTION_EXTERNAL
           If "1", this indicates that the connection describes a network
           configuration created outside of NetworkManager.

       DEVICE_IFACE
           The interface name of the control interface of the device.
           Depending on the device type, this differs from DEVICE_IP_IFACE.
           For example for ADSL devices, this could be 'atm0' or for WWAN
           devices it might be 'ttyUSB0'.

       DEVICE_IP_IFACE
           The IP interface name of the device. This is the network interface
           on which IP addresses and routes will be configured.

       IP4_ADDRESS_N
           The IPv4 address in the format "address/prefix gateway", where N is
           a number from 0 to (# IPv4 addresses - 1). gateway item in this
           variable is deprecated, use IP4_GATEWAY instead.

       IP4_NUM_ADDRESSES
           The variable contains the number of IPv4 addresses the script may
           expect.

       IP4_GATEWAY
           The gateway IPv4 address in traditional numbers-and-dots notation.

       IP4_ROUTE_N
           The IPv4 route in the format "address/prefix next-hop metric",
           where N is a number from 0 to (# IPv4 routes - 1).

       IP4_NUM_ROUTES
           The variable contains the number of IPv4 routes the script may
           expect.

       IP4_NAMESERVERS
           The variable contains a space-separated list of the DNS servers.

       IP4_DOMAINS
           The variable contains a space-separated list of the search domains.

       DHCP4_
           If the connection used DHCP for address configuration, the received
           DHCP configuration is passed in the environment using standard DHCP
           option names, prefixed with "DHCP4_", like
           "DHCP4_HOST_NAME=foobar".

       IP6_ and DHCP6_
           The same variables as for IPv4 are available for IPv6, but the
           prefixes are IP6_ and DHCP6_ instead.

       CONNECTIVITY_STATE
           The network connectivity state, which can take the values defined
           by the NMConnectivityState type, from the
           org.freedesktop.NetworkManager D-Bus API: unknown, none, portal,
           limited or full. Note: this variable will only be set for
           connectivity-change actions.

       In case of VPN, VPN_IP_IFACE is set, and IP4_*, IP6_* variables with
       VPN prefix are exported too, like VPN_IP4_ADDRESS_0,
       VPN_IP4_NUM_ADDRESSES.

       Dispatcher scripts are run one at a time, but asynchronously from the
       main NetworkManager process, and will be killed if they run for too
       long. If your script might take arbitrarily long to complete, you
       should spawn a child process and have the parent return immediately.
       Scripts that are symbolic links pointing inside the
       /etc/NetworkManager/dispatcher.d/no-wait.d/ directory are run
       immediately, without waiting for the termination of previous scripts,
       and in parallel. Also beware that once a script is queued, it will
       always be run, even if a later event renders it obsolete. (Eg, if an
       interface goes up, and then back down again quickly, it is possible
       that one or more "up" scripts will be run after the interface has gone
       down.)

OPTIONS
       The following options are understood:

       --version | -V
           Print the NetworkManager software version and exit.

       --help | -h
           Print NetworkManager's available options and exit.

       --no-daemon | -n
           Do not daemonize.

       --debug | -d
           Do not daemonize, and direct log output to the controlling terminal
           in addition to syslog.

       --pid-file | -p
           Specify location of a PID file. The PID file is used for storing
           PID of the running process and prevents running multiple instances.

       --state-file
           Specify file for storing state of the NetworkManager persistently.
           If not specified, the default value of
           /var/lib/NetworkManager/NetworkManager.state is used.

       --config
           Specify configuration file to set up various settings for
           NetworkManager. If not specified, the default value of
           /etc/NetworkManager/NetworkManager.conf is used with a fallback to
           the older 'nm-system-settings.conf' if located in the same
           directory. See NetworkManager.conf(5) for more information on
           configuration file.

       --plugins
           List plugins used to manage system-wide connection settings. This
           list has preference over plugins specified in the configuration
           file. Currently supported plugins are: keyfile, ifcfg-rh,
           ifcfg-suse, ifupdown.

       --log-level
           Sets how much information NetworkManager sends to the log
           destination (usually syslog's "daemon" facility). By default, only
           informational, warning, and error messages are logged. See the
           section on logging in NetworkManager.conf(5) for more information.

       --log-domains
           A comma-separated list specifying which operations are logged to
           the log destination (usually syslog). By default, most domains are
           logging-enabled. See the section on logging in
           NetworkManager.conf(5) for more information.

       --print-config
           Print the NetworkManager configuration to stdout and exit.

UDEV PROPERTIES
       udev(7) device manager is used for the network device discovery. The
       following property influences how NetworkManager manages the devices:

       NM_UNMANAGED
           No default connection will be created and automatic activation will
           not be attempted when this property of a device is set to a true
           value ("1" or "true"). You will still be able to attach a
           connection to the device manually or observe externally added
           configuration such as addresses or routes.

           Create an udev rule that sets this property to prevent
           NetworkManager from interfering with virtual Ethernet device
           interfaces that are managed by virtualization tools.

SIGNALS
       NetworkManager process handles the following signals:

       SIGHUP
           The signal causes a reload of NetworkManager's configuration. Note
           that not all configuration parameters can be changed at runtime and
           therefore some changes may be applied only after the next restart
           of the daemon. A SIGHUP also involves further reloading actions,
           like doing a DNS update and restarting the DNS plugin. The latter
           can be useful for example when using the dnsmasq plugin and
           changing its configuration in /etc/NetworkManager/dnsmasq.d.
           However, it also means this will shortly interrupt name resolution.
           In the future, there may be further actions added. A SIGHUP means
           to update NetworkManager configuration and reload everything that
           is supported. Note that this does not reload connections from disk.
           For that there is a D-Bus API and nmcli's reload action

       SIGUSR1
           The signal forces a rewrite of DNS configuration. Contrary to
           SIGHUP, this does not restart the DNS plugin and will not interrupt
           name resolution. In the future, further actions may be added. A
           SIGUSR1 means to write out data like resolv.conf, or refresh a
           cache. It is a subset of what is done for SIGHUP without reloading
           configuration from disk.

       SIGUSR2
           The signal has no effect at the moment but is reserved for future
           use.

       An alternative to a signal to reload configuration is the Reload D-Bus
       call. It allows for more fine-grained selection of what to reload, it
       only returns after the reload is complete, and it is guarded by
       PolicyKit.

DEBUGGING
       The following environment variables are supported to help debugging.
       When used in conjunction with the --no-daemon option (thus echoing PPP
       and DHCP helper output to stdout) these can quickly help pinpoint the
       source of connection issues. Also see the --log-level and --log-domains
       to enable debug logging inside NetworkManager itself.

       NM_PPP_DEBUG: When set to anything, causes NetworkManager to turn on
       PPP debugging in pppd, which logs all PPP and PPTP frames and
       client/server exchanges.

BUGS
       Please report any bugs you find in NetworkManager at the NetworkManager
       bug tracker[1].

SEE ALSO
       NetworkManager home page[2], NetworkManager.conf(5), nmcli(1), nmcli-
       examples(7), nm-online(1), nm-settings(5), nm-applet(1), nm-connection-
       editor(1), udev(7)

NOTES
        1. NetworkManager bug tracker
           https://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager

        2. NetworkManager home page
           https://wiki.gnome.org/Projects/NetworkManager

DOCUMENTATION COPYRIGHT AND LICENSE
       Copyright: 2012 - 2016 The NetworkManager Authors
       License: GFDL-NIV-1.1+

NetworkManager 1.10.6                                        NETWORKMANAGER(8)

Never Do This: How Not To Give A Single Board GNU/Linux PC A Static-y IP Address

This method isn't limited to single board computers (such as the Olinuxino Lime2 from Olimex, which inspired this kludgy effort); it would also work on a laptop whose wifi got a random IP address on connect, for example. Or any machine running Debian GNU/Linux or a Debian derivative. Or any networked Unix(like) system with rc.something, networkmanager and the ip command.

In the "old days", one might edit the /etc/network/interfaces file and mention the desire for a static IP address, and it was almost magically so. But with the advent of networkmanager and its pretty GUI interfaces (and the CLI tool nmcli), that avenue is no more. Debian and its derivatives use networkmanager by default, and the single board ARM computers generally come with Debian (or a derivative such as Armbian). Thus, barring networking structural changes, you will need to either work with networkmanager, or around it. The instructions on this page do the latter. Never do thisTM.

This method is based on the powers and outputs of the ip command, which you probably already have installed. If not, then...
sudo apt-get install iproute2

First, make a script under /home/yourusername/bin called add-our-ip-address.sh:

#!/bin/bash
#
# Never Do This IP address script
# (c) 2018 Freworld.info
# This is free software, licensed under
# the WTDHPL version 1 or any later version:
# http://wtdhpl.info/
#
# Adds a desired static-y IP address in addition to any already present.
# Advisory: script must be run with privileges of the root user.
#
if [[ $(/bin/ip addr|/bin/grep 192.168.50.89) ]]; then
	echo Desired address 192.168.50.89 is already present.
else
	echo Adding desired address 192.168.50.89.
	echo If you are not root this will probably not work.
	ip addr add 192.168.50.89 dev eth0
fi

The address 192.168.50.89, the username yourusername, and the interface name eth0 may need to change depending on where and why you are (definitely not) doing this. This script checks whether the desired address is already in use, and if not, tries to add it to the desired network interface.

Make the script executable like so: chmod +x /home/yourusername/bin/add-our-ip-address.sh

Tip: If you don't know the name of your interface, you can ask what interfaces your system has with the following command: ip link.

Example output of ip link:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: tunl0:  mtu 1480 qdisc noop state DOWN mode DEFAULT group default 
    link/ipip 0.0.0.0 brd 0.0.0.0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether aa:ff:bb:ee:cc:dd brd ff:ff:ff:ff:ff:ff
4: usb0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff

Here, your interfaces are lo, tunl0, eth0, and usb0. lo is the local loopback (not a real interface), tunl0 is a vpn interface (not a real interface), and usb0 is a special interface for when the Olinuxino is connected as a USB device. That leaves the name of the real ethernet device: "eth0".  If you don't have an eth0, but you do have something that looks like enp25s0, then that one's probably it.

Next, make a similar script under /home/yourusername/bin called add-our-ip-address-run-at-boot-time.sh:

#!/bin/bash
#
# Never Do This IP address script Number 2
# (c) 2018 Freworld.info
# This is free software, licensed under
# the WTDHPL version 1 or any later version:
# http://wtdhpl.info/
#
# Advisory: script must be run with privileges of the root user.
#
/bin/bash /home/yourusername/bin/add-our-ip-address.sh
sleep 15
/bin/bash /home/yourusername/bin/add-our-ip-address.sh
sleep 15
/bin/bash /home/yourusername/bin/add-our-ip-address.sh

This script simply tries a few times to assert the preferred IP address.
Again, chmod +x /home/yourusername/bin/add-our-ip-address-run-at-boot-time.sh

Third, edit the file /etc/rc.local as root and add the following line just before the 'exit 0' at the end:

/bin/bash /home/yourusername/bin/add-our-ip-address-run-at-boot-time.sh &

This causes a few blind tries at boot time to add your chosen ip address to whatever other IP address may be present (from dhcp or what-have-you). (You may need to create the file /etc/rc.local -- if so, make sure to chmod +x /etc/rc.local afterwards.)

The above should be enough. But if you find that your system doesn't reliably pick up its IP address when booting, or you find that it sometimes loses the address, then you can have the system periodically check to make sure your selected IP address is available. To do this, crontab -e as root to add a line to the end of root's crontab as follows:

*/5 *   *   *   *    /home/yourusername/bin/add-our-ip-address.sh > /dev/null

This will try once every five minutes to see if the desired IP is in use, and if not, to make it so. Maybe that's overkill, but even so, it shouldn't hurt.

After completing the above steps, you should find that you can reliably have a particular IP address on the target host. But admittedly, this isn't "the right wayTM" to do it (far from it, in fact), and so you should... Never do thisTM.

If this doesn't work for you, or you still have problems, you might leave a question in the comments section so that someone may be able to help you out.

Also See: Connecting to Your Single Board Computer with VNC

Scripts listed on this page are free software released under the terms of the Do What The Darned Heck You Want To Public License, version 1 (WTDHPL v1), or any later version. Please review the license terms (they work for your freedom); free software is important to our culture.

AMD Ryzen: From Buggy to Bountiful

Requested information for SR #{ticketno:[8200766680]} Service Request: {ticketno:[8200799002]}

--------------- Introduction ---------------
Below is a video showing a Ryzen 7 1700X PC with Debian GNU/Linux running the ryzen-test program from https://github.com/Oxalin/ryzen-test/ -- complete with video feed showing the CPU and case cooling at work. Ryzen-test is a very mild stress test consisting of compiling GCC, which any CPU should be able to do with no problems. Certain early Ryzen chips seem to fail at this test every time. The presentation running at top left helps relieve some of the boredom with some system config information and problem description; otherwise it's mostly just the temperature very slowly climbing into working range. Spoiler: The video gets more interesting around 12m:36s, which is about when the test fails. Any good CPU should pass this test without any segmentation faults. I made this video to help AMD understand my issues as part of the process of getting an RMA on this CPU. Other information within this post was also listed to help in that regard. Things with personally identifying information, such as the original invoices, were sent separately; this is just the good stuff for both AMD's private and everyone's public consumption.
--------------- --------------- ---------------

Motherboard: Micro-Star International MSI B350 TOMAHAWK (MS-7A34) (per BIOS screenshots)

Motherboard BIOS Version: E7A34AMS.120 03/16/2017 (per BIOS screenshots)

Make and Model of RAM:
- DIMM Bank A: 2x GeIL CL15-15-15 D4-2133 (per BIOS screenshots), GeIL EVO POTENZA Desktop Memory Model GPR416GB2133C15DC (per Newegg Invoice)
- DIMM Bank B: 2x Team Group TEAMGROUP-UD4-2400 (per BIOS screenshots), Team Elite Plus Desktop Memory Model TPRD44G2400HC1601 (per Newegg Invoice)
- GeIL RAM Info: https://www.newegg.com/Product/Product.aspx?Item=N82E16820144924
- Team Group RAM Info: https://www.newegg.com/Product/Product.aspx?Item=N82E16820313741
- Total RAM GeIL 8 + GeIL 8 + Team Group 4 + Team Group 4 = 24GB
- DDR Speed: 2133MHz (per BIOS screenshots)

Make and Model of Power Supply Unit (per Newegg Invoice):
- Make: APEVIA
- Model: ATX-JP1000W 1000W ATX12V SLI CrossFire 80 PLUS BRONZE Certified Power Supply
- Further information: https://www.newegg.com/Product/Product.aspx?Item=N82E16817148060

Voltages (per BIOS screenshots):
- CPU Core: 1.208 [Auto]
- CPU NB: 0.904 [Auto]
- DRAM: 1.200 [Auto]
- System 3.3v/5v/12v: 3.360/5.160/12.288

Cooling strategy:
- CPU Cooling: Air
- Cooler Model: DEEPCOOL ICE BLADE 200M
- Cooler Rating: "For 130W CPUs" per mfr.
- Cooler Features: Dual 8mm direct-contact heatpipes, Dual 92mm Fan Push/Pull.
- Heat Sink Grease: Arctic Silver (Not the Deepcool OEM grease)
- Cooler Info: https://www.newegg.com/Product/Product.aspx?Item=N82E16835856001

Temperatures:
- Ambient (room) temp about 23 degrees C.
- No appreciable load, around 30 - 35 degrees C according to k10temp
- Under load, peak at around 52 degrees C per k10temp
- Temperature at failure point, 51.9 degrees C according to k10temp

Information video:
- Window: Impress presentation (Good Info)
- Window: https://github.com/Oxalin/ryzen-test (very mild stress test)
- Window: watch -n .3 sensors \|tail -9\|cut -d "\(" -f 1 (monitor AMD-related temperatures)
- Window: Camera monitoring inside of PC (showing cooling live as it happens)
- Window: tail -f /var/log/kern.log |grep segfault (watch for specific problems)
- Window: top (see top CPU processes)
- At failure time (12m:37s), evidence appears in ryzen-test and tail kern.log windows.
- Temperature at failure observed to be 51.9 degrees C.
- Video online: https://www.youtube.com/watch?v=Pc10dtRaXso.
- Video download: The_AMD_Ryzen_Linux_Bug_-_What_it_looks_like.mkv [140MB]

Test system:
- Debian GNU/Linux "10" Buster/sid
- MSI Radeon RX 460 using "amdgpu" kernel driver
- Kernel uname -a: Linux quiz 4.15.2-amd64-1 #1 SMP Sat Feb 10 20:41:29 EST 2018 x86_64 GNU/Linux (from Kernel.org; compiled on this system)

Bios Screenshots:

BIOS Screen Shot: OC Page with motherboard model, BIOS version and date and voltages

BIOS Screen Shot: Settings Page showing configuration information

BIOS Screen Shot: RAM Info for DIMM A1

BIOS Screen Shot: RAM Info for DIMM A2

BIOS Screen Shot: RAM Info for DIMM B1

BIOS Screen Shot: RAM Info for DIMM B2

An explanation of why Software Patents are not like other patents

Patents exist in our society to strike a balance between the good of the few and the good of the many. The U.S. Constitution puts it this way: "The Congress shall have Power To...promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries...." (from Article I, Section 8 of the U.S. Constitution.)

So, here we have rights granted to "inventors" for their "discoveries" for the period of "limited times."

Let's start with some definitions.

"Inventors" are people (or companies) who invent things.
"Discoveries" are the "non-obvious" things they invent.
"Limited Times" are, in the U.S., usually about 14-20 years.

The idea is to encourage innovation with a reward: If you invent something useful, you and you alone have the legal rights to your invented discovery for a certain period of time, during which you reap any rewards, and after which it belongs to all the people.

The problem with applying this to software is that "software" is a set of instructions for a computer to do things it by definition already knows how to do, and patenting these pre-extant steps, whether individually or in groups, doesn't encourage innovation at all.

Though there are software procedures that are genuinely novel, such as certain complex compression algorithms and cryptography procedures, the vast majority of software patents are for trivial things like "Showing text with color coding (#7529804)" and "Pressing page-up and page-down (#7415666)."

The problem may not be obvious at first glance, because they are typically described in dense technical language. The two trivially silly patents above are described as "System and method for comprehensive automatic color customization in an email message based on cultural perspective" and "Method and system for navigating paginated content in page-based increments." It's still just color-coding and pressing page-up and page-down, but now with legalese. If the reader (quite properly) believes that such inanely obvious things can't be patented, he or she is encouraged to read the linked patents above.

Software, being little more than a recipe for how a computer should put together instructions already present in its CPU, may be hard to understand for many who are not programmers nor computer engineers. But something else that uses simple lists of instructions is food recipes--the ones we use in cooking.

Like software, a particular recipe can be copyrighted, but unlike software, the individual steps are generally not subject to patent. If recipes were subject to the same rules as software patents, then after the first company patented "Add milk, butter, and eggs to the flour" then no one else could ever make a cake during decades of the patent term. Near the end of that term we'd be likely to see a new patent on "Add milk and butter to a flour mixture containing eggs." When that one was about to expire, it wouldn't be a big surprise to see a patent on "Binding eggs and milk products such as butter together with flour." And so on. Patenting variations on a theme for a particular (simple) process could remove that process from the use of any but a single patent holder for centuries.

As you might imagine, this wouldn't encourage innovation in the technology and arts of ever-more delicious cakes--it would make cake-baking effectively illegal and kill all innovation in that area stone cold dead.

With that in mind, here's some food for thought as to why software patents are arguably a bad idea:

- Hi, welcome to This Restaruant(tm). I'll be your server. What are you having today?
- I'll have the BLT.
- I'm sorry, Some Other Restaurant(tm) has the software food patent on "A method for using porcine-derived high-fat cooked foodstuffs to offset the health benefits of crisp vegetables," so we legally can't make one of those. Legal would kill us!
- How about a Reuben?
- Well, Reubens Restaurant Holdings(tm) still holds the software food patent on "A process for combining thinly sliced deli meats and cabbage-based sauerkraut products into a bread-conveyed device", so I'm afraid...
- Didn't that one expire?
- No, that was their earlier one, "A method for combining bread-based products and pickled garden harvested goods into a roast beef-conveyed device."
- Ah. Okay, maybe something simple like a ham sandwich then.
- Oh, I'm so sorry, Super Relevant Food Tech(tm) actually sued us last year for using sugar-cured, table-prepared pork products in violation of their legally valid software food patent portfolio.
- Who're they?
- A "software food patent holdings" group. They used to make phones that did email, but changed their business model and their name when people stopped buying their products. Ironically, before that, their company name was the name of a food.
- They don't even make software foods?
- No, but they hold the sacred trust of software food patents on how to combine many different things to make a finished product. It's a very valuable role.
- Doesn't sound like it.
- Well, no, but that is what legal makes us say. Anyway, what can I get you for lunch?
- Is there anything you can legally serve me?
- Well, arguably, no, even the software food that we ourselves have patented probably violates innumerable other patents. That's the consequence of allowing patents on any trivial step of making any recipe, I guess. Besides, Agri Chem Conglomerate(tm) has that patent on using water in other things, and everything contains some amount of water...
- But that's crazy.
- You're telling me.

CNN Invokes "Think of the Children" and Bad Math to Fan Flames of "Opioid Epidemic."

On March 5, CNN posted a story to their news website breathlessly trumpeting a "study says" headline (excerpts below):

OPIOID OVERDOSE AMONG CHILDREN NEARLY DOUBLES, STUDY SAYS
The number of children admitted to hospitals for opioid overdose has nearly doubled since 2004, according to a new study. The study, which published Monday in the journal Pediatrics, looked at children between ages 1 and 17 who were admitted to hospitals and pediatric intensive care units with opioid-related diagnoses from 2004 to 2015.[...] "When they come in, they're going to fall into one of two categories: either they're teenagers with intentional or drug-seeking behavior because of recreational or self-injurious behavior, or they're kids who got into their parents' medication," said Dr. Jason Kane, an associate professor of pediatrics and critical care at Comer Children's Hospital in Chicago and a lead author on the study.[...] "What was really striking to me is just how sick these kids are and that almost half of them end up in the ICU," Kane said. "The reason why that's important to recognize is that nationwide there's only about 4,100 pediatric ICU beds, which is in contrast to the number of adult ICU beds, which is closer to 78,000.

[...] This study comes at a time when opioid use among adults in the US has reached epidemic proportions. According to the CDC, more than 42,000 people died in the US from opioid overdose in 2016, more than any year on record.

The problem with this news bombshell is the numbers involved. The study points to about 797 kids total the earlier period, and "nearly double" as many, 1,504, during the later. That's not per year--it works out to about 200 per year 2004-2007 vs. 376 per year 2012-2015. No deaths were reported during the periods involved.

Something else CNN didn't do is compare this number to, for example, kids seen in hospitals for playground injuries in the US (200,000 injured per year, with about 15 deaths per year; excerpts below):

Each year in the United States, emergency departments treat more than 200,000 children ages 14 and younger for playground-related injuries (Tinsworth 2001).

  • About 45% of playground-related injuries are severe–fractures, internal injuries, concussions, dislocations, and amputations (Tinsworth 2001).
  • About 75% of nonfatal injuries related to playground equipment occur on public playgrounds (Tinsworth 2001). Most occur at schools and daycare centers (Phelan 2001).
  • Between 1990 and 2000, 147 children ages 14 and younger died from playground-related injuries. Of them, 82 (56%) died from strangulation and 31 (20%) died from falls to the playground surface. Most of these deaths (70%) occurred on home playgrounds (Tinsworth 2001).
  • In 1995, playground-related injuries among children ages 14 and younger cost an estimated $1.2 billion (Office of Technology Assessment 1995).

Sure, technically, CNN is right. "Nearly doubled" means "not double," and 376 is not double 200.

But, by CNN's numbers, schools, daycare centers, public parks, and other play areas are over 50,000% more dangerous to our children than opioids are in terms of risk of hospitalization or death.

Needless injury to children is never a good thing, but the question here is this: Is this responsible reporting, simply inflammatory fluff for the "Zounds! Opoids" story, or somewhere in between?

Related link: https://xkcd.com/882/