source: networking/netutils/networkmanager.xml@ 32dfda12

elogind
Last change on this file since 32dfda12 was 4ef4636b, checked in by DJ Lucas <dj@…>, 5 years ago

Initial commit of elogind-239.3. Adjust serveral packages to utilize elogind.

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

  • Property mode set to 100644
File size: 18.8 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/1.14/NetworkManager-&NetworkManager-version;.tar.xz">
9 <!ENTITY NetworkManager-download-ftp
10 "&gnome-download-ftp;/NetworkManager/1.14/NetworkManager-&NetworkManager-version;.tar.xz">
11 <!ENTITY NetworkManager-md5sum "54ce62f0aa18ef6c5e754eaac47494ac">
12 <!ENTITY NetworkManager-size "4.2 MB">
13 <!ENTITY NetworkManager-buildsize "721 MB (with tests)">
14 <!ENTITY NetworkManager-time "0.5 SBU (with tests)">
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 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 &lfs83_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 <phrase revision="sysv"><xref linkend="consolekit"/>,</phrase>
98 <xref linkend="curl"/>,
99 <xref linkend="dhcpcd"/> or
100 <xref linkend="dhcp"/> (client only),
101 <xref linkend="gobject-introspection"/>,
102 <xref linkend="iptables"/>,
103 <xref linkend="newt"/> (for <command>nmtui</command>),
104 <xref linkend="nss"/>,
105 <xref linkend="polkit"/>,
106 <xref linkend="pygobject3"/>,
107 <phrase revision="sysv"><xref linkend="elogind"/>,</phrase>
108 <phrase revision="systemd"><xref linkend="systemd"/>,</phrase>
109 <xref linkend="upower"/>,
110 <xref linkend="vala"/>, and
111 <xref linkend="wpa_supplicant"/> (built with D-Bus support),
112 </para>
113
114 <bridgehead renderas="sect4">Optional</bridgehead>
115 <para role="optional">
116 <xref linkend="bluez"/>,
117 <xref linkend="dbus-python"/> (for the test suite),
118 <xref linkend="gnutls"/> (used if <xref linkend="nss"/> is not found),
119 <xref linkend="gtk-doc"/>,
120 <xref linkend="jansson"/>,
121 <xref linkend="libpsl"/>,
122 <xref linkend="qt5"/> (for examples),
123 <xref linkend="ModemManager"/>,
124 <xref linkend="valgrind"/>,
125 <ulink url="http://www.thekelleys.org.uk/dnsmasq/doc.html">dnsmasq</ulink>,
126 <ulink url="https://github.com/Distrotech/libaudit">libaudit</ulink>,
127 <ulink url="https://github.com/jpirko/libteam">libteam</ulink>,
128 <ulink url="https://www.samba.org/ftp/ppp/">PPP</ulink>, and
129 <ulink url="https://www.roaringpenguin.com/products/pppoe">RP-PPPoE</ulink>
130 </para>
131
132 <para condition="html" role="usernotes">User Notes:
133 <ulink url="&blfs-wiki;/NetworkManager"/>
134 </para>
135 </sect2>
136
137 <sect2 role="installation">
138 <title>Installation of NetworkManager</title>
139
140 <para>If <xref linkend="qt5"/> is installed and the Qt based
141 examples are desired, fix the configure script:</para>
142
143<screen><userinput>sed -e '/Qt[CDN]/s/Qt/Qt5/g' \
144 -e 's/-qt4/-qt5/' \
145 -e 's/moc_location/host_bins/' \
146 -i examples/C/qt/meson.build</userinput></screen>
147
148 <para>
149 Fix a missing meson.build file for initrd hooks (not used in BLFS):
150 </para>
151
152<screen><userinput>sed '/initrd/d' -i src/meson.build</userinput></screen>
153
154 <para>
155 Install <application>NetworkManager</application> by running the
156 following commands:
157 </para>
158
159<screen revision="sysv"><userinput>mkdir build &amp;&amp;
160cd build &amp;&amp;
161
162CXXFLAGS+="-O2 -fPIC" \
163meson --prefix /usr \
164 --sysconfdir /etc \
165 --localstatedir /var \
166 -Ddocs=true \
167 -Dnmtui=true \
168 -Dppp=false \
169 -Dlibaudit=no \
170 -Dlibnm_glib=true \
171 -Dselinux=false \
172 -Dudev_dir=/lib/udev \
173 -Dsession_tracking=elogind \
174 -Dsystemdsystemunitdir=no \
175 -Dsystemd_journal=false \
176 -Dqt=false \
177 .. &amp;&amp;
178ninja</userinput></screen>
179
180<screen revision="systemd"><userinput>mkdir build &amp;&amp;
181cd build &amp;&amp;
182
183CXXFLAGS+="-O2 -fPIC" \
184meson --prefix /usr \
185 --sysconfdir /etc \
186 --localstatedir /var \
187 -Ddocs=true \
188 -Dnmtui=true \
189 -Dppp=false \
190 -Dlibaudit=no \
191 -Dlibnm_glib=true \
192 -Dselinux=false \
193 -Dqt=false \
194 -Dudev_dir=/lib/udev \
195 -Dsession_tracking=systemd \
196 -Dsystemdsystemunitdir=/lib/systemd/system \
197 .. &amp;&amp;
198ninja</userinput></screen>
199
200 <para>
201 An already active <phrase revision="sysv">graphical</phrase> session
202 with bus address is necessary to run the tests. To test the results,
203 issue: <command>ninja test</command>.
204 </para>
205
206 <para>
207 Now, as the <systemitem class="username">root</systemitem> user:
208 </para>
209
210<screen role="root"><userinput>ninja install &amp;&amp;
211mv -v /usr/share/doc/NetworkManager{,-&NetworkManager-version;}</userinput></screen>
212
213 </sect2>
214
215 <sect2 role="commands">
216 <title>Command Explanations</title>
217
218 <para>
219 <envar>CXXFLAGS="-O2 -fPIC"</envar>: These compiler options are
220 necessary to build the Qt5 based examples.
221 </para>
222
223 <para>
224 <parameter>-Ddocs=true</parameter>: This parameter enable building of
225 man pages and documentation.
226 </para>
227
228 <para>
229 <parameter>-Dnmtui=true</parameter>: This parameter enables building
230 <command>nmtui</command>.
231 </para>
232
233 <para revision="sysv">
234 <parameter>-Dsystemdsystemunitdir=no</parameter> and
235 <parameter>-Dsystemd_journal=false</parameter>: systemd is not
236 used for sysv init systems.
237 </para>
238
239 <para revision="sysv">
240 <parameter>-Dsession_tracking=elogind</parameter>: This switch
241 is used to set <command>elogind</command> as the default
242 program for session tracking.
243 </para>
244
245 <para revision="systemd">
246 <parameter>-Dsession_tracking=systemd</parameter>: This switch
247 is used to set <command>systemd-logind</command> as the default
248 program for session tracking.
249 </para>
250
251 <para revision="systemd">
252 <parameter>-Dsystemdsystemunitdir=/lib/systemd/system</parameter>:
253 This switch is used to set the correct installation directory for
254 systemd units.
255 </para>
256
257 <para>
258 <parameter>-Dppp=false</parameter>: This parameter disables
259 <application>PPP</application> support in
260 <application>NetworkManager</application>.
261 </para>
262
263 <para>
264 <parameter>-Dlibaudit=no</parameter> and
265 <parameter>-Dselinux=false</parameter>: libaudit and SELinux are not used
266 in BLFS.
267 </para>
268
269 <para>
270 <parameter>-Dqt=false</parameter>: disables the
271 <application>QT</application> examples. Omit if you have
272 <application>QT</application> available and wish to install the examples.
273 </para>
274
275 </sect2>
276
277 <sect2 role="configuration">
278 <title>Configuring NetworkManager</title>
279
280 <sect3 id="NetworkManager-config">
281 <title>Config Files</title>
282 <para>
283 <filename>/etc/NetworkManager/NetworkManager.conf</filename>
284 </para>
285
286 <indexterm zone="NetworkManager NetworkManager-config">
287 <primary
288 sortas="e-etc-NetworkManager-NetworkManager.conf">
289 /etc/NetworkManager/NetworkManager.conf</primary>
290 </indexterm>
291
292 </sect3>
293
294 <sect3><title>Configuration Information</title>
295
296 <para>
297 For <application>NetworkManager</application> to work, at least
298 a minimal configuration file must be present. Such file is not
299 installed with <command>make install</command>. Issue the following
300 command as the <systemitem class="username">root</systemitem> user to
301 create minimal <filename>NetworkManager.conf</filename> file:
302 </para>
303
304<screen role="root"><userinput>cat &gt;&gt; /etc/NetworkManager/NetworkManager.conf &lt;&lt; "EOF"
305<literal>[main]
306plugins=keyfile</literal>
307EOF</userinput></screen>
308
309 <para>
310 This file should not be modified directly by users of the system.
311 Instead, system specific changes should be made using configuration
312 files in the
313 <filename class="directory">/etc/NetworkManager/conf.d</filename>
314 direcotry.
315 </para>
316
317 <para>
318 To allow polkit to manage authorizations, add the following
319 configuration file:
320 </para>
321
322<screen role="root"><userinput>cat &gt; /etc/NetworkManager/conf.d/polkit.conf &lt;&lt; "EOF"
323<literal>[main]
324auth-polkit=true</literal>
325EOF</userinput></screen>
326
327 <para>
328 To use something other than the built-in dhcp client (recommended if
329 using only <command>nmcli</command>), use the following configuration
330 (valid values are dhclient, dhcpcd, and internal):
331 </para>
332
333<screen role="nodump"><userinput>cat &gt; /etc/NetworkManager/conf.d/dhcp.conf &lt;&lt; "EOF"
334<literal>[main]
335dhcp=</literal><replaceable>dhclient</replaceable>
336EOF</userinput></screen>
337
338 <para>
339 To prevent <application>NetworkManager</application> from updating the
340 <filename>/etc/resolv.conf</filename> file, add the following
341 configuration file:
342 </para>
343
344<screen role="nodump"><userinput>cat &gt; /etc/NetworkManager/conf.d/no-dns-update.conf &lt;&lt; "EOF"
345<literal>[main]
346dns=none</literal>
347EOF</userinput></screen>
348
349 <para>
350 For additional configuation options, see
351 <command>man 5 NetworkManager.conf</command>.
352 </para>
353
354 <para>
355 To allow regular users permission to configure network connections,
356 you should add them to the
357 <systemitem class="groupname">netdev</systemitem>
358 group, and create a <application>polkit</application> rule that grants
359 access. Run the following commands as the
360 <systemitem class="username">root</systemitem> user:
361 </para>
362
363<screen role="root"><userinput>groupadd -fg 86 netdev &amp;&amp;
364/usr/sbin/usermod -a -G netdev <replaceable>&lt;username&gt;</replaceable>
365
366cat &gt; /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules &lt;&lt; "EOF"
367<literal>polkit.addRule(function(action, subject) {
368 if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 &amp;&amp; subject.isInGroup("netdev")) {
369 return polkit.Result.YES;
370 }
371});</literal>
372EOF</userinput></screen>
373
374 </sect3>
375
376 <sect3 id="NetworkManager-init">
377 <title><phrase revision="sysv">Boot Script</phrase>
378 <phrase revision="systemd">Systemd Unit</phrase></title>
379
380 <para revision="sysv">
381 To automatically start the <command>NetworkManager</command> daemon
382 when the system is rebooted, install the
383 <filename>/etc/rc.d/init.d/networkmanager</filename>bootscript from the
384 <xref linkend="bootscripts"/> package.
385 </para>
386
387 <para revision="systemd">
388 To start the <command>NetworkManager</command> daemon at boot, enable
389 the previously installed systemd unit by running the following command
390 as the <systemitem class="username">root</systemitem> user:
391 </para>
392
393 <note>
394 <para>
395 If using <application>Network Manager</application> to manage
396 an interface, any previous configuration for that interface should be
397 removed, and the interface brought down prior to starting
398 <application>Network Manager</application>.
399 </para>
400 </note>
401
402 <indexterm zone="NetworkManager NetworkManager-init">
403 <primary sortas="f-NetworkManager">NetworkManager</primary>
404 </indexterm>
405
406<screen role="root" revision="sysv"><userinput>make install-networkmanager</userinput></screen>
407
408<screen role="root" revision="systemd"><userinput>systemctl enable NetworkManager</userinput></screen>
409
410 <para revision="systemd">
411 <application>NetworkManager</application> also ships a systemd unit
412 called <filename>NetworkManager-wait-online.service</filename> which
413 can be used to prevent services that require network connectivity
414 from starting until <application>NetworkManager</application> has
415 established the connection. To enable it, run the following command
416 as the <systemitem class="username">root</systemitem> user:
417 </para>
418
419<screen role="root" revision="systemd"><userinput>systemctl enable NetworkManager-wait-online</userinput></screen>
420
421 </sect3>
422
423 </sect2>
424
425 <sect2 role="content">
426 <title>Contents</title>
427
428 <segmentedlist>
429 <segtitle>Installed Programs</segtitle>
430 <segtitle>Installed Libraries</segtitle>
431 <segtitle>Installed Directories</segtitle>
432
433 <seglistitem>
434 <seg>
435 NetworkManager, nmcli, nm-online, nmtui, and, symlinked to nmtui:
436 nmtui-connect, nmtui-edit, and nmtui-hostname
437 </seg>
438 <seg>
439 libnm.so and several modules under /usr/lib/NetworkManager
440 </seg>
441 <seg>
442 /etc/NetworkManager,
443 /usr/include/libnm,
444 /usr/lib/NetworkManager,
445 /usr/share/doc/NetworkManager-&NetworkManager-version;,
446 /usr/share/gtk-doc/html/{libnm,NetworkManager}
447 (if the documentation is built),
448 and
449 /var/lib/NetworkManager
450 </seg>
451 <!-- A lot of libraries were removed here. We should verify compatibilty. -->
452 </seglistitem>
453 </segmentedlist>
454
455 <variablelist>
456 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
457 <?dbfo list-presentation="list"?>
458 <?dbhtml list-presentation="table"?>
459
460 <varlistentry id="nmcli">
461 <term><command>nmcli</command></term>
462 <listitem>
463 <para>
464 is a command-line tool for controlling
465 <application>NetworkManager</application>
466 and getting its status.
467 </para>
468 <indexterm zone="NetworkManager nmcli">
469 <primary sortas="b-nmcli">nmcli</primary>
470 </indexterm>
471 </listitem>
472 </varlistentry>
473
474 <varlistentry id="nm-online">
475 <term><command>nm-online</command></term>
476 <listitem>
477 <para>
478 is a utility to find out whether you are online.
479 </para>
480 <indexterm zone="NetworkManager nm-online">
481 <primary sortas="b-nm-online">nm-online</primary>
482 </indexterm>
483 </listitem>
484 </varlistentry>
485
486 <varlistentry id="nmtui">
487 <term><command>nmtui</command></term>
488 <listitem>
489 <para>
490 is an interactive ncurses based interface for
491 <application>nmcli</application>.
492 </para>
493 <indexterm zone="NetworkManager nmtui">
494 <primary sortas="b-nmtui">nmtui</primary>
495 </indexterm>
496 </listitem>
497 </varlistentry>
498
499 <varlistentry id="nmtui-connect">
500 <term><command>nmtui-connect</command></term>
501 <listitem>
502 <para>
503 is an interactive ncurses based interface connection to
504 activate/deactivate connections.
505 </para>
506 <indexterm zone="NetworkManager nmtui-connect">
507 <primary sortas="b-nmtui-connect">nmtui-connect</primary>
508 </indexterm>
509 </listitem>
510 </varlistentry>
511
512 <varlistentry id="nmtui-edit">
513 <term><command>nmtui-edit</command></term>
514 <listitem>
515 <para>
516 is an interactive ncurses based interface connection editor.
517 </para>
518 <indexterm zone="NetworkManager nmtui-edit">
519 <primary sortas="b-nmtui-edit">nmtui-edit</primary>
520 </indexterm>
521 </listitem>
522 </varlistentry>
523
524 <varlistentry id="nmtui-hostname">
525 <term><command>nmtui-hostname</command></term>
526 <listitem>
527 <para>
528 is an interactive ncurses based interface hostname editor.
529 </para>
530 <indexterm zone="NetworkManager nmtui-hostname">
531 <primary sortas="b-nmtui-hostname">nmtui-hostname</primary>
532 </indexterm>
533 </listitem>
534 </varlistentry>
535
536 <varlistentry id="NetworkManager-prog">
537 <term><command>NetworkManager</command></term>
538 <listitem>
539 <para>
540 is the network management daemon.
541 </para>
542 <indexterm zone="NetworkManager NetworkManager-prog">
543 <primary sortas="b-NetworkManager">NetworkManager</primary>
544 </indexterm>
545 </listitem>
546 </varlistentry>
547
548 <varlistentry id="libnm">
549 <term><filename class="libraryfile">libnm.so</filename></term>
550 <listitem>
551 <para>
552 contains functions used by <application>NetworkManager</application>.
553 </para>
554 <indexterm zone="NetworkManager libnm">
555 <primary sortas="c-libnm">libnm.so</primary>
556 </indexterm>
557 </listitem>
558 </varlistentry>
559
560 </variablelist>
561
562 </sect2>
563
564</sect1>
Note: See TracBrowser for help on using the repository browser.