source: networking/netutils/networkmanager.xml@ 365c6fb

10.1 11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 365c6fb was 365c6fb, checked in by Douglas R. Reno <renodr@…>, 4 years ago

Update to nspr-4.28
Update to nss-3.56
Update to curl-7.72.0
Update to NetworkManager-1.26.2
Update to openldap-2.4.52

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23661 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 22.5 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY NetworkManager-download-http
8"&gnome-download-http;/NetworkManager/&NetworkManager-minor;/NetworkManager-&NetworkManager-version;.tar.xz">
9 <!ENTITY NetworkManager-download-ftp
10"&gnome-download-ftp;/NetworkManager/&NetworkManager-minor;/NetworkManager-&NetworkManager-version;.tar.xz">
11 <!ENTITY NetworkManager-md5sum "ad5332a7fe5d00db7c75b722337be62b">
12 <!ENTITY NetworkManager-size "4.7 MB">
13 <!ENTITY NetworkManager-buildsize "992 MB (with tests)">
14 <!ENTITY NetworkManager-time "1.0 SBU (with tests; both using parallelism=4)">
15]>
16
17<sect1 id="NetworkManager" xreflabel="NetworkManager-&NetworkManager-version;">
18 <?dbhtml filename="networkmanager.html"?>
19
20 <sect1info>
21 <othername>$LastChangedBy$</othername>
22 <date>$Date$</date>
23 </sect1info>
24
25 <title>NetworkManager-&NetworkManager-version;</title>
26
27 <indexterm zone="NetworkManager">
28 <primary sortas="a-NetworkManager">NetworkManager</primary>
29 </indexterm>
30
31 <sect2 role="package">
32 <title>Introduction to NetworkManager</title>
33
34 <para>
35 <application>NetworkManager</application> is a set of co-operative
36 tools that make networking simple and straightforward. Whether you use WiFi,
37 wired, 3G, or Bluetooth, NetworkManager allows you to quickly move from
38 one network to another: Once a network has been configured and joined
39 once, it can be detected and re-joined automatically the next time it's
40 available.
41 </para>
42
43 &lfs10_checked;
44
45 <note revision="systemd">
46 <para>
47 Make sure that you disable the <command>systemd-networkd</command>
48 service or configure it not to manage the interfaces you want to manage
49 with <application>NetworkManager</application>.
50 </para>
51 </note>
52
53 <bridgehead renderas="sect3">Package Information</bridgehead>
54 <itemizedlist spacing="compact">
55 <listitem>
56 <para>
57 Download (HTTP): <ulink url="&NetworkManager-download-http;"/>
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download (FTP): <ulink url="&NetworkManager-download-ftp;"/>
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Download MD5 sum: &NetworkManager-md5sum;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Download size: &NetworkManager-size;
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Estimated disk space required: &NetworkManager-buildsize;
78 </para>
79 </listitem>
80 <listitem>
81 <para>
82 Estimated build time: &NetworkManager-time;
83 </para>
84 </listitem>
85 </itemizedlist>
86
87 <bridgehead renderas="sect3">NetworkManager Dependencies</bridgehead>
88
89 <bridgehead renderas="sect4">Required</bridgehead>
90 <para role="required">
91 <xref linkend="dbus-glib"/> and
92 <xref linkend="libndp"/>
93 </para>
94
95 <bridgehead renderas="sect4">Recommended</bridgehead>
96 <para role="recommended">
97 <xref linkend="curl"/>,
98 <!--<xref linkend="dhcpcd"/> or
99 DHCPCD support is known to be broken with dhcpcd-9 -->
100 <xref role="nodep" linkend="dhcp"/> (client only),
101 <xref linkend="gobject-introspection"/>,
102 <xref linkend="iptables"/>,
103 <xref linkend="jansson"/>,
104 <xref linkend="newt"/> (for <command>nmtui</command>),
105 <xref linkend="nss"/>,
106 <xref linkend="polkit"/>,
107 <xref linkend="pygobject3"/>,
108 <phrase revision="sysv"><xref linkend="elogind"/>,</phrase>
109 <phrase revision="systemd"><xref linkend="systemd"/>,</phrase>
110 <xref linkend="upower"/>,
111 <xref linkend="vala"/>, and
112 <xref linkend="wpa_supplicant"/> (built with D-Bus support),
113 </para>
114
115 <bridgehead renderas="sect4">Optional</bridgehead>
116 <para role="optional">
117 <xref linkend="bluez"/>,
118 <xref linkend="dbus-python"/> (for the test suite),
119 <!-- <xref linkend="firewalld"/> (For whenever firewalld is reintroduced) -->
120 <xref linkend="gnutls"/> (used if <xref linkend="nss"/> is not found),
121 <xref linkend="gtk-doc"/>,
122 <xref linkend="libpsl"/>,
123 <xref linkend="qt5"/> (for examples),
124 <xref linkend="ModemManager"/>,
125 <xref linkend="valgrind"/>,
126 <ulink url="http://www.thekelleys.org.uk/dnsmasq/doc.html">dnsmasq</ulink>,
127 <ulink url="https://firewalld.org/">firewalld</ulink>,
128 <ulink url="https://github.com/Distrotech/libaudit">libaudit</ulink>,
129 <ulink url="https://github.com/jpirko/libteam">libteam</ulink>,
130 <ulink url="https://ftp.gnome.org/pub/gnome/sources/mobile-broadband-provider-info/">mobile-broadband-provider-info</ulink>,
131 <ulink url="https://www.samba.org/ftp/ppp/">PPP</ulink>, and
132 <ulink url="https://dianne.skoll.ca/projects/rp-pppoe/">RP-PPPoE</ulink>
133 </para>
134
135 <para condition="html" role="usernotes">User Notes:
136 <ulink url="&blfs-wiki;/NetworkManager"/>
137 </para>
138 </sect2>
139
140 <sect2 role="kernel" id="NetworkManager-kernel">
141 <title>Kernel Configuration</title>
142
143 <para>
144 If you wish to run the tests, enable the following options in the
145 kernel configuration and recompile the kernel if necessary:
146 </para>
147
148 <!-- Ethernet Teaming support is potentially optional, but I didn't
149 run the tests again to test that. It was needed to convince one of
150 the Linux Platform tests to move farther along because otherwise
151 RTNETLINK would respond with an Error 95 - unknown device type.
152 This would cause the test to fail early on in the process. -->
153
154<screen><literal>Device Drivers ---&gt;
155 [*] Network device support [CONFIG_NETDEVICES] ---&gt;
156 [*] Bonding driver support [CONFIG_BONDING]
157 [*] Dummy net driver support [CONFIG_DUMMY]
158 [*] Ethernet team driver support [CONFIG_NET_TEAM]</literal></screen>
159
160 <indexterm zone="NetworkManager NetworkManager-kernel">
161 <primary sortas="d-NetworkManager">NetworkManager</primary>
162 </indexterm>
163 </sect2>
164
165 <sect2 role="installation">
166 <title>Installation of NetworkManager</title>
167
168 <para>
169 If <xref linkend="qt5"/> is installed and the Qt based
170 examples are desired, fix two meson.build files:
171 </para>
172
173<screen><userinput>sed -e 's/-qt4/-qt5/' \
174 -e 's/moc_location/host_bins/' \
175 -i examples/C/qt/meson.build &amp;&amp;
176sed -e 's/Qt/&amp;5/' \
177 -i meson.build</userinput></screen>
178
179 <para>
180 Fix a missing meson.build file for initrd hooks (not used in BLFS):
181 </para>
182
183<screen><userinput>sed '/initrd/d' -i src/meson.build</userinput></screen>
184
185 <para>
186 Fix the python scripts so that they use <application>Python
187 3</application>:
188 </para>
189
190<screen><userinput>grep -rl '^#!.*python$' | xargs sed -i '1s/python/&amp;3/'</userinput></screen>
191
192 <para>
193 Install <application>NetworkManager</application> by running the
194 following commands:
195 </para>
196
197<screen revision="sysv"><userinput>mkdir build &amp;&amp;
198cd build &amp;&amp;
199
200CXXFLAGS+="-O2 -fPIC" \
201meson --prefix /usr \
202 -Djson_validation=false \
203 -Dlibaudit=no \
204 -Dlibpsl=false \
205 -Dnmtui=true \
206 -Dovs=false \
207 -Dppp=false \
208 -Dselinux=false \
209 -Dudev_dir=/lib/udev \
210 -Dsession_tracking=elogind \
211 -Dmodem_manager=false \
212 -Dsystemdsystemunitdir=no \
213 -Dsystemd_journal=false \
214 -Dqt=false \
215 .. &amp;&amp;
216ninja</userinput></screen>
217
218<screen revision="systemd"><userinput>mkdir build &amp;&amp;
219cd build &amp;&amp;
220
221CXXFLAGS+="-O2 -fPIC" \
222meson --prefix /usr \
223 -Djson_validation=false \
224 -Dlibaudit=no \
225 -Dlibpsl=false \
226 -Dnmtui=true \
227 -Dovs=false \
228 -Dppp=false \
229 -Dselinux=false \
230 -Dqt=false \
231 -Dudev_dir=/lib/udev \
232 -Dsession_tracking=systemd \
233 -Dmodem_manager=false \
234 -Dsystemdsystemunitdir=/lib/systemd/system \
235 .. &amp;&amp;
236ninja</userinput></screen>
237
238 <para>
239 An already active graphical session
240 with a bus address is necessary to run the tests. To test the results,
241 as the root user, <!-- needs the "ip" command -->
242 issue: <command>ninja test</command>. Five tests,
243 <filename>devices/test-acd</filename>,
244 <filename>platform/test-tc-linux</filename>,
245 <filename>platform/test-route-linux</filename>,
246 <filename>platform/test-link-linux</filename>, and
247 <filename>platform/test-cleanup-linux</filename>, are known to fail.
248 </para>
249
250 <para>
251 Now, as the <systemitem class="username">root</systemitem> user:
252 </para>
253
254<screen role="root"><userinput>ninja install &amp;&amp;
255mv -v /usr/share/doc/NetworkManager{,-&NetworkManager-version;}</userinput></screen>
256
257 </sect2>
258
259 <sect2 role="commands">
260 <title>Command Explanations</title>
261
262 <para>
263 <envar>CXXFLAGS="-O2 -fPIC"</envar>: These compiler options are
264 necessary to build the Qt5 based examples.
265 </para>
266
267 <para>
268 <option>-Ddocs=true</option>: Use this switch to enable building
269 man pages and documentation if <xref linkend="gtk-doc"/> is installed.
270 </para>
271
272 <para>
273 <parameter>-Dnmtui=true</parameter>: This parameter enables building
274 <command>nmtui</command>.
275 </para>
276
277 <para revision="sysv">
278 <parameter>-Dsystemdsystemunitdir=no</parameter> and
279 <parameter>-Dsystemd_journal=false</parameter>: systemd is not
280 used for sysv init systems.
281 </para>
282
283 <para>
284 <parameter>-Djson_validation=false</parameter>,
285 <parameter>-Dlibpsl=false</parameter>, and
286 <parameter>-Dovs=false</parameter>: These switches disable building with the
287 respective libraries. Remove if you have the needed libraries installed.
288 </para>
289
290<!--
291 <para>
292 <parameter>-Dlibpsl=false</parameter>: This switch is required if
293 <application>libpsl</application> is not installed. Omit this switch if
294 you have built <application>libpsl</application>.
295 </para>
296-->
297
298 <para>
299 <parameter>-Dmodem_manager=false</parameter>: This switch is requried if
300 <application>ModemManager</application> is not installed. Omit if you
301 have built <application>ModemManager</application> and
302 <application>mobile-broadband-provider-info</application>.
303 </para>
304
305 <para revision="sysv">
306 <parameter>-Dsession_tracking=elogind</parameter>: This switch
307 is used to set <command>elogind</command> as the default
308 program for session tracking.
309 </para>
310
311 <para revision="systemd">
312 <parameter>-Dsession_tracking=systemd</parameter>: This switch
313 is used to set <command>systemd-logind</command> as the default
314 program for session tracking.
315 </para>
316
317 <para revision="systemd">
318 <parameter>-Dsystemdsystemunitdir=/lib/systemd/system</parameter>:
319 This switch is used to set the correct installation directory for
320 systemd units.
321 </para>
322
323 <para>
324 <parameter>-Dppp=false</parameter>: This parameter disables
325 <application>PPP</application> support in
326 <application>NetworkManager</application>.
327 </para>
328
329 <para>
330 <parameter>-Dlibaudit=no</parameter> and
331 <parameter>-Dselinux=false</parameter>: libaudit and SELinux are not used
332 in BLFS.
333 </para>
334
335 <para>
336 <parameter>-Dqt=false</parameter>: disables the
337 <application>QT</application> examples. Omit if you have
338 <application>QT</application> available and wish to install the examples.
339 </para>
340
341 </sect2>
342
343 <sect2 role="configuration">
344 <title>Configuring NetworkManager</title>
345
346 <sect3 id="NetworkManager-config">
347 <title>Config Files</title>
348 <para>
349 <filename>/etc/NetworkManager/NetworkManager.conf</filename>
350 </para>
351
352 <indexterm zone="NetworkManager NetworkManager-config">
353 <primary
354 sortas="e-etc-NetworkManager-NetworkManager.conf">
355 /etc/NetworkManager/NetworkManager.conf</primary>
356 </indexterm>
357
358 </sect3>
359
360 <sect3><title>Configuration Information</title>
361
362 <para>
363 For <application>NetworkManager</application> to work, at least
364 a minimal configuration file must be present. Such file is not
365 installed with <command>make install</command>. Issue the following
366 command as the <systemitem class="username">root</systemitem> user to
367 create minimal <filename>NetworkManager.conf</filename> file:
368 </para>
369
370<screen role="root"><userinput>cat &gt;&gt; /etc/NetworkManager/NetworkManager.conf &lt;&lt; "EOF"
371<literal>[main]
372plugins=keyfile</literal>
373EOF</userinput></screen>
374
375 <para>
376 This file should not be modified directly by users of the system.
377 Instead, system specific changes should be made using configuration
378 files in the
379 <filename class="directory">/etc/NetworkManager/conf.d</filename>
380 direcotry.
381 </para>
382
383 <para>
384 To allow polkit to manage authorizations, add the following
385 configuration file:
386 </para>
387
388<screen role="root"><userinput>cat &gt; /etc/NetworkManager/conf.d/polkit.conf &lt;&lt; "EOF"
389<literal>[main]
390auth-polkit=true</literal>
391EOF</userinput></screen>
392
393 <para>
394 To use something other than the built-in dhcp client (recommended if
395 using only <command>nmcli</command>), use the following configuration
396 (valid values include either dhclient <!--dhcpcd --> or internal):
397 </para>
398
399<screen role="nodump"><userinput>cat &gt; /etc/NetworkManager/conf.d/dhcp.conf &lt;&lt; "EOF"
400<literal>[main]
401dhcp=</literal><replaceable>dhclient</replaceable>
402EOF</userinput></screen>
403
404 <para>
405 To prevent <application>NetworkManager</application> from updating the
406 <filename>/etc/resolv.conf</filename> file, add the following
407 configuration file:
408 </para>
409
410<screen role="nodump"><userinput>cat &gt; /etc/NetworkManager/conf.d/no-dns-update.conf &lt;&lt; "EOF"
411<literal>[main]
412dns=none</literal>
413EOF</userinput></screen>
414
415 <para>
416 For additional configuation options, see
417 <command>man 5 NetworkManager.conf</command>.
418 </para>
419
420 <para>
421 To allow regular users permission to configure network connections,
422 you should add them to the
423 <systemitem class="groupname">netdev</systemitem>
424 group, and create a <application>polkit</application> rule that grants
425 access. Run the following commands as the
426 <systemitem class="username">root</systemitem> user:
427 </para>
428
429<screen role="root"><userinput>groupadd -fg 86 netdev &amp;&amp;
430/usr/sbin/usermod -a -G netdev <replaceable>&lt;username&gt;</replaceable>
431
432cat &gt; /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules &lt;&lt; "EOF"
433<literal>polkit.addRule(function(action, subject) {
434 if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 &amp;&amp; subject.isInGroup("netdev")) {
435 return polkit.Result.YES;
436 }
437});</literal>
438EOF</userinput></screen>
439
440 </sect3>
441
442 <sect3 id="NetworkManager-init">
443 <title><phrase revision="sysv">Boot Script</phrase>
444 <phrase revision="systemd">Systemd Unit</phrase></title>
445
446 <para revision="sysv">
447 To automatically start the <command>NetworkManager</command> daemon
448 when the system is rebooted, install the
449 <filename>/etc/rc.d/init.d/networkmanager</filename>bootscript from the
450 <xref linkend="bootscripts"/> package.
451 </para>
452
453 <para revision="systemd">
454 To start the <command>NetworkManager</command> daemon at boot, enable
455 the previously installed systemd unit by running the following command
456 as the <systemitem class="username">root</systemitem> user:
457 </para>
458
459 <note>
460 <para>
461 If using <application>Network Manager</application> to manage
462 an interface, any previous configuration for that interface should be
463 removed, and the interface brought down prior to starting
464 <application>Network Manager</application>.
465 </para>
466 </note>
467
468 <indexterm zone="NetworkManager NetworkManager-init">
469 <primary sortas="f-NetworkManager">NetworkManager</primary>
470 </indexterm>
471
472<screen role="root" revision="sysv"><userinput>make install-networkmanager</userinput></screen>
473
474<screen role="root" revision="systemd"><userinput>systemctl enable NetworkManager</userinput></screen>
475<!-- The below instruction is obsolete. NetworkManager-wait-online is now
476 enabled by default when enabling NetworkManager. -->
477<!--
478 <para revision="systemd">
479 <application>NetworkManager</application> also ships a systemd unit
480 called <filename>NetworkManager-wait-online.service</filename> which
481 can be used to prevent services that require network connectivity
482 from starting until <application>NetworkManager</application> has
483 established the connection. To enable it, run the following command
484 as the <systemitem class="username">root</systemitem> user:
485 </para>
486
487<screen role="root" revision="systemd"><userinput>systemctl enable NetworkManager-wait-online</userinput></screen>
488 -->
489 <!-- As such, let's now provide instructions on how to disable that
490 behavior, for those who wish to do so. -->
491 <para revision="systemd">
492 Starting in version 1.11.2 of <application>NetworkManager</application>,
493 a systemd unit named <filename>NetworkManager-wait-online.service</filename>
494 is enabled, which is used to prevent services that require network
495 connectivity from starting until <application>NetworkManager</application>
496 establishes a connection. To disable this behavior, run the following
497 command as the <systemitem class="username">root</systemitem> user:
498 </para>
499
500<screen role="root" revision="systemd"><userinput>systemctl disable NetworkManager-wait-online</userinput></screen>
501
502 </sect3>
503
504 </sect2>
505
506 <sect2 role="content">
507 <title>Contents</title>
508
509 <segmentedlist>
510 <segtitle>Installed Programs</segtitle>
511 <segtitle>Installed Libraries</segtitle>
512 <segtitle>Installed Directories</segtitle>
513
514 <seglistitem>
515 <seg>
516 NetworkManager, nmcli, nm-online, nmtui, and, symlinked to nmtui:
517 nmtui-connect, nmtui-edit, and nmtui-hostname
518 </seg>
519 <seg>
520 libnm.so
521 and several modules under /usr/lib/NetworkManager
522 </seg>
523 <seg>
524 /etc/NetworkManager,
525 /usr/include/libnm,
526 /usr/lib/NetworkManager,
527 /usr/share/doc/NetworkManager-&NetworkManager-version;,
528 /usr/share/gtk-doc/html/{libnm,NetworkManager}
529 (if the documentation is built),
530 and
531 /var/lib/NetworkManager
532 </seg>
533 <!-- A lot of libraries were removed here. We should verify compatibilty.
534 RESTORED AT 1.18.2 -renodr -->
535 </seglistitem>
536 </segmentedlist>
537
538 <variablelist>
539 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
540 <?dbfo list-presentation="list"?>
541 <?dbhtml list-presentation="table"?>
542
543 <varlistentry id="nmcli">
544 <term><command>nmcli</command></term>
545 <listitem>
546 <para>
547 is a command-line tool for controlling
548 <application>NetworkManager</application>
549 and getting its status.
550 </para>
551 <indexterm zone="NetworkManager nmcli">
552 <primary sortas="b-nmcli">nmcli</primary>
553 </indexterm>
554 </listitem>
555 </varlistentry>
556
557 <varlistentry id="nm-online">
558 <term><command>nm-online</command></term>
559 <listitem>
560 <para>
561 is an utility to find out whether you are online.
562 </para>
563 <indexterm zone="NetworkManager nm-online">
564 <primary sortas="b-nm-online">nm-online</primary>
565 </indexterm>
566 </listitem>
567 </varlistentry>
568
569 <varlistentry id="nmtui">
570 <term><command>nmtui</command></term>
571 <listitem>
572 <para>
573 is an interactive ncurses based interface for
574 <application>nmcli</application>.
575 </para>
576 <indexterm zone="NetworkManager nmtui">
577 <primary sortas="b-nmtui">nmtui</primary>
578 </indexterm>
579 </listitem>
580 </varlistentry>
581
582 <varlistentry id="nmtui-connect">
583 <term><command>nmtui-connect</command></term>
584 <listitem>
585 <para>
586 is an interactive ncurses based interface connection to
587 activate/deactivate connections.
588 </para>
589 <indexterm zone="NetworkManager nmtui-connect">
590 <primary sortas="b-nmtui-connect">nmtui-connect</primary>
591 </indexterm>
592 </listitem>
593 </varlistentry>
594
595 <varlistentry id="nmtui-edit">
596 <term><command>nmtui-edit</command></term>
597 <listitem>
598 <para>
599 is an interactive ncurses based interface connection editor.
600 </para>
601 <indexterm zone="NetworkManager nmtui-edit">
602 <primary sortas="b-nmtui-edit">nmtui-edit</primary>
603 </indexterm>
604 </listitem>
605 </varlistentry>
606
607 <varlistentry id="nmtui-hostname">
608 <term><command>nmtui-hostname</command></term>
609 <listitem>
610 <para>
611 is an interactive ncurses based interface hostname editor.
612 </para>
613 <indexterm zone="NetworkManager nmtui-hostname">
614 <primary sortas="b-nmtui-hostname">nmtui-hostname</primary>
615 </indexterm>
616 </listitem>
617 </varlistentry>
618
619 <varlistentry id="NetworkManager-prog">
620 <term><command>NetworkManager</command></term>
621 <listitem>
622 <para>
623 is the network management daemon.
624 </para>
625 <indexterm zone="NetworkManager NetworkManager-prog">
626 <primary sortas="b-NetworkManager">NetworkManager</primary>
627 </indexterm>
628 </listitem>
629 </varlistentry>
630
631 <varlistentry id="libnm">
632 <term><filename class="libraryfile">libnm.so</filename></term>
633 <listitem>
634 <para>
635 contains functions used by <application>NetworkManager</application>.
636 </para>
637 <indexterm zone="NetworkManager libnm">
638 <primary sortas="c-libnm">libnm.so</primary>
639 </indexterm>
640 </listitem>
641 </varlistentry>
642 </variablelist>
643
644 </sect2>
645
646</sect1>
Note: See TracBrowser for help on using the repository browser.