source: networking/netutils/networkmanager.xml@ 75e3e09

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 xry111/llvm18 xry111/soup3 xry111/xf86-video-removal
Last change on this file since 75e3e09 was 75e3e09, checked in by Xi Ruoyao <xry111@…>, 20 months ago

networking: URL update

Also change all "http://sphinx-doc.org" to "https://www.sphinx-doc.org".
Without "www." I get a connection time out for some reason...

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