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
22d8a224f5SManuel Ebnerrunning, the suggested command should tell you. For a list of the programs
23d8a224f5SManuel Ebneron your system including their version execute ./scripts/ver_linux
24186128f7SMauro Carvalho Chehab
25186128f7SMauro Carvalho ChehabAgain, keep in mind that this list assumes you are already functionally
26186128f7SMauro Carvalho Chehabrunning a Linux kernel.  Also, not all tools are necessary on all
279c3c0c20SArnd Bergmannsystems; obviously, if you don't have any PC Card hardware, for example,
28d8a224f5SManuel Ebneryou probably do not need to concern yourself with pcmciautils.
29186128f7SMauro Carvalho Chehab
30186128f7SMauro Carvalho Chehab====================== ===============  ========================================
31186128f7SMauro Carvalho Chehab        Program        Minimal version       Command to check the version
32186128f7SMauro Carvalho Chehab====================== ===============  ========================================
33da4288b9SMasahiro Yamadabash                   4.2              bash --version
34186128f7SMauro Carvalho Chehabbc                     1.06.95          bc --version
355181afcdSLinus Torvaldsbindgen (optional)     0.71.1           bindgen --version
36ece7e57aSManuel Ebnerbinutils               2.30             ld -v
37ece7e57aSManuel Ebnerbison                  2.0              bison --version
38ece7e57aSManuel Ebnerbtrfs-progs            0.18             btrfs --version
39ce3267a3SNathan ChancellorClang/LLVM (optional)  17.0.1           clang --version
40ece7e57aSManuel Ebnere2fsprogs              1.41.4           e2fsck -V
41ece7e57aSManuel Ebnerflex                   2.5.35           flex --version
42d8a224f5SManuel Ebnergdb                    7.2              gdb --version
43ece7e57aSManuel EbnerGNU awk (optional)     5.1.0            gawk --version
44ece7e57aSManuel EbnerGNU C                  8.1              gcc --version
45ece7e57aSManuel EbnerGNU make               4.0              make --version
46c584476dSMasahiro YamadaGNU tar                1.28             tar --version
47ece7e57aSManuel EbnerGRUB                   0.93             grub --version || grub-install --version
48b230235bSAhmed S. Darwishgtags (optional)       6.6.5            gtags --version
49ece7e57aSManuel Ebneriptables               1.4.2            iptables -V
50ece7e57aSManuel Ebnerjfsutils               1.1.3            fsck.jfs -V
51ece7e57aSManuel Ebnerkmod                   13               kmod -V
52ece7e57aSManuel Ebnermcelog                 0.6              mcelog --version
537a23b027SSimon Glassmkimage (optional)     2017.01          mkimage --version
54ece7e57aSManuel Ebnernfs-utils              1.0.5            showmount --version
55ece7e57aSManuel Ebneropenssl & libcrypto    1.0.0            openssl version
562c1ccd9aSZhan Xushengpahole                 1.26             pahole --version
57ece7e57aSManuel Ebnerpcmciautils            004              pccardctl -V
58ece7e57aSManuel EbnerPPP                    2.4.0            pppd --version
59ece7e57aSManuel Ebnerprocps                 3.2.0            ps --version
60bc20c56eSMauro Carvalho ChehabPython                 3.9.x            python3 --version
61ece7e57aSManuel Ebnerquota-tools            3.09             quota -V
625181afcdSLinus TorvaldsRust (optional)        1.85.0           rustc --version
63ece7e57aSManuel EbnerSphinx\ [#f1]_         3.4.3            sphinx-build --version
64ece7e57aSManuel Ebnersquashfs-tools         4.0              mksquashfs -version
65ece7e57aSManuel Ebnerudev                   081              udevadm --version
66ece7e57aSManuel Ebnerutil-linux             2.10o            mount --version
67ece7e57aSManuel Ebnerxfsprogs               2.6.0            xfs_db -V
68186128f7SMauro Carvalho Chehab====================== ===============  ========================================
69186128f7SMauro Carvalho Chehab
70186128f7SMauro Carvalho Chehab.. [#f1] Sphinx is needed only to build the Kernel documentation
71186128f7SMauro Carvalho Chehab
72186128f7SMauro Carvalho ChehabKernel compilation
73186128f7SMauro Carvalho Chehab******************
74186128f7SMauro Carvalho Chehab
75186128f7SMauro Carvalho ChehabGCC
76186128f7SMauro Carvalho Chehab---
77186128f7SMauro Carvalho Chehab
78186128f7SMauro Carvalho ChehabThe gcc version requirements may vary depending on the type of CPU in your
79186128f7SMauro Carvalho Chehabcomputer.
80186128f7SMauro Carvalho Chehab
813519c4d6SNick DesaulniersClang/LLVM (optional)
823519c4d6SNick Desaulniers---------------------
833519c4d6SNick Desaulniers
843519c4d6SNick DesaulniersThe latest formal release of clang and LLVM utils (according to
853519c4d6SNick Desaulniers`releases.llvm.org <https://releases.llvm.org>`_) are supported for building
863519c4d6SNick Desaulnierskernels. Older releases aren't guaranteed to work, and we may drop workarounds
873519c4d6SNick Desaulniersfrom the kernel that were used to support older versions. Please see additional
883519c4d6SNick Desaulniersdocs on :ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
893519c4d6SNick Desaulniers
90d07479b2SMiguel OjedaRust (optional)
91d07479b2SMiguel Ojeda---------------
92d07479b2SMiguel Ojeda
9363b27f4aSMiguel OjedaA recent version of the Rust compiler is required.
94d07479b2SMiguel Ojeda
95d07479b2SMiguel OjedaPlease see Documentation/rust/quick-start.rst for instructions on how to
96d07479b2SMiguel Ojedasatisfy the build requirements of Rust support. In particular, the ``Makefile``
97d07479b2SMiguel Ojedatarget ``rustavailable`` is useful to check why the Rust toolchain may not
98d07479b2SMiguel Ojedabe detected.
99d07479b2SMiguel Ojeda
100d07479b2SMiguel Ojedabindgen (optional)
101d07479b2SMiguel Ojeda------------------
102d07479b2SMiguel Ojeda
103d07479b2SMiguel Ojeda``bindgen`` is used to generate the Rust bindings to the C side of the kernel.
104d07479b2SMiguel OjedaIt depends on ``libclang``.
105d07479b2SMiguel Ojeda
106186128f7SMauro Carvalho ChehabMake
107186128f7SMauro Carvalho Chehab----
108186128f7SMauro Carvalho Chehab
1095f99665eSMasahiro YamadaYou will need GNU make 4.0 or later to build the kernel.
110186128f7SMauro Carvalho Chehab
111da4288b9SMasahiro YamadaBash
112da4288b9SMasahiro Yamada----
113da4288b9SMasahiro Yamada
114da4288b9SMasahiro YamadaSome bash scripts are used for the kernel build.
115da4288b9SMasahiro YamadaBash 4.2 or newer is needed.
116da4288b9SMasahiro Yamada
117186128f7SMauro Carvalho ChehabBinutils
118186128f7SMauro Carvalho Chehab--------
119186128f7SMauro Carvalho Chehab
12028d51df0SArnd BergmannBinutils 2.30 or newer is needed to build the kernel.
121186128f7SMauro Carvalho Chehab
1224ab3b801SRandy Dunlappkg-config
1234ab3b801SRandy Dunlap----------
1244ab3b801SRandy Dunlap
1254ab3b801SRandy DunlapThe build system, as of 4.18, requires pkg-config to check for installed
1264ab3b801SRandy Dunlapkconfig tools and to determine flags settings for use in
127fd65465bSMasahiro Yamada'make {g,x}config'.  Previously pkg-config was being used but not
1284ab3b801SRandy Dunlapverified or documented.
1294ab3b801SRandy Dunlap
130033dba2eSMasahiro YamadaFlex
131033dba2eSMasahiro Yamada----
132033dba2eSMasahiro Yamada
133033dba2eSMasahiro YamadaSince Linux 4.16, the build system generates lexical analyzers
134033dba2eSMasahiro Yamadaduring build.  This requires flex 2.5.35 or later.
135033dba2eSMasahiro Yamada
136033dba2eSMasahiro Yamada
137033dba2eSMasahiro YamadaBison
138033dba2eSMasahiro Yamada-----
139033dba2eSMasahiro Yamada
140033dba2eSMasahiro YamadaSince Linux 4.16, the build system generates parsers
141033dba2eSMasahiro Yamadaduring build.  This requires bison 2.0 or later.
142033dba2eSMasahiro Yamada
14340be2369SThorsten Blumpahole
14440be2369SThorsten Blum------
145333b11e5SArnaldo Carvalho de Melo
146333b11e5SArnaldo Carvalho de MeloSince Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system
147333b11e5SArnaldo Carvalho de Melogenerates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel
148903922cfSIhor Solodraimodules as well.  This requires pahole v1.22 or later.
149333b11e5SArnaldo Carvalho de Melo
1502c1ccd9aSZhan XushengSince Linux 7.0, kfuncs annotated with KF_IMPLICIT_ARGS require pahole v1.26
1512c1ccd9aSZhan Xushengor later.  Without it, such kfuncs will have incorrect BTF prototypes in
1522c1ccd9aSZhan Xushengvmlinux, causing BPF programs to fail to load with a "func_proto incompatible
1532c1ccd9aSZhan Xushengwith vmlinux" error.  Many sched_ext kfuncs are affected.
1542c1ccd9aSZhan Xusheng
155333b11e5SArnaldo Carvalho de MeloIt is found in the 'dwarves' or 'pahole' distro packages or from
156333b11e5SArnaldo Carvalho de Melohttps://fedorapeople.org/~acme/dwarves/.
157333b11e5SArnaldo Carvalho de Melo
158186128f7SMauro Carvalho ChehabPerl
159186128f7SMauro Carvalho Chehab----
160186128f7SMauro Carvalho Chehab
161186128f7SMauro Carvalho ChehabYou will need perl 5 and the following modules: ``Getopt::Long``,
162186128f7SMauro Carvalho Chehab``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
163186128f7SMauro Carvalho Chehab
164bc20c56eSMauro Carvalho ChehabPython
165bc20c56eSMauro Carvalho Chehab------
166bc20c56eSMauro Carvalho Chehab
167bc20c56eSMauro Carvalho ChehabSeveral config options require it: it is required for arm/arm64
168bc20c56eSMauro Carvalho Chehabdefault configs, CONFIG_LTO_CLANG, some DRM optional configs,
169bc20c56eSMauro Carvalho Chehabthe kernel-doc tool, and docs build (Sphinx), among others.
170bc20c56eSMauro Carvalho Chehab
171186128f7SMauro Carvalho ChehabBC
172186128f7SMauro Carvalho Chehab--
173186128f7SMauro Carvalho Chehab
174186128f7SMauro Carvalho ChehabYou will need bc to build kernels 3.10 and higher
175186128f7SMauro Carvalho Chehab
176186128f7SMauro Carvalho Chehab
177186128f7SMauro Carvalho ChehabOpenSSL
178186128f7SMauro Carvalho Chehab-------
179186128f7SMauro Carvalho Chehab
180186128f7SMauro Carvalho ChehabModule signing and external certificate handling use the OpenSSL program and
181186128f7SMauro Carvalho Chehabcrypto library to do key creation and signature generation.
182186128f7SMauro Carvalho Chehab
183186128f7SMauro Carvalho ChehabYou will need openssl to build kernels 3.7 and higher if module signing is
184186128f7SMauro Carvalho Chehabenabled.  You will also need openssl development packages to build kernels 4.3
185186128f7SMauro Carvalho Chehaband higher.
186186128f7SMauro Carvalho Chehab
187c584476dSMasahiro YamadaTar
188c584476dSMasahiro Yamada---
189c584476dSMasahiro Yamada
190c584476dSMasahiro YamadaGNU tar is needed if you want to enable access to the kernel headers via sysfs
191c584476dSMasahiro Yamada(CONFIG_IKHEADERS).
192c584476dSMasahiro Yamada
193b230235bSAhmed S. Darwishgtags / GNU GLOBAL (optional)
194b230235bSAhmed S. Darwish-----------------------------
195b230235bSAhmed S. Darwish
196b230235bSAhmed S. DarwishThe kernel build requires GNU GLOBAL version 6.6.5 or later to generate
197b230235bSAhmed S. Darwishtag files through ``make gtags``.  This is due to its use of the gtags
198b230235bSAhmed S. Darwish``-C (--directory)`` flag.
199186128f7SMauro Carvalho Chehab
2007a23b027SSimon Glassmkimage
2017a23b027SSimon Glass-------
2027a23b027SSimon Glass
2037a23b027SSimon GlassThis tool is used when building a Flat Image Tree (FIT), commonly used on ARM
2047a23b027SSimon Glassplatforms. The tool is available via the ``u-boot-tools`` package or can be
2057a23b027SSimon Glassbuilt from the U-Boot source code. See the instructions at
2067a23b027SSimon Glasshttps://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linux
2077a23b027SSimon Glass
2085f5e7344SKris Van HeesGNU AWK
2095f5e7344SKris Van Hees-------
2105f5e7344SKris Van Hees
2115f5e7344SKris Van HeesGNU AWK is needed if you want kernel builds to generate address range data for
2125f5e7344SKris Van Heesbuiltin modules (CONFIG_BUILTIN_MODULE_RANGES).
2135f5e7344SKris Van Hees
214186128f7SMauro Carvalho ChehabSystem utilities
215186128f7SMauro Carvalho Chehab****************
216186128f7SMauro Carvalho Chehab
217186128f7SMauro Carvalho ChehabArchitectural changes
218186128f7SMauro Carvalho Chehab---------------------
219186128f7SMauro Carvalho Chehab
220186128f7SMauro Carvalho ChehabDevFS has been obsoleted in favour of udev
221e7b4311eSAlexander A. Klimov(https://www.kernel.org/pub/linux/utils/kernel/hotplug/)
222186128f7SMauro Carvalho Chehab
223186128f7SMauro Carvalho Chehab32-bit UID support is now in place.  Have fun!
224186128f7SMauro Carvalho Chehab
225186128f7SMauro Carvalho ChehabLinux documentation for functions is transitioning to inline
226186128f7SMauro Carvalho Chehabdocumentation via specially-formatted comments near their
227ff41c419SMauro Carvalho Chehabdefinitions in the source.  These comments can be combined with ReST
22889136329SNauman Sabirfiles in the Documentation/ directory to make enriched documentation, which can
229ff41c419SMauro Carvalho Chehabthen be converted to PostScript, HTML, LaTex, ePUB and PDF files.
230ff41c419SMauro Carvalho ChehabIn order to convert from ReST format to a format of your choice, you'll need
231ff41c419SMauro Carvalho ChehabSphinx.
232186128f7SMauro Carvalho Chehab
233186128f7SMauro Carvalho ChehabUtil-linux
234186128f7SMauro Carvalho Chehab----------
235186128f7SMauro Carvalho Chehab
236186128f7SMauro Carvalho ChehabNew versions of util-linux provide ``fdisk`` support for larger disks,
237186128f7SMauro Carvalho Chehabsupport new options to mount, recognize more supported partition
238821bd43eSThomas Weißschuhtypes, and similar goodies.
239186128f7SMauro Carvalho ChehabYou'll probably want to upgrade.
240186128f7SMauro Carvalho Chehab
241186128f7SMauro Carvalho ChehabKsymoops
242186128f7SMauro Carvalho Chehab--------
243186128f7SMauro Carvalho Chehab
244186128f7SMauro Carvalho ChehabIf the unthinkable happens and your kernel oopses, you may need the
245186128f7SMauro Carvalho Chehabksymoops tool to decode it, but in most cases you don't.
246186128f7SMauro Carvalho ChehabIt is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
247186128f7SMauro Carvalho Chehabthat it produces readable dumps that can be used as-is (this also
248186128f7SMauro Carvalho Chehabproduces better output than ksymoops).  If for some reason your kernel
249186128f7SMauro Carvalho Chehabis not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
250186128f7SMauro Carvalho Chehabreproduce the Oops with that option, then you can still decode that Oops
251186128f7SMauro Carvalho Chehabwith ksymoops.
252186128f7SMauro Carvalho Chehab
253186128f7SMauro Carvalho ChehabMkinitrd
254186128f7SMauro Carvalho Chehab--------
255186128f7SMauro Carvalho Chehab
256186128f7SMauro Carvalho ChehabThese changes to the ``/lib/modules`` file tree layout also require that
257186128f7SMauro Carvalho Chehabmkinitrd be upgraded.
258186128f7SMauro Carvalho Chehab
259186128f7SMauro Carvalho ChehabE2fsprogs
260186128f7SMauro Carvalho Chehab---------
261186128f7SMauro Carvalho Chehab
262186128f7SMauro Carvalho ChehabThe latest version of ``e2fsprogs`` fixes several bugs in fsck and
263186128f7SMauro Carvalho Chehabdebugfs.  Obviously, it's a good idea to upgrade.
264186128f7SMauro Carvalho Chehab
265186128f7SMauro Carvalho ChehabJFSutils
266186128f7SMauro Carvalho Chehab--------
267186128f7SMauro Carvalho Chehab
268186128f7SMauro Carvalho ChehabThe ``jfsutils`` package contains the utilities for the file system.
269186128f7SMauro Carvalho ChehabThe following utilities are available:
270186128f7SMauro Carvalho Chehab
271186128f7SMauro Carvalho Chehab- ``fsck.jfs`` - initiate replay of the transaction log, and check
272186128f7SMauro Carvalho Chehab  and repair a JFS formatted partition.
273186128f7SMauro Carvalho Chehab
274186128f7SMauro Carvalho Chehab- ``mkfs.jfs`` - create a JFS formatted partition.
275186128f7SMauro Carvalho Chehab
276186128f7SMauro Carvalho Chehab- other file system utilities are also available in this package.
277186128f7SMauro Carvalho Chehab
278186128f7SMauro Carvalho ChehabXfsprogs
279186128f7SMauro Carvalho Chehab--------
280186128f7SMauro Carvalho Chehab
281186128f7SMauro Carvalho ChehabThe latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
282186128f7SMauro Carvalho Chehab``xfs_repair`` utilities, among others, for the XFS filesystem.  It is
283186128f7SMauro Carvalho Chehabarchitecture independent and any version from 2.0.0 onward should
284186128f7SMauro Carvalho Chehabwork correctly with this version of the XFS kernel code (2.6.0 or
285186128f7SMauro Carvalho Chehablater is recommended, due to some significant improvements).
286186128f7SMauro Carvalho Chehab
287186128f7SMauro Carvalho ChehabPCMCIAutils
288186128f7SMauro Carvalho Chehab-----------
289186128f7SMauro Carvalho Chehab
290186128f7SMauro Carvalho ChehabPCMCIAutils replaces ``pcmcia-cs``. It properly sets up
291186128f7SMauro Carvalho ChehabPCMCIA sockets at system startup and loads the appropriate modules
292186128f7SMauro Carvalho Chehabfor 16-bit PCMCIA devices if the kernel is modularized and the hotplug
293186128f7SMauro Carvalho Chehabsubsystem is used.
294186128f7SMauro Carvalho Chehab
295186128f7SMauro Carvalho ChehabQuota-tools
296186128f7SMauro Carvalho Chehab-----------
297186128f7SMauro Carvalho Chehab
298186128f7SMauro Carvalho ChehabSupport for 32 bit uid's and gid's is required if you want to use
299186128f7SMauro Carvalho Chehabthe newer version 2 quota format.  Quota-tools version 3.07 and
300186128f7SMauro Carvalho Chehabnewer has this support.  Use the recommended version or newer
301186128f7SMauro Carvalho Chehabfrom the table above.
302186128f7SMauro Carvalho Chehab
303186128f7SMauro Carvalho ChehabIntel IA32 microcode
304186128f7SMauro Carvalho Chehab--------------------
305186128f7SMauro Carvalho Chehab
306186128f7SMauro Carvalho ChehabA driver has been added to allow updating of Intel IA32 microcode,
307186128f7SMauro Carvalho Chehabaccessible as a normal (misc) character device.  If you are not using
308186128f7SMauro Carvalho Chehabudev you may need to::
309186128f7SMauro Carvalho Chehab
310186128f7SMauro Carvalho Chehab  mkdir /dev/cpu
311186128f7SMauro Carvalho Chehab  mknod /dev/cpu/microcode c 10 184
312186128f7SMauro Carvalho Chehab  chmod 0644 /dev/cpu/microcode
313186128f7SMauro Carvalho Chehab
314186128f7SMauro Carvalho Chehabas root before you can use this.  You'll probably also want to
315186128f7SMauro Carvalho Chehabget the user-space microcode_ctl utility to use with this.
316186128f7SMauro Carvalho Chehab
317186128f7SMauro Carvalho Chehabudev
318186128f7SMauro Carvalho Chehab----
319186128f7SMauro Carvalho Chehab
320186128f7SMauro Carvalho Chehab``udev`` is a userspace application for populating ``/dev`` dynamically with
321186128f7SMauro Carvalho Chehabonly entries for devices actually present. ``udev`` replaces the basic
322186128f7SMauro Carvalho Chehabfunctionality of devfs, while allowing persistent device naming for
323186128f7SMauro Carvalho Chehabdevices.
324186128f7SMauro Carvalho Chehab
325186128f7SMauro Carvalho ChehabFUSE
326186128f7SMauro Carvalho Chehab----
327186128f7SMauro Carvalho Chehab
328186128f7SMauro Carvalho ChehabNeeds libfuse 2.4.0 or later.  Absolute minimum is 2.3.0 but mount
329186128f7SMauro Carvalho Chehaboptions ``direct_io`` and ``kernel_cache`` won't work.
330186128f7SMauro Carvalho Chehab
331186128f7SMauro Carvalho ChehabNetworking
332186128f7SMauro Carvalho Chehab**********
333186128f7SMauro Carvalho Chehab
334186128f7SMauro Carvalho ChehabGeneral changes
335186128f7SMauro Carvalho Chehab---------------
336186128f7SMauro Carvalho Chehab
337186128f7SMauro Carvalho ChehabIf you have advanced network configuration needs, you should probably
338186128f7SMauro Carvalho Chehabconsider using the network tools from ip-route2.
339186128f7SMauro Carvalho Chehab
340186128f7SMauro Carvalho ChehabPacket Filter / NAT
341186128f7SMauro Carvalho Chehab-------------------
342186128f7SMauro Carvalho ChehabThe packet filtering and NAT code uses the same tools like the previous 2.4.x
343186128f7SMauro Carvalho Chehabkernel series (iptables).  It still includes backwards-compatibility modules
344186128f7SMauro Carvalho Chehabfor 2.2.x-style ipchains and 2.0.x-style ipfwadm.
345186128f7SMauro Carvalho Chehab
346186128f7SMauro Carvalho ChehabPPP
347186128f7SMauro Carvalho Chehab---
348186128f7SMauro Carvalho Chehab
349186128f7SMauro Carvalho ChehabThe PPP driver has been restructured to support multilink and to
350186128f7SMauro Carvalho Chehabenable it to operate over diverse media layers.  If you use PPP,
351186128f7SMauro Carvalho Chehabupgrade pppd to at least 2.4.0.
352186128f7SMauro Carvalho Chehab
353186128f7SMauro Carvalho ChehabIf you are not using udev, you must have the device file /dev/ppp
354186128f7SMauro Carvalho Chehabwhich can be made by::
355186128f7SMauro Carvalho Chehab
356186128f7SMauro Carvalho Chehab  mknod /dev/ppp c 108 0
357186128f7SMauro Carvalho Chehab
358186128f7SMauro Carvalho Chehabas root.
359186128f7SMauro Carvalho Chehab
360186128f7SMauro Carvalho ChehabNFS-utils
361186128f7SMauro Carvalho Chehab---------
362186128f7SMauro Carvalho Chehab
363186128f7SMauro Carvalho ChehabIn ancient (2.4 and earlier) kernels, the nfs server needed to know
364186128f7SMauro Carvalho Chehababout any client that expected to be able to access files via NFS.  This
365186128f7SMauro Carvalho Chehabinformation would be given to the kernel by ``mountd`` when the client
366186128f7SMauro Carvalho Chehabmounted the filesystem, or by ``exportfs`` at system startup.  exportfs
367186128f7SMauro Carvalho Chehabwould take information about active clients from ``/var/lib/nfs/rmtab``.
368186128f7SMauro Carvalho Chehab
369186128f7SMauro Carvalho ChehabThis approach is quite fragile as it depends on rmtab being correct
370186128f7SMauro Carvalho Chehabwhich is not always easy, particularly when trying to implement
371186128f7SMauro Carvalho Chehabfail-over.  Even when the system is working well, ``rmtab`` suffers from
372186128f7SMauro Carvalho Chehabgetting lots of old entries that never get removed.
373186128f7SMauro Carvalho Chehab
374186128f7SMauro Carvalho ChehabWith modern kernels we have the option of having the kernel tell mountd
375186128f7SMauro Carvalho Chehabwhen it gets a request from an unknown host, and mountd can give
376186128f7SMauro Carvalho Chehabappropriate export information to the kernel.  This removes the
377186128f7SMauro Carvalho Chehabdependency on ``rmtab`` and means that the kernel only needs to know about
378186128f7SMauro Carvalho Chehabcurrently active clients.
379186128f7SMauro Carvalho Chehab
380186128f7SMauro Carvalho ChehabTo enable this new functionality, you need to::
381186128f7SMauro Carvalho Chehab
382186128f7SMauro Carvalho Chehab  mount -t nfsd nfsd /proc/fs/nfsd
383186128f7SMauro Carvalho Chehab
384186128f7SMauro Carvalho Chehabbefore running exportfs or mountd.  It is recommended that all NFS
385186128f7SMauro Carvalho Chehabservices be protected from the internet-at-large by a firewall where
386186128f7SMauro Carvalho Chehabthat is possible.
387186128f7SMauro Carvalho Chehab
388186128f7SMauro Carvalho Chehabmcelog
389186128f7SMauro Carvalho Chehab------
390186128f7SMauro Carvalho Chehab
391186128f7SMauro Carvalho ChehabOn x86 kernels the mcelog utility is needed to process and log machine check
392186128f7SMauro Carvalho Chehabevents when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
393186128f7SMauro Carvalho Chehabreported by the CPU. Processing them is strongly encouraged.
394186128f7SMauro Carvalho Chehab
395186128f7SMauro Carvalho ChehabKernel documentation
396186128f7SMauro Carvalho Chehab********************
397186128f7SMauro Carvalho Chehab
398186128f7SMauro Carvalho ChehabSphinx
399186128f7SMauro Carvalho Chehab------
400186128f7SMauro Carvalho Chehab
401c99fcb58SJonathan CorbetPlease see :ref:`sphinx_install` in Documentation/doc-guide/sphinx.rst
402b8b07b5cSMauro Carvalho Chehabfor details about Sphinx requirements.
403186128f7SMauro Carvalho Chehab
404d07479b2SMiguel Ojedarustdoc
405d07479b2SMiguel Ojeda-------
406d07479b2SMiguel Ojeda
407d07479b2SMiguel Ojeda``rustdoc`` is used to generate the documentation for Rust code. Please see
408d07479b2SMiguel OjedaDocumentation/rust/general-information.rst for more information.
409d07479b2SMiguel Ojeda
410186128f7SMauro Carvalho ChehabGetting updated software
411186128f7SMauro Carvalho Chehab========================
412186128f7SMauro Carvalho Chehab
413186128f7SMauro Carvalho ChehabKernel compilation
414186128f7SMauro Carvalho Chehab******************
415186128f7SMauro Carvalho Chehab
416186128f7SMauro Carvalho Chehabgcc
417186128f7SMauro Carvalho Chehab---
418186128f7SMauro Carvalho Chehab
419186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/gcc/>
420186128f7SMauro Carvalho Chehab
4213519c4d6SNick DesaulniersClang/LLVM
4223519c4d6SNick Desaulniers----------
4233519c4d6SNick Desaulniers
4243519c4d6SNick Desaulniers- :ref:`Getting LLVM <getting_llvm>`.
4253519c4d6SNick Desaulniers
426d07479b2SMiguel OjedaRust
427d07479b2SMiguel Ojeda----
428d07479b2SMiguel Ojeda
429d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst.
430d07479b2SMiguel Ojeda
431d07479b2SMiguel Ojedabindgen
432d07479b2SMiguel Ojeda-------
433d07479b2SMiguel Ojeda
434d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst.
435d07479b2SMiguel Ojeda
436186128f7SMauro Carvalho ChehabMake
437186128f7SMauro Carvalho Chehab----
438186128f7SMauro Carvalho Chehab
439186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/make/>
440186128f7SMauro Carvalho Chehab
441da4288b9SMasahiro YamadaBash
442da4288b9SMasahiro Yamada----
443da4288b9SMasahiro Yamada
444da4288b9SMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bash/>
445da4288b9SMasahiro Yamada
446186128f7SMauro Carvalho ChehabBinutils
447186128f7SMauro Carvalho Chehab--------
448186128f7SMauro Carvalho Chehab
4493bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/devel/binutils/>
450186128f7SMauro Carvalho Chehab
451033dba2eSMasahiro YamadaFlex
452033dba2eSMasahiro Yamada----
453033dba2eSMasahiro Yamada
454033dba2eSMasahiro Yamada- <https://github.com/westes/flex/releases>
455033dba2eSMasahiro Yamada
456033dba2eSMasahiro YamadaBison
457033dba2eSMasahiro Yamada-----
458033dba2eSMasahiro Yamada
459033dba2eSMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bison/>
460033dba2eSMasahiro Yamada
461186128f7SMauro Carvalho ChehabOpenSSL
462186128f7SMauro Carvalho Chehab-------
463186128f7SMauro Carvalho Chehab
464186128f7SMauro Carvalho Chehab- <https://www.openssl.org/>
465186128f7SMauro Carvalho Chehab
466186128f7SMauro Carvalho ChehabSystem utilities
467186128f7SMauro Carvalho Chehab****************
468186128f7SMauro Carvalho Chehab
469186128f7SMauro Carvalho ChehabUtil-linux
470186128f7SMauro Carvalho Chehab----------
471186128f7SMauro Carvalho Chehab
4723bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/util-linux/>
473186128f7SMauro Carvalho Chehab
474934193a6SRandy DunlapKmod
475934193a6SRandy Dunlap----
476934193a6SRandy Dunlap
477934193a6SRandy Dunlap- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
478934193a6SRandy Dunlap- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
479934193a6SRandy Dunlap
480186128f7SMauro Carvalho ChehabKsymoops
481186128f7SMauro Carvalho Chehab--------
482186128f7SMauro Carvalho Chehab
4833bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
484186128f7SMauro Carvalho Chehab
485186128f7SMauro Carvalho ChehabMkinitrd
486186128f7SMauro Carvalho Chehab--------
487186128f7SMauro Carvalho Chehab
488186128f7SMauro Carvalho Chehab- <https://code.launchpad.net/initrd-tools/main>
489186128f7SMauro Carvalho Chehab
490186128f7SMauro Carvalho ChehabE2fsprogs
491186128f7SMauro Carvalho Chehab---------
492186128f7SMauro Carvalho Chehab
493599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
494599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
495186128f7SMauro Carvalho Chehab
496186128f7SMauro Carvalho ChehabJFSutils
497186128f7SMauro Carvalho Chehab--------
498186128f7SMauro Carvalho Chehab
499383f3088SSeongJae Park- <https://jfs.sourceforge.net/>
500186128f7SMauro Carvalho Chehab
501186128f7SMauro Carvalho ChehabXfsprogs
502186128f7SMauro Carvalho Chehab--------
503186128f7SMauro Carvalho Chehab
504599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
505599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
506186128f7SMauro Carvalho Chehab
507186128f7SMauro Carvalho ChehabPcmciautils
508186128f7SMauro Carvalho Chehab-----------
509186128f7SMauro Carvalho Chehab
5103bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
511186128f7SMauro Carvalho Chehab
512186128f7SMauro Carvalho ChehabQuota-tools
513186128f7SMauro Carvalho Chehab-----------
514186128f7SMauro Carvalho Chehab
515383f3088SSeongJae Park- <https://sourceforge.net/projects/linuxquota/>
516186128f7SMauro Carvalho Chehab
517186128f7SMauro Carvalho Chehab
518186128f7SMauro Carvalho ChehabIntel P6 microcode
519186128f7SMauro Carvalho Chehab------------------
520186128f7SMauro Carvalho Chehab
521186128f7SMauro Carvalho Chehab- <https://downloadcenter.intel.com/>
522186128f7SMauro Carvalho Chehab
523186128f7SMauro Carvalho Chehabudev
524186128f7SMauro Carvalho Chehab----
525186128f7SMauro Carvalho Chehab
526e7b4311eSAlexander A. Klimov- <https://www.freedesktop.org/software/systemd/man/udev.html>
527186128f7SMauro Carvalho Chehab
528186128f7SMauro Carvalho ChehabFUSE
529186128f7SMauro Carvalho Chehab----
530186128f7SMauro Carvalho Chehab
53186afad7dSMartin Kepplinger- <https://github.com/libfuse/libfuse/releases>
532186128f7SMauro Carvalho Chehab
533186128f7SMauro Carvalho Chehabmcelog
534186128f7SMauro Carvalho Chehab------
535186128f7SMauro Carvalho Chehab
536383f3088SSeongJae Park- <https://www.mcelog.org/>
537186128f7SMauro Carvalho Chehab
538186128f7SMauro Carvalho ChehabNetworking
539186128f7SMauro Carvalho Chehab**********
540186128f7SMauro Carvalho Chehab
541186128f7SMauro Carvalho ChehabPPP
542186128f7SMauro Carvalho Chehab---
543186128f7SMauro Carvalho Chehab
544599e6f8dSRandy Dunlap- <https://download.samba.org/pub/ppp/>
545599e6f8dSRandy Dunlap- <https://git.ozlabs.org/?p=ppp.git>
546599e6f8dSRandy Dunlap- <https://github.com/paulusmack/ppp/>
547186128f7SMauro Carvalho Chehab
548186128f7SMauro Carvalho ChehabNFS-utils
549186128f7SMauro Carvalho Chehab---------
550186128f7SMauro Carvalho Chehab
551383f3088SSeongJae Park- <https://sourceforge.net/project/showfiles.php?group_id=14>
552383f3088SSeongJae Park- <https://nfs.sourceforge.net/>
553186128f7SMauro Carvalho Chehab
554186128f7SMauro Carvalho ChehabIptables
555186128f7SMauro Carvalho Chehab--------
556186128f7SMauro Carvalho Chehab
557599e6f8dSRandy Dunlap- <https://netfilter.org/projects/iptables/index.html>
558186128f7SMauro Carvalho Chehab
559186128f7SMauro Carvalho ChehabIp-route2
560186128f7SMauro Carvalho Chehab---------
561186128f7SMauro Carvalho Chehab
562186128f7SMauro Carvalho Chehab- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
563186128f7SMauro Carvalho Chehab
564186128f7SMauro Carvalho ChehabOProfile
565186128f7SMauro Carvalho Chehab--------
566186128f7SMauro Carvalho Chehab
567383f3088SSeongJae Park- <https://oprofile.sf.net/download/>
568186128f7SMauro Carvalho Chehab
569186128f7SMauro Carvalho ChehabKernel documentation
570186128f7SMauro Carvalho Chehab********************
571186128f7SMauro Carvalho Chehab
572186128f7SMauro Carvalho ChehabSphinx
573186128f7SMauro Carvalho Chehab------
574186128f7SMauro Carvalho Chehab
575e7b4311eSAlexander A. Klimov- <https://www.sphinx-doc.org/>
576