NetworkManager-1.32.10
      
      
        
          Introduction to NetworkManager
        
        
          NetworkManager is a set of
          co-operative tools that make networking simple and straightforward.
          Whether you use 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-11.0
          platform.
        
        
          Package Information
        
        
        
          NetworkManager Dependencies
        
        
          Required
        
        
          jansson-2.13.1 and libndp-1.8
        
        
          Recommended
        
        
          cURL-7.78.0, DHCP-4.4.2-P1 (client only), gobject-introspection-1.68.0,
          iptables-1.8.7, newt-0.52.21 (for
          nmtui), NSS-3.69,
          Polkit-0.119, PyGObject-3.40.1, elogind-246.10, UPower-0_99_13,
          Vala-0.52.5, and wpa_supplicant-2.9 (built with D-Bus
          support),
        
        
          Optional
        
        
          BlueZ-5.61, D-Bus Python-1.2.18 (for the test suite),
          GnuTLS-3.7.2 (used if NSS-3.69 is not found),
          GTK-Doc-1.33.2, libpsl-0.21.1, Qt-5.15.2 (for
          examples), ModemManager-1.16.10, Valgrind-3.17.0, dnsmasq,
          firewalld,
          libaudit, libteam,
          
          mobile-broadband-provider-info, PPP, and RP-PPPoE
        
        
          User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/NetworkManager
        
       
      
        
          Kernel Configuration
        
        
          If you wish to run the tests, enable the following options in the
          kernel configuration and recompile the kernel if necessary:
        
        Device Drivers --->
  [*] Network device support         [CONFIG_NETDEVICES] --->
    [*] Bonding driver support       [CONFIG_BONDING]
    [*] Dummy net driver support     [CONFIG_DUMMY]
    [*] Ethernet team driver support [CONFIG_NET_TEAM]
       
      
        
          Installation of NetworkManager
        
        
          If Qt-5.15.2 is installed and the Qt based examples
          are desired, fix two meson.build files:
        
        sed -e 's/-qt4/-qt5/'              \
    -e 's/moc_location/host_bins/' \
    -i examples/C/qt/meson.build   &&
sed -e 's/Qt/&5/'                  \
    -i meson.build
        
          Fix the python scripts so that they use Python 3:
        
        grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
        
          Install NetworkManager by running
          the following commands:
        
        mkdir build &&
cd    build &&
CXXFLAGS+="-O2 -fPIC"            \
meson --prefix=/usr              \
      --buildtype=release        \
      -Dlibaudit=no              \
      -Dlibpsl=false             \
      -Dnmtui=true               \
      -Dovs=false                \
      -Dppp=false                \
      -Dselinux=false            \
      -Dsession_tracking=elogind \
      -Dmodem_manager=false      \
      -Dsystemdsystemunitdir=no  \
      -Dsystemd_journal=false    \
      -Dqt=false                 \
      .. &&
ninja
        
          An already active graphical session with a bus address is necessary
          to run the tests. To test the results, as the root user, issue:
          ninja test. Five
          tests, platform/test-tc-linux,
          test-l3cfg, devices/test-acd, platform/test-route-linux, and platform/test-link-linux, are known to fail.
        
        
          Now, as the root user:
        
        ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.32.10}
       
      
        
          Command Explanations
        
        
          CXXFLAGS="-O2 -fPIC": These compiler
          options are necessary to build the Qt5 based examples.
        
        
          --buildtype=release:
          Specify a buildtype suitable for stable releases of the package, as
          the default may produce unoptimized binaries.
        
        
          -Ddocs=true: Use this switch to enable
          building man pages and documentation if GTK-Doc-1.33.2
          is installed.
        
        
          -Dnmtui=true: This
          parameter enables building nmtui.
        
        
          -Dsystemdsystemunitdir=no
          and -Dsystemd_journal=false: systemd is
          not used for sysv init systems.
        
        
          -Dlibpsl=false and
          -Dovs=false: These switches
          disable building with the respective libraries. Remove if you have
          the needed libraries installed.
        
        
          -Dmodem_manager=false: This
          switch is requried if ModemManager
          is not installed. Omit if you have built ModemManager and mobile-broadband-provider-info.
        
        
          -Dsession_tracking=elogind:
          This switch is used to set elogind as the default program
          for session tracking.
        
        
          -Dppp=false: This parameter
          disables PPP support in
          NetworkManager.
        
        
          -Dlibaudit=no and
          -Dselinux=false: libaudit
          and SELinux are not used in BLFS.
        
        
          -Dqt=false: disables the
          QT examples. Omit if you have
          QT available and wish to install
          the examples.
        
       
      
        
          Configuring NetworkManager
        
        
          
            
          
          
            Config Files
          
          
            /etc/NetworkManager/NetworkManager.conf
          
         
        
          
          
            Configuration Information
          
          
            For NetworkManager to work, at
            least a minimal configuration file must be present. Such a file
            is not installed with make
            install. Issue the following command as the
            root user to create a minimal
            NetworkManager.conf file:
          
          cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF
          
            This file should not be modified directly by users of the system.
            Instead, system specific changes should be made using
            configuration files in the /etc/NetworkManager/conf.d directory.
          
          
            To allow polkit to manage authorizations, add the following
            configuration file:
          
          cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF
          
            To use something other than the built-in dhcp client (recommended
            if using only nmcli), use the following
            configuration (valid values include either dhclient or internal):
          
          cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=dhclient
EOF
          
            To prevent NetworkManager from
            updating the /etc/resolv.conf file,
            add the following configuration file:
          
          cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF
          
            For additional configuation options, see man 5 NetworkManager.conf.
          
          
            To allow regular users 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 (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
        return polkit.Result.YES;
    }
});
EOF
         
        
          
            
          
          
            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-20210826 package.
          
          
            ![[Note]](../images/note.png) 
            
              Note
            
            
              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
         
       
      
        
          Contents
        
        
          
            
              Installed Programs:
              NetworkManager, nmcli, nm-online, nmtui,
              and, symlinked to nmtui: nmtui-connect, nmtui-edit, and
              nmtui-hostname
            
            
              Installed Libraries:
              libnm.so and several modules under
              /usr/lib/NetworkManager
            
            
              Installed Directories:
              /etc/NetworkManager, /usr/include/libnm,
              /usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.32.10,
              /usr/share/gtk-doc/html/{libnm,NetworkManager} (if the
              documentation is built), and /var/lib/NetworkManager
            
           
         
        
          
            Short Descriptions
          
          
            
              
              
            
            
              
                | 
                    nmcli
                   | 
                    is a command-line tool for controlling NetworkManager and getting its
                    status
                   | 
              
                | 
                    nm-online
                   | 
                    is an utility to determine whether you are online
                   | 
              
                | 
                    nmtui
                   | 
                    is an interactive ncurses-based user interface for
                    nmcli
                   | 
              
                | 
                    nmtui-connect
                   | 
                    is an interactive ncurses-based user interface to
                    activate/deactivate connections
                   | 
              
                | 
                    nmtui-edit
                   | 
                    is an interactive ncurses-based user interface to edit
                    connections
                   | 
              
                | 
                    nmtui-hostname
                   | 
                    is an interactive ncurses-based user interface to edit
                    the hostname
                   | 
              
                | 
                    NetworkManager
                   | 
                    is the network management daemon
                   | 
              
                | 
                    libnm.so | 
                    contains functions used by NetworkManager
                   | 
            
          
         
       
      
        Last updated on