Introduction to NetworkManager

NetworkManager is a set of co-operative tools that make networking simple and straightforward. Whether WiFi, wired, 3G, or Bluetooth, NetworkManager allows you to quickly move from one network to another: Once a network has been configured and joined once, it can be detected and re-joined automatically the next time it's available.

This package is known to build and work properly using an LFS-8.0 platform.

Package Information

NetworkManager Dependencies


dbus-glib-0.108, libgudev-231, libndp-1.6, libnl-3.2.29, and NSS-3.30



BlueZ-5.43, GTK-Doc-1.25, Qt-5.8.0 (for examples), ModemManager-1.6.4, Valgrind-3.12.0, dnsmasq, Jansson, libteam, PPP, and RP-PPPoE

User Notes:

Installation of NetworkManager

If Qt-5.8.0 is installed and the Qt based examples are desired, fix the configure script:

sed -e '/Qt[CDN]/s/Qt/Qt5/g'       \
    -e 's/moc_location/host_bins/' \
    -i configure

Install NetworkManager by running the following commands:

CXXFLAGS="-O2 -fPIC"                       \
./configure --prefix=/usr                  \
            --sysconfdir=/etc              \
            --localstatedir=/var           \
            --with-nmtui                   \
            --disable-ppp                  \
            --disable-json-validation      \
            --with-systemdsystemunitdir=no \
            --docdir=/usr/share/doc/network-manager-1.6.2 &&

An already active graphical session with bus address is necessary to run the tests. To test the results, issue: make check.

Now, as the root user:

make install

Command Explanations

CXXFLAGS="-O2 -fPIC": These compiler options are necessary to build the Qt5 based examples.

--with-nmtui: This parameter enables build of nmtui.

--with-systemdsystemunitdir=no: systemd is not used for sysv init systems.

--disable-ppp: This parameter disables PPP support in NetworkManager.

--disable-json-validation: This parameter allows building without Jansson, which is needed for “team” configuration validation (team is one way of bonding network interfaces for increased throughput).

--enable-gtk-doc: Use this switch if you have installed GTK-Doc-1.25 and wish to build the API manuals.

--without-iptables: Use this switch if you don't have Iptables installed.

--disable-introspection: Use this switch if gobject-introspection-1.52.0 is installed and you want to build without introspection support. This also removes the need for PyGObject-3.24.0.

Configuring NetworkManager

Config Files


Configuration Information

For NetworkManager to work, at least a minimal configuration file must be present. Such file is not installed with make install. Issue the following command as the root user to create minimal NetworkManager.conf file:

cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"

You can add dns=none to suppress changes to /etc/resolv.conf. See man 5 NetworkManager.conf for any additional options.

To allow regular users permission to configure network connections, you should add them to the netdev group, and create a polkit rule that grants access. Run the following commands as the root user:

groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <username>

cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
    if ("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
        return polkit.Result.YES;

Boot Script

To automatically start the NetworkManager daemon when the system is rebooted, install the /etc/rc.d/init.d/networkmanagerbootscript from the blfs-bootscripts-20170225 package.



If using Network Manager to manage an interface, any previous configuration for that interface should be removed, and the interface brought down prior to starting Network Manager.

make install-networkmanager


Installed Programs: NetworkManager, nmcli, nm-online, nmtui, and, symlinked to nmtui: nmtui-connect, nmtui-edit, and nmtui-hostname
Installed Libraries:,,,, and modules under /usr/lib/NetworkManager
Installed Directories: /etc/NetworkManager, /usr/include/{libnm,libnm-glib,NetworkManager}, /usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.6.2, /usr/share/gtk-doc/html/{libnm,libnm-glib,libnm-util,NetworkManager} (if the documentation is built), and /var/{lib,run}/NetworkManager

Short Descriptions


is a command-line tool for controlling NetworkManager and getting its status.


is a utility to find out whether you are online.


is an interactive ncurses based interface for nmcli.


is an interactive ncurses based interface connection to activate/deactivate connections.


is an interactive ncurses based interface connection editor.


is an interactive ncurses based interface hostname editor.


is the network management daemon.

contains functions used by NetworkManager.

contains functions used by NetworkManager VPN plugins.

contains functions used by NetworkManager utils.

Last updated on 2017-03-08 15:43:04 -0600