NetworkManager-1.44.2
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.
注記
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS
開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
パッケージ情報
NetworkManager の依存パッケージ
必須
jansson-2.14, libndp-1.8
推奨
cURL-8.5.0,
dhcpcd-10.0.6, gobject-introspection-1.78.1,
iptables-1.8.10, newt-0.52.24 (for
nmtui), nss-3.96.1, Polkit-123
(runtime), PyGObject-3.46.0, elogind-252.9, Vala-0.56.14, and
wpa_supplicant-2.10 (runtime, built with
D-Bus support)
任意
BlueZ-5.71, D-Bus Python-1.3.2 (for the test suite),
GnuTLS-3.8.2 (can be used instead of nss-3.96.1), GTK-Doc-1.33.2, libpsl-0.21.2, (Qt-5.15.11 or
qt-components-5.15.11 with qtdoc) (for
examples), ModemManager-1.18.12, UPower-1.90.2, Valgrind-3.22.0, dnsmasq, firewalld, libaudit,
libteam,
mobile-broadband-provider-info, PPP, RP-PPPoE
Kernel Configuration
If you wish to run the tests, check that at least the following
options are enabled in the kernel configuration. Those options have
been determined to be necessary, but may not be sufficient.
Recompile the kernel if necessary:
[*] Networking support ---> [NET]
Networking options --->
[*] TCP/IP networking [INET]
<*/M> IP: tunneling [NET_IPIP]
<*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX]
<*/M> IP: GRE tunnels over IP [NET_IPGRE]
<*> The IPv6 protocol ---> [IPV6]
<*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT]
<*/M> IPv6: GRE tunnel [IPV6_GRE]
[*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES]
[*] MPTCP: Multipath TCP [MPTCP]
[*] MPTCP: IPv6 support for Multipath TCP [MPTCP_IPV6]
<*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q]
[*] QoS and/or fair queueing ---> [NET_SCHED]
<*> Stochastic Fairness Queueing (SFQ) [NET_SCH_SFQ]
<*> Token Bucket Filter (TBF) [NET_SCH_TBF]
<*> Fair Queue Controlled Delay AQM (FQ_CODEL) [NET_SCH_FQ_CODEL]
<*> Ingress/classifier-action Qdisc [NET_SCH_INGRESS]
Device Drivers --->
[*] Network device support ---> [NETDEVICES]
[*] Network core driver support [NET_CORE]
<*/M> Bonding driver support [BONDING]
<*/M> Dummy net driver support [DUMMY]
<*/M> Ethernet team driver support ---> [NET_TEAM]
<*/M> MAC-VLAN support [MACVLAN]
<*/M> MAC-VLAN based tap driver [MACVTAP]
<*/M> IP-VLAN support [IPVLAN]
<*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN]
<*/M> Virtual ethernet pair device [VETH]
<*/M> Virtual Routing and Forwarding (Lite) [NET_VRF]
NetworkManager のインストール
If Qt-5.15.11 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/'
以下のコマンドを実行して NetworkManager
をビルドします。
mkdir build &&
cd build &&
CXXFLAGS+="-O2 -fPIC" \
meson setup .. \
--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, issue ninja test.
A few tests may fail, depending on enabled kernel options.
root
ユーザーになって以下を実行します。
ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.44.2}
If you have not passed the -Ddocs=true
option to meson, you
can install the pregenerated manual pages with (as the root
user):
for file in $(echo ../man/*.[1578]); do
section=${file##*.} &&
install -vdm 755 /usr/share/man/man$section
install -vm 644 $file /usr/share/man/man$section/
done
If you have not used -Ddocs=true
, the
pregenerated HTML documentation can also be installed with (as the
root
user):
cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.44.2
コマンド説明
CXXFLAGS="-O2 -fPIC"
: These compiler
options are necessary to build the Qt5 based examples.
--buildtype=release
:
本パッケージの安定版リリース向けに適したビルドタイプを指定します。
デフォルトにしていると、最適化されていないバイナリを生成する場合があるためです。
-Ddocs=true
: Use this switch to enable
building man pages and documentation if GTK-Doc-1.33.2
is installed.
-Dnmtui=true
: This switch
enables building nmtui.
-Dsystemdsystemunitdir=no
and -Dsystemd_journal=false
: systemd is
not used for sysv init systems, so prevent installing units and
using the systemd journal.
-Dlibpsl=false
and
-Dovs=false
: These switches
disable building with the respective libraries. Remove these if you
have the needed libraries installed on your system.
-Dmodem_manager=false
: This
switch is required if ModemManager
is not installed. Omit this switch 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 switch
disables PPP support in
NetworkManager since the programs
necessary for it are not installed. Remove this switch if you need
PPP support and have PPP
installed.
-Dlibaudit=no
and
-Dselinux=false
: This
switch disables support for libaudit and SELinux since they are not
used in BLFS.
-Dqt=false
: This switch
disables the Qt examples. Omit if
you have Qt available and wish to
install the examples.
-Dcrypto=gnutls
: Use this switch if you
have GnuTLS installed and want to use it for certificate and key
operations in NetworkManager, instead of using NSS (the default).
-Dcrypto=null
: Use this switch if
neither NSS nor GnuTLS is installed but you want to build
NetworkManager anyway. This switch will make NetworkManager lack
some features (for example 802.1X).
-Dsuspend_resume=upower
: Use this
switch if you have UPower-1.90.2 installed and want to use
it (instead of elogind-252.9 ) for suspend and resume
support.
NetworkManager の設定
設定ファイル
/etc/NetworkManager/NetworkManager.conf
設定情報
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 dhcpcd or internal):
cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=
dhcpcd
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 configuration 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
ブートスクリプト
To automatically start the NetworkManager daemon when the
system is rebooted, install the /etc/rc.d/init.d/networkmanager
bootscript from
the blfs-bootscripts-20231119 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
パッケージ構成
インストールプログラム: NetworkManager, nmcli, nm-online, nmtui, and,
symlinked to nmtui: nmtui-connect, nmtui-edit, and
nmtui-hostname
インストールライブラリ: libnm.so, /usr/lib/NetworkManager 配下の数種のモジュール
インストールディレクトリ: /etc/NetworkManager, /usr/include/libnm,
/usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.44.2,
/usr/share/gtk-doc/html/{libnm,NetworkManager} (if the
documentation is built), /var/lib/NetworkManager
概略説明
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
|