1186128f7SMauro Carvalho Chehab.. _changes:
2186128f7SMauro Carvalho Chehab
39b4ebd98SJonathan CorbetMinimal requirements to compile the Kernel
4186128f7SMauro Carvalho Chehab++++++++++++++++++++++++++++++++++++++++++
5186128f7SMauro Carvalho Chehab
6186128f7SMauro Carvalho ChehabIntro
7186128f7SMauro Carvalho Chehab=====
8186128f7SMauro Carvalho Chehab
9186128f7SMauro Carvalho ChehabThis document is designed to provide a list of the minimum levels of
105a5866c2SBruno Moreira-Guedessoftware necessary to run the current kernel version.
11186128f7SMauro Carvalho Chehab
12186128f7SMauro Carvalho ChehabThis document is originally based on my "Changes" file for 2.0.x kernels
13186128f7SMauro Carvalho Chehaband therefore owes credit to the same people as that file (Jared Mauch,
14186128f7SMauro Carvalho ChehabAxel Boldt, Alessandro Sigala, and countless other users all over the
15186128f7SMauro Carvalho Chehab'net).
16186128f7SMauro Carvalho Chehab
17186128f7SMauro Carvalho ChehabCurrent Minimal Requirements
18186128f7SMauro Carvalho Chehab****************************
19186128f7SMauro Carvalho Chehab
20186128f7SMauro Carvalho ChehabUpgrade to at **least** these software revisions before thinking you've
21186128f7SMauro Carvalho Chehabencountered a bug!  If you're unsure what version you're currently
22186128f7SMauro Carvalho Chehabrunning, the suggested command should tell you.
23186128f7SMauro Carvalho Chehab
24186128f7SMauro Carvalho ChehabAgain, keep in mind that this list assumes you are already functionally
25186128f7SMauro Carvalho Chehabrunning a Linux kernel.  Also, not all tools are necessary on all
269c3c0c20SArnd Bergmannsystems; obviously, if you don't have any PC Card hardware, for example,
279c3c0c20SArnd Bergmannyou probably needn't concern yourself with pcmciautils.
28186128f7SMauro Carvalho Chehab
29186128f7SMauro Carvalho Chehab====================== ===============  ========================================
30186128f7SMauro Carvalho Chehab        Program        Minimal version       Command to check the version
31186128f7SMauro Carvalho Chehab====================== ===============  ========================================
32118c40b7SArnd BergmannGNU C                  8.1              gcc --version
3320c09892SNathan ChancellorClang/LLVM (optional)  15.0.0           clang --version
3456f64b37SMiguel OjedaRust (optional)        1.78.0           rustc --version
3508ab7865SAakash Sen Sharmabindgen (optional)     0.65.1           bindgen --version
365f99665eSMasahiro YamadaGNU make               4.0              make --version
37da4288b9SMasahiro Yamadabash                   4.2              bash --version
38118c40b7SArnd Bergmannbinutils               2.30             ld -v
39033dba2eSMasahiro Yamadaflex                   2.5.35           flex --version
40033dba2eSMasahiro Yamadabison                  2.0              bison --version
41333b11e5SArnaldo Carvalho de Melopahole                 1.16             pahole --version
42821bd43eSThomas Weißschuhutil-linux             2.10o            mount --version
43934193a6SRandy Dunlapkmod                   13               depmod -V
44186128f7SMauro Carvalho Chehabe2fsprogs              1.41.4           e2fsck -V
45186128f7SMauro Carvalho Chehabjfsutils               1.1.3            fsck.jfs -V
46186128f7SMauro Carvalho Chehabxfsprogs               2.6.0            xfs_db -V
47186128f7SMauro Carvalho Chehabsquashfs-tools         4.0              mksquashfs -version
4841047d53SNihar Chaithanyabtrfs-progs            0.18             btrfs --version
49186128f7SMauro Carvalho Chehabpcmciautils            004              pccardctl -V
50186128f7SMauro Carvalho Chehabquota-tools            3.09             quota -V
51186128f7SMauro Carvalho ChehabPPP                    2.4.0            pppd --version
52186128f7SMauro Carvalho Chehabnfs-utils              1.0.5            showmount --version
53186128f7SMauro Carvalho Chehabprocps                 3.2.0            ps --version
54186128f7SMauro Carvalho Chehabudev                   081              udevd --version
55186128f7SMauro Carvalho Chehabgrub                   0.93             grub --version || grub-install --version
56186128f7SMauro Carvalho Chehabmcelog                 0.6              mcelog --version
57186128f7SMauro Carvalho Chehabiptables               1.4.2            iptables -V
58186128f7SMauro Carvalho Chehabopenssl & libcrypto    1.0.0            openssl version
59186128f7SMauro Carvalho Chehabbc                     1.06.95          bc --version
60d2b23909SMauro Carvalho ChehabSphinx\ [#f1]_         3.4.3            sphinx-build --version
61c584476dSMasahiro YamadaGNU tar                1.28             tar --version
62b230235bSAhmed S. Darwishgtags (optional)       6.6.5            gtags --version
637a23b027SSimon Glassmkimage (optional)     2017.01          mkimage --version
64bc20c56eSMauro Carvalho ChehabPython                 3.9.x            python3 --version
655f5e7344SKris Van HeesGNU AWK (optional)     5.1.0            gawk --version
66186128f7SMauro Carvalho Chehab====================== ===============  ========================================
67186128f7SMauro Carvalho Chehab
68186128f7SMauro Carvalho Chehab.. [#f1] Sphinx is needed only to build the Kernel documentation
69186128f7SMauro Carvalho Chehab
70186128f7SMauro Carvalho ChehabKernel compilation
71186128f7SMauro Carvalho Chehab******************
72186128f7SMauro Carvalho Chehab
73186128f7SMauro Carvalho ChehabGCC
74186128f7SMauro Carvalho Chehab---
75186128f7SMauro Carvalho Chehab
76186128f7SMauro Carvalho ChehabThe gcc version requirements may vary depending on the type of CPU in your
77186128f7SMauro Carvalho Chehabcomputer.
78186128f7SMauro Carvalho Chehab
793519c4d6SNick DesaulniersClang/LLVM (optional)
803519c4d6SNick Desaulniers---------------------
813519c4d6SNick Desaulniers
823519c4d6SNick DesaulniersThe latest formal release of clang and LLVM utils (according to
833519c4d6SNick Desaulniers`releases.llvm.org <https://releases.llvm.org>`_) are supported for building
843519c4d6SNick Desaulnierskernels. Older releases aren't guaranteed to work, and we may drop workarounds
853519c4d6SNick Desaulniersfrom the kernel that were used to support older versions. Please see additional
863519c4d6SNick Desaulniersdocs on :ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
873519c4d6SNick Desaulniers
88d07479b2SMiguel OjedaRust (optional)
89d07479b2SMiguel Ojeda---------------
90d07479b2SMiguel Ojeda
9163b27f4aSMiguel OjedaA recent version of the Rust compiler is required.
92d07479b2SMiguel Ojeda
93d07479b2SMiguel OjedaPlease see Documentation/rust/quick-start.rst for instructions on how to
94d07479b2SMiguel Ojedasatisfy the build requirements of Rust support. In particular, the ``Makefile``
95d07479b2SMiguel Ojedatarget ``rustavailable`` is useful to check why the Rust toolchain may not
96d07479b2SMiguel Ojedabe detected.
97d07479b2SMiguel Ojeda
98d07479b2SMiguel Ojedabindgen (optional)
99d07479b2SMiguel Ojeda------------------
100d07479b2SMiguel Ojeda
101d07479b2SMiguel Ojeda``bindgen`` is used to generate the Rust bindings to the C side of the kernel.
102d07479b2SMiguel OjedaIt depends on ``libclang``.
103d07479b2SMiguel Ojeda
104186128f7SMauro Carvalho ChehabMake
105186128f7SMauro Carvalho Chehab----
106186128f7SMauro Carvalho Chehab
1075f99665eSMasahiro YamadaYou will need GNU make 4.0 or later to build the kernel.
108186128f7SMauro Carvalho Chehab
109da4288b9SMasahiro YamadaBash
110da4288b9SMasahiro Yamada----
111da4288b9SMasahiro Yamada
112da4288b9SMasahiro YamadaSome bash scripts are used for the kernel build.
113da4288b9SMasahiro YamadaBash 4.2 or newer is needed.
114da4288b9SMasahiro Yamada
115186128f7SMauro Carvalho ChehabBinutils
116186128f7SMauro Carvalho Chehab--------
117186128f7SMauro Carvalho Chehab
11828d51df0SArnd BergmannBinutils 2.30 or newer is needed to build the kernel.
119186128f7SMauro Carvalho Chehab
1204ab3b801SRandy Dunlappkg-config
1214ab3b801SRandy Dunlap----------
1224ab3b801SRandy Dunlap
1234ab3b801SRandy DunlapThe build system, as of 4.18, requires pkg-config to check for installed
1244ab3b801SRandy Dunlapkconfig tools and to determine flags settings for use in
125fd65465bSMasahiro Yamada'make {g,x}config'.  Previously pkg-config was being used but not
1264ab3b801SRandy Dunlapverified or documented.
1274ab3b801SRandy Dunlap
128033dba2eSMasahiro YamadaFlex
129033dba2eSMasahiro Yamada----
130033dba2eSMasahiro Yamada
131033dba2eSMasahiro YamadaSince Linux 4.16, the build system generates lexical analyzers
132033dba2eSMasahiro Yamadaduring build.  This requires flex 2.5.35 or later.
133033dba2eSMasahiro Yamada
134033dba2eSMasahiro Yamada
135033dba2eSMasahiro YamadaBison
136033dba2eSMasahiro Yamada-----
137033dba2eSMasahiro Yamada
138033dba2eSMasahiro YamadaSince Linux 4.16, the build system generates parsers
139033dba2eSMasahiro Yamadaduring build.  This requires bison 2.0 or later.
140033dba2eSMasahiro Yamada
14140be2369SThorsten Blumpahole
14240be2369SThorsten Blum------
143333b11e5SArnaldo Carvalho de Melo
144333b11e5SArnaldo Carvalho de MeloSince Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system
145333b11e5SArnaldo Carvalho de Melogenerates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel
146333b11e5SArnaldo Carvalho de Melomodules as well.  This requires pahole v1.16 or later.
147333b11e5SArnaldo Carvalho de Melo
148333b11e5SArnaldo Carvalho de MeloIt is found in the 'dwarves' or 'pahole' distro packages or from
149333b11e5SArnaldo Carvalho de Melohttps://fedorapeople.org/~acme/dwarves/.
150333b11e5SArnaldo Carvalho de Melo
151186128f7SMauro Carvalho ChehabPerl
152186128f7SMauro Carvalho Chehab----
153186128f7SMauro Carvalho Chehab
154186128f7SMauro Carvalho ChehabYou will need perl 5 and the following modules: ``Getopt::Long``,
155186128f7SMauro Carvalho Chehab``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
156186128f7SMauro Carvalho Chehab
157bc20c56eSMauro Carvalho ChehabPython
158bc20c56eSMauro Carvalho Chehab------
159bc20c56eSMauro Carvalho Chehab
160bc20c56eSMauro Carvalho ChehabSeveral config options require it: it is required for arm/arm64
161bc20c56eSMauro Carvalho Chehabdefault configs, CONFIG_LTO_CLANG, some DRM optional configs,
162bc20c56eSMauro Carvalho Chehabthe kernel-doc tool, and docs build (Sphinx), among others.
163bc20c56eSMauro Carvalho Chehab
164186128f7SMauro Carvalho ChehabBC
165186128f7SMauro Carvalho Chehab--
166186128f7SMauro Carvalho Chehab
167186128f7SMauro Carvalho ChehabYou will need bc to build kernels 3.10 and higher
168186128f7SMauro Carvalho Chehab
169186128f7SMauro Carvalho Chehab
170186128f7SMauro Carvalho ChehabOpenSSL
171186128f7SMauro Carvalho Chehab-------
172186128f7SMauro Carvalho Chehab
173186128f7SMauro Carvalho ChehabModule signing and external certificate handling use the OpenSSL program and
174186128f7SMauro Carvalho Chehabcrypto library to do key creation and signature generation.
175186128f7SMauro Carvalho Chehab
176186128f7SMauro Carvalho ChehabYou will need openssl to build kernels 3.7 and higher if module signing is
177186128f7SMauro Carvalho Chehabenabled.  You will also need openssl development packages to build kernels 4.3
178186128f7SMauro Carvalho Chehaband higher.
179186128f7SMauro Carvalho Chehab
180c584476dSMasahiro YamadaTar
181c584476dSMasahiro Yamada---
182c584476dSMasahiro Yamada
183c584476dSMasahiro YamadaGNU tar is needed if you want to enable access to the kernel headers via sysfs
184c584476dSMasahiro Yamada(CONFIG_IKHEADERS).
185c584476dSMasahiro Yamada
186b230235bSAhmed S. Darwishgtags / GNU GLOBAL (optional)
187b230235bSAhmed S. Darwish-----------------------------
188b230235bSAhmed S. Darwish
189b230235bSAhmed S. DarwishThe kernel build requires GNU GLOBAL version 6.6.5 or later to generate
190b230235bSAhmed S. Darwishtag files through ``make gtags``.  This is due to its use of the gtags
191b230235bSAhmed S. Darwish``-C (--directory)`` flag.
192186128f7SMauro Carvalho Chehab
1937a23b027SSimon Glassmkimage
1947a23b027SSimon Glass-------
1957a23b027SSimon Glass
1967a23b027SSimon GlassThis tool is used when building a Flat Image Tree (FIT), commonly used on ARM
1977a23b027SSimon Glassplatforms. The tool is available via the ``u-boot-tools`` package or can be
1987a23b027SSimon Glassbuilt from the U-Boot source code. See the instructions at
1997a23b027SSimon Glasshttps://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linux
2007a23b027SSimon Glass
2015f5e7344SKris Van HeesGNU AWK
2025f5e7344SKris Van Hees-------
2035f5e7344SKris Van Hees
2045f5e7344SKris Van HeesGNU AWK is needed if you want kernel builds to generate address range data for
2055f5e7344SKris Van Heesbuiltin modules (CONFIG_BUILTIN_MODULE_RANGES).
2065f5e7344SKris Van Hees
207186128f7SMauro Carvalho ChehabSystem utilities
208186128f7SMauro Carvalho Chehab****************
209186128f7SMauro Carvalho Chehab
210186128f7SMauro Carvalho ChehabArchitectural changes
211186128f7SMauro Carvalho Chehab---------------------
212186128f7SMauro Carvalho Chehab
213186128f7SMauro Carvalho ChehabDevFS has been obsoleted in favour of udev
214e7b4311eSAlexander A. Klimov(https://www.kernel.org/pub/linux/utils/kernel/hotplug/)
215186128f7SMauro Carvalho Chehab
216186128f7SMauro Carvalho Chehab32-bit UID support is now in place.  Have fun!
217186128f7SMauro Carvalho Chehab
218186128f7SMauro Carvalho ChehabLinux documentation for functions is transitioning to inline
219186128f7SMauro Carvalho Chehabdocumentation via specially-formatted comments near their
220ff41c419SMauro Carvalho Chehabdefinitions in the source.  These comments can be combined with ReST
221ff41c419SMauro Carvalho Chehabfiles the Documentation/ directory to make enriched documentation, which can
222ff41c419SMauro Carvalho Chehabthen be converted to PostScript, HTML, LaTex, ePUB and PDF files.
223ff41c419SMauro Carvalho ChehabIn order to convert from ReST format to a format of your choice, you'll need
224ff41c419SMauro Carvalho ChehabSphinx.
225186128f7SMauro Carvalho Chehab
226186128f7SMauro Carvalho ChehabUtil-linux
227186128f7SMauro Carvalho Chehab----------
228186128f7SMauro Carvalho Chehab
229186128f7SMauro Carvalho ChehabNew versions of util-linux provide ``fdisk`` support for larger disks,
230186128f7SMauro Carvalho Chehabsupport new options to mount, recognize more supported partition
231821bd43eSThomas Weißschuhtypes, and similar goodies.
232186128f7SMauro Carvalho ChehabYou'll probably want to upgrade.
233186128f7SMauro Carvalho Chehab
234186128f7SMauro Carvalho ChehabKsymoops
235186128f7SMauro Carvalho Chehab--------
236186128f7SMauro Carvalho Chehab
237186128f7SMauro Carvalho ChehabIf the unthinkable happens and your kernel oopses, you may need the
238186128f7SMauro Carvalho Chehabksymoops tool to decode it, but in most cases you don't.
239186128f7SMauro Carvalho ChehabIt is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
240186128f7SMauro Carvalho Chehabthat it produces readable dumps that can be used as-is (this also
241186128f7SMauro Carvalho Chehabproduces better output than ksymoops).  If for some reason your kernel
242186128f7SMauro Carvalho Chehabis not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
243186128f7SMauro Carvalho Chehabreproduce the Oops with that option, then you can still decode that Oops
244186128f7SMauro Carvalho Chehabwith ksymoops.
245186128f7SMauro Carvalho Chehab
246186128f7SMauro Carvalho ChehabMkinitrd
247186128f7SMauro Carvalho Chehab--------
248186128f7SMauro Carvalho Chehab
249186128f7SMauro Carvalho ChehabThese changes to the ``/lib/modules`` file tree layout also require that
250186128f7SMauro Carvalho Chehabmkinitrd be upgraded.
251186128f7SMauro Carvalho Chehab
252186128f7SMauro Carvalho ChehabE2fsprogs
253186128f7SMauro Carvalho Chehab---------
254186128f7SMauro Carvalho Chehab
255186128f7SMauro Carvalho ChehabThe latest version of ``e2fsprogs`` fixes several bugs in fsck and
256186128f7SMauro Carvalho Chehabdebugfs.  Obviously, it's a good idea to upgrade.
257186128f7SMauro Carvalho Chehab
258186128f7SMauro Carvalho ChehabJFSutils
259186128f7SMauro Carvalho Chehab--------
260186128f7SMauro Carvalho Chehab
261186128f7SMauro Carvalho ChehabThe ``jfsutils`` package contains the utilities for the file system.
262186128f7SMauro Carvalho ChehabThe following utilities are available:
263186128f7SMauro Carvalho Chehab
264186128f7SMauro Carvalho Chehab- ``fsck.jfs`` - initiate replay of the transaction log, and check
265186128f7SMauro Carvalho Chehab  and repair a JFS formatted partition.
266186128f7SMauro Carvalho Chehab
267186128f7SMauro Carvalho Chehab- ``mkfs.jfs`` - create a JFS formatted partition.
268186128f7SMauro Carvalho Chehab
269186128f7SMauro Carvalho Chehab- other file system utilities are also available in this package.
270186128f7SMauro Carvalho Chehab
271186128f7SMauro Carvalho ChehabXfsprogs
272186128f7SMauro Carvalho Chehab--------
273186128f7SMauro Carvalho Chehab
274186128f7SMauro Carvalho ChehabThe latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
275186128f7SMauro Carvalho Chehab``xfs_repair`` utilities, among others, for the XFS filesystem.  It is
276186128f7SMauro Carvalho Chehabarchitecture independent and any version from 2.0.0 onward should
277186128f7SMauro Carvalho Chehabwork correctly with this version of the XFS kernel code (2.6.0 or
278186128f7SMauro Carvalho Chehablater is recommended, due to some significant improvements).
279186128f7SMauro Carvalho Chehab
280186128f7SMauro Carvalho ChehabPCMCIAutils
281186128f7SMauro Carvalho Chehab-----------
282186128f7SMauro Carvalho Chehab
283186128f7SMauro Carvalho ChehabPCMCIAutils replaces ``pcmcia-cs``. It properly sets up
284186128f7SMauro Carvalho ChehabPCMCIA sockets at system startup and loads the appropriate modules
285186128f7SMauro Carvalho Chehabfor 16-bit PCMCIA devices if the kernel is modularized and the hotplug
286186128f7SMauro Carvalho Chehabsubsystem is used.
287186128f7SMauro Carvalho Chehab
288186128f7SMauro Carvalho ChehabQuota-tools
289186128f7SMauro Carvalho Chehab-----------
290186128f7SMauro Carvalho Chehab
291186128f7SMauro Carvalho ChehabSupport for 32 bit uid's and gid's is required if you want to use
292186128f7SMauro Carvalho Chehabthe newer version 2 quota format.  Quota-tools version 3.07 and
293186128f7SMauro Carvalho Chehabnewer has this support.  Use the recommended version or newer
294186128f7SMauro Carvalho Chehabfrom the table above.
295186128f7SMauro Carvalho Chehab
296186128f7SMauro Carvalho ChehabIntel IA32 microcode
297186128f7SMauro Carvalho Chehab--------------------
298186128f7SMauro Carvalho Chehab
299186128f7SMauro Carvalho ChehabA driver has been added to allow updating of Intel IA32 microcode,
300186128f7SMauro Carvalho Chehabaccessible as a normal (misc) character device.  If you are not using
301186128f7SMauro Carvalho Chehabudev you may need to::
302186128f7SMauro Carvalho Chehab
303186128f7SMauro Carvalho Chehab  mkdir /dev/cpu
304186128f7SMauro Carvalho Chehab  mknod /dev/cpu/microcode c 10 184
305186128f7SMauro Carvalho Chehab  chmod 0644 /dev/cpu/microcode
306186128f7SMauro Carvalho Chehab
307186128f7SMauro Carvalho Chehabas root before you can use this.  You'll probably also want to
308186128f7SMauro Carvalho Chehabget the user-space microcode_ctl utility to use with this.
309186128f7SMauro Carvalho Chehab
310186128f7SMauro Carvalho Chehabudev
311186128f7SMauro Carvalho Chehab----
312186128f7SMauro Carvalho Chehab
313186128f7SMauro Carvalho Chehab``udev`` is a userspace application for populating ``/dev`` dynamically with
314186128f7SMauro Carvalho Chehabonly entries for devices actually present. ``udev`` replaces the basic
315186128f7SMauro Carvalho Chehabfunctionality of devfs, while allowing persistent device naming for
316186128f7SMauro Carvalho Chehabdevices.
317186128f7SMauro Carvalho Chehab
318186128f7SMauro Carvalho ChehabFUSE
319186128f7SMauro Carvalho Chehab----
320186128f7SMauro Carvalho Chehab
321186128f7SMauro Carvalho ChehabNeeds libfuse 2.4.0 or later.  Absolute minimum is 2.3.0 but mount
322186128f7SMauro Carvalho Chehaboptions ``direct_io`` and ``kernel_cache`` won't work.
323186128f7SMauro Carvalho Chehab
324186128f7SMauro Carvalho ChehabNetworking
325186128f7SMauro Carvalho Chehab**********
326186128f7SMauro Carvalho Chehab
327186128f7SMauro Carvalho ChehabGeneral changes
328186128f7SMauro Carvalho Chehab---------------
329186128f7SMauro Carvalho Chehab
330186128f7SMauro Carvalho ChehabIf you have advanced network configuration needs, you should probably
331186128f7SMauro Carvalho Chehabconsider using the network tools from ip-route2.
332186128f7SMauro Carvalho Chehab
333186128f7SMauro Carvalho ChehabPacket Filter / NAT
334186128f7SMauro Carvalho Chehab-------------------
335186128f7SMauro Carvalho ChehabThe packet filtering and NAT code uses the same tools like the previous 2.4.x
336186128f7SMauro Carvalho Chehabkernel series (iptables).  It still includes backwards-compatibility modules
337186128f7SMauro Carvalho Chehabfor 2.2.x-style ipchains and 2.0.x-style ipfwadm.
338186128f7SMauro Carvalho Chehab
339186128f7SMauro Carvalho ChehabPPP
340186128f7SMauro Carvalho Chehab---
341186128f7SMauro Carvalho Chehab
342186128f7SMauro Carvalho ChehabThe PPP driver has been restructured to support multilink and to
343186128f7SMauro Carvalho Chehabenable it to operate over diverse media layers.  If you use PPP,
344186128f7SMauro Carvalho Chehabupgrade pppd to at least 2.4.0.
345186128f7SMauro Carvalho Chehab
346186128f7SMauro Carvalho ChehabIf you are not using udev, you must have the device file /dev/ppp
347186128f7SMauro Carvalho Chehabwhich can be made by::
348186128f7SMauro Carvalho Chehab
349186128f7SMauro Carvalho Chehab  mknod /dev/ppp c 108 0
350186128f7SMauro Carvalho Chehab
351186128f7SMauro Carvalho Chehabas root.
352186128f7SMauro Carvalho Chehab
353186128f7SMauro Carvalho ChehabNFS-utils
354186128f7SMauro Carvalho Chehab---------
355186128f7SMauro Carvalho Chehab
356186128f7SMauro Carvalho ChehabIn ancient (2.4 and earlier) kernels, the nfs server needed to know
357186128f7SMauro Carvalho Chehababout any client that expected to be able to access files via NFS.  This
358186128f7SMauro Carvalho Chehabinformation would be given to the kernel by ``mountd`` when the client
359186128f7SMauro Carvalho Chehabmounted the filesystem, or by ``exportfs`` at system startup.  exportfs
360186128f7SMauro Carvalho Chehabwould take information about active clients from ``/var/lib/nfs/rmtab``.
361186128f7SMauro Carvalho Chehab
362186128f7SMauro Carvalho ChehabThis approach is quite fragile as it depends on rmtab being correct
363186128f7SMauro Carvalho Chehabwhich is not always easy, particularly when trying to implement
364186128f7SMauro Carvalho Chehabfail-over.  Even when the system is working well, ``rmtab`` suffers from
365186128f7SMauro Carvalho Chehabgetting lots of old entries that never get removed.
366186128f7SMauro Carvalho Chehab
367186128f7SMauro Carvalho ChehabWith modern kernels we have the option of having the kernel tell mountd
368186128f7SMauro Carvalho Chehabwhen it gets a request from an unknown host, and mountd can give
369186128f7SMauro Carvalho Chehabappropriate export information to the kernel.  This removes the
370186128f7SMauro Carvalho Chehabdependency on ``rmtab`` and means that the kernel only needs to know about
371186128f7SMauro Carvalho Chehabcurrently active clients.
372186128f7SMauro Carvalho Chehab
373186128f7SMauro Carvalho ChehabTo enable this new functionality, you need to::
374186128f7SMauro Carvalho Chehab
375186128f7SMauro Carvalho Chehab  mount -t nfsd nfsd /proc/fs/nfsd
376186128f7SMauro Carvalho Chehab
377186128f7SMauro Carvalho Chehabbefore running exportfs or mountd.  It is recommended that all NFS
378186128f7SMauro Carvalho Chehabservices be protected from the internet-at-large by a firewall where
379186128f7SMauro Carvalho Chehabthat is possible.
380186128f7SMauro Carvalho Chehab
381186128f7SMauro Carvalho Chehabmcelog
382186128f7SMauro Carvalho Chehab------
383186128f7SMauro Carvalho Chehab
384186128f7SMauro Carvalho ChehabOn x86 kernels the mcelog utility is needed to process and log machine check
385186128f7SMauro Carvalho Chehabevents when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
386186128f7SMauro Carvalho Chehabreported by the CPU. Processing them is strongly encouraged.
387186128f7SMauro Carvalho Chehab
388186128f7SMauro Carvalho ChehabKernel documentation
389186128f7SMauro Carvalho Chehab********************
390186128f7SMauro Carvalho Chehab
391186128f7SMauro Carvalho ChehabSphinx
392186128f7SMauro Carvalho Chehab------
393186128f7SMauro Carvalho Chehab
394f77af637SFederico VagaPlease see :ref:`sphinx_install` in :ref:`Documentation/doc-guide/sphinx.rst <sphinxdoc>`
395b8b07b5cSMauro Carvalho Chehabfor details about Sphinx requirements.
396186128f7SMauro Carvalho Chehab
397d07479b2SMiguel Ojedarustdoc
398d07479b2SMiguel Ojeda-------
399d07479b2SMiguel Ojeda
400d07479b2SMiguel Ojeda``rustdoc`` is used to generate the documentation for Rust code. Please see
401d07479b2SMiguel OjedaDocumentation/rust/general-information.rst for more information.
402d07479b2SMiguel Ojeda
403186128f7SMauro Carvalho ChehabGetting updated software
404186128f7SMauro Carvalho Chehab========================
405186128f7SMauro Carvalho Chehab
406186128f7SMauro Carvalho ChehabKernel compilation
407186128f7SMauro Carvalho Chehab******************
408186128f7SMauro Carvalho Chehab
409186128f7SMauro Carvalho Chehabgcc
410186128f7SMauro Carvalho Chehab---
411186128f7SMauro Carvalho Chehab
412186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/gcc/>
413186128f7SMauro Carvalho Chehab
4143519c4d6SNick DesaulniersClang/LLVM
4153519c4d6SNick Desaulniers----------
4163519c4d6SNick Desaulniers
4173519c4d6SNick Desaulniers- :ref:`Getting LLVM <getting_llvm>`.
4183519c4d6SNick Desaulniers
419d07479b2SMiguel OjedaRust
420d07479b2SMiguel Ojeda----
421d07479b2SMiguel Ojeda
422d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst.
423d07479b2SMiguel Ojeda
424d07479b2SMiguel Ojedabindgen
425d07479b2SMiguel Ojeda-------
426d07479b2SMiguel Ojeda
427d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst.
428d07479b2SMiguel Ojeda
429186128f7SMauro Carvalho ChehabMake
430186128f7SMauro Carvalho Chehab----
431186128f7SMauro Carvalho Chehab
432186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/make/>
433186128f7SMauro Carvalho Chehab
434da4288b9SMasahiro YamadaBash
435da4288b9SMasahiro Yamada----
436da4288b9SMasahiro Yamada
437da4288b9SMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bash/>
438da4288b9SMasahiro Yamada
439186128f7SMauro Carvalho ChehabBinutils
440186128f7SMauro Carvalho Chehab--------
441186128f7SMauro Carvalho Chehab
4423bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/devel/binutils/>
443186128f7SMauro Carvalho Chehab
444033dba2eSMasahiro YamadaFlex
445033dba2eSMasahiro Yamada----
446033dba2eSMasahiro Yamada
447033dba2eSMasahiro Yamada- <https://github.com/westes/flex/releases>
448033dba2eSMasahiro Yamada
449033dba2eSMasahiro YamadaBison
450033dba2eSMasahiro Yamada-----
451033dba2eSMasahiro Yamada
452033dba2eSMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bison/>
453033dba2eSMasahiro Yamada
454186128f7SMauro Carvalho ChehabOpenSSL
455186128f7SMauro Carvalho Chehab-------
456186128f7SMauro Carvalho Chehab
457186128f7SMauro Carvalho Chehab- <https://www.openssl.org/>
458186128f7SMauro Carvalho Chehab
459186128f7SMauro Carvalho ChehabSystem utilities
460186128f7SMauro Carvalho Chehab****************
461186128f7SMauro Carvalho Chehab
462186128f7SMauro Carvalho ChehabUtil-linux
463186128f7SMauro Carvalho Chehab----------
464186128f7SMauro Carvalho Chehab
4653bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/util-linux/>
466186128f7SMauro Carvalho Chehab
467934193a6SRandy DunlapKmod
468934193a6SRandy Dunlap----
469934193a6SRandy Dunlap
470934193a6SRandy Dunlap- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
471934193a6SRandy Dunlap- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
472934193a6SRandy Dunlap
473186128f7SMauro Carvalho ChehabKsymoops
474186128f7SMauro Carvalho Chehab--------
475186128f7SMauro Carvalho Chehab
4763bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
477186128f7SMauro Carvalho Chehab
478186128f7SMauro Carvalho ChehabMkinitrd
479186128f7SMauro Carvalho Chehab--------
480186128f7SMauro Carvalho Chehab
481186128f7SMauro Carvalho Chehab- <https://code.launchpad.net/initrd-tools/main>
482186128f7SMauro Carvalho Chehab
483186128f7SMauro Carvalho ChehabE2fsprogs
484186128f7SMauro Carvalho Chehab---------
485186128f7SMauro Carvalho Chehab
486599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
487599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
488186128f7SMauro Carvalho Chehab
489186128f7SMauro Carvalho ChehabJFSutils
490186128f7SMauro Carvalho Chehab--------
491186128f7SMauro Carvalho Chehab
492383f3088SSeongJae Park- <https://jfs.sourceforge.net/>
493186128f7SMauro Carvalho Chehab
494186128f7SMauro Carvalho ChehabXfsprogs
495186128f7SMauro Carvalho Chehab--------
496186128f7SMauro Carvalho Chehab
497599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
498599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
499186128f7SMauro Carvalho Chehab
500186128f7SMauro Carvalho ChehabPcmciautils
501186128f7SMauro Carvalho Chehab-----------
502186128f7SMauro Carvalho Chehab
5033bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
504186128f7SMauro Carvalho Chehab
505186128f7SMauro Carvalho ChehabQuota-tools
506186128f7SMauro Carvalho Chehab-----------
507186128f7SMauro Carvalho Chehab
508383f3088SSeongJae Park- <https://sourceforge.net/projects/linuxquota/>
509186128f7SMauro Carvalho Chehab
510186128f7SMauro Carvalho Chehab
511186128f7SMauro Carvalho ChehabIntel P6 microcode
512186128f7SMauro Carvalho Chehab------------------
513186128f7SMauro Carvalho Chehab
514186128f7SMauro Carvalho Chehab- <https://downloadcenter.intel.com/>
515186128f7SMauro Carvalho Chehab
516186128f7SMauro Carvalho Chehabudev
517186128f7SMauro Carvalho Chehab----
518186128f7SMauro Carvalho Chehab
519e7b4311eSAlexander A. Klimov- <https://www.freedesktop.org/software/systemd/man/udev.html>
520186128f7SMauro Carvalho Chehab
521186128f7SMauro Carvalho ChehabFUSE
522186128f7SMauro Carvalho Chehab----
523186128f7SMauro Carvalho Chehab
52486afad7dSMartin Kepplinger- <https://github.com/libfuse/libfuse/releases>
525186128f7SMauro Carvalho Chehab
526186128f7SMauro Carvalho Chehabmcelog
527186128f7SMauro Carvalho Chehab------
528186128f7SMauro Carvalho Chehab
529383f3088SSeongJae Park- <https://www.mcelog.org/>
530186128f7SMauro Carvalho Chehab
531186128f7SMauro Carvalho ChehabNetworking
532186128f7SMauro Carvalho Chehab**********
533186128f7SMauro Carvalho Chehab
534186128f7SMauro Carvalho ChehabPPP
535186128f7SMauro Carvalho Chehab---
536186128f7SMauro Carvalho Chehab
537599e6f8dSRandy Dunlap- <https://download.samba.org/pub/ppp/>
538599e6f8dSRandy Dunlap- <https://git.ozlabs.org/?p=ppp.git>
539599e6f8dSRandy Dunlap- <https://github.com/paulusmack/ppp/>
540186128f7SMauro Carvalho Chehab
541186128f7SMauro Carvalho ChehabNFS-utils
542186128f7SMauro Carvalho Chehab---------
543186128f7SMauro Carvalho Chehab
544383f3088SSeongJae Park- <https://sourceforge.net/project/showfiles.php?group_id=14>
545383f3088SSeongJae Park- <https://nfs.sourceforge.net/>
546186128f7SMauro Carvalho Chehab
547186128f7SMauro Carvalho ChehabIptables
548186128f7SMauro Carvalho Chehab--------
549186128f7SMauro Carvalho Chehab
550599e6f8dSRandy Dunlap- <https://netfilter.org/projects/iptables/index.html>
551186128f7SMauro Carvalho Chehab
552186128f7SMauro Carvalho ChehabIp-route2
553186128f7SMauro Carvalho Chehab---------
554186128f7SMauro Carvalho Chehab
555186128f7SMauro Carvalho Chehab- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
556186128f7SMauro Carvalho Chehab
557186128f7SMauro Carvalho ChehabOProfile
558186128f7SMauro Carvalho Chehab--------
559186128f7SMauro Carvalho Chehab
560383f3088SSeongJae Park- <https://oprofile.sf.net/download/>
561186128f7SMauro Carvalho Chehab
562186128f7SMauro Carvalho ChehabKernel documentation
563186128f7SMauro Carvalho Chehab********************
564186128f7SMauro Carvalho Chehab
565186128f7SMauro Carvalho ChehabSphinx
566186128f7SMauro Carvalho Chehab------
567186128f7SMauro Carvalho Chehab
568e7b4311eSAlexander A. Klimov- <https://www.sphinx-doc.org/>
569