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====================== ===============  ========================================
3276ae8474SNick DesaulniersGNU C                  5.1              gcc --version
339c1b86f8SNathan ChancellorClang/LLVM (optional)  13.0.1           clang --version
34768409cfSMiguel OjedaRust (optional)        1.76.0           rustc --version
3508ab7865SAakash Sen Sharmabindgen (optional)     0.65.1           bindgen --version
360715fdb0SMasahiro YamadaGNU make               3.82             make --version
37da4288b9SMasahiro Yamadabash                   4.2              bash --version
38e4412739SMasahiro Yamadabinutils               2.25             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 Chehabreiserfsprogs          3.6.3            reiserfsck -V
47186128f7SMauro Carvalho Chehabxfsprogs               2.6.0            xfs_db -V
48186128f7SMauro Carvalho Chehabsquashfs-tools         4.0              mksquashfs -version
49186128f7SMauro Carvalho Chehabbtrfs-progs            0.18             btrfsck
50186128f7SMauro Carvalho Chehabpcmciautils            004              pccardctl -V
51186128f7SMauro Carvalho Chehabquota-tools            3.09             quota -V
52186128f7SMauro Carvalho ChehabPPP                    2.4.0            pppd --version
53186128f7SMauro Carvalho Chehabnfs-utils              1.0.5            showmount --version
54186128f7SMauro Carvalho Chehabprocps                 3.2.0            ps --version
55186128f7SMauro Carvalho Chehabudev                   081              udevd --version
56186128f7SMauro Carvalho Chehabgrub                   0.93             grub --version || grub-install --version
57186128f7SMauro Carvalho Chehabmcelog                 0.6              mcelog --version
58186128f7SMauro Carvalho Chehabiptables               1.4.2            iptables -V
59186128f7SMauro Carvalho Chehabopenssl & libcrypto    1.0.0            openssl version
60186128f7SMauro Carvalho Chehabbc                     1.06.95          bc --version
613e893e16SJonathan CorbetSphinx\ [#f1]_         2.4.4            sphinx-build --version
6269ef0920SBruno Moreira-Guedescpio                   any              cpio --version
63c584476dSMasahiro YamadaGNU tar                1.28             tar --version
64b230235bSAhmed S. Darwishgtags (optional)       6.6.5            gtags --version
65186128f7SMauro Carvalho Chehab====================== ===============  ========================================
66186128f7SMauro Carvalho Chehab
67186128f7SMauro Carvalho Chehab.. [#f1] Sphinx is needed only to build the Kernel documentation
68186128f7SMauro Carvalho Chehab
69186128f7SMauro Carvalho ChehabKernel compilation
70186128f7SMauro Carvalho Chehab******************
71186128f7SMauro Carvalho Chehab
72186128f7SMauro Carvalho ChehabGCC
73186128f7SMauro Carvalho Chehab---
74186128f7SMauro Carvalho Chehab
75186128f7SMauro Carvalho ChehabThe gcc version requirements may vary depending on the type of CPU in your
76186128f7SMauro Carvalho Chehabcomputer.
77186128f7SMauro Carvalho Chehab
783519c4d6SNick DesaulniersClang/LLVM (optional)
793519c4d6SNick Desaulniers---------------------
803519c4d6SNick Desaulniers
813519c4d6SNick DesaulniersThe latest formal release of clang and LLVM utils (according to
823519c4d6SNick Desaulniers`releases.llvm.org <https://releases.llvm.org>`_) are supported for building
833519c4d6SNick Desaulnierskernels. Older releases aren't guaranteed to work, and we may drop workarounds
843519c4d6SNick Desaulniersfrom the kernel that were used to support older versions. Please see additional
853519c4d6SNick Desaulniersdocs on :ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
863519c4d6SNick Desaulniers
87d07479b2SMiguel OjedaRust (optional)
88d07479b2SMiguel Ojeda---------------
89d07479b2SMiguel Ojeda
90d07479b2SMiguel OjedaA particular version of the Rust toolchain is required. Newer versions may or
91d07479b2SMiguel Ojedamay not work because the kernel depends on some unstable Rust features, for
92d07479b2SMiguel Ojedathe moment.
93d07479b2SMiguel Ojeda
94d07479b2SMiguel OjedaEach Rust toolchain comes with several "components", some of which are required
95d07479b2SMiguel Ojeda(like ``rustc``) and some that are optional. The ``rust-src`` component (which
96d07479b2SMiguel Ojedais optional) needs to be installed to build the kernel. Other components are
97d07479b2SMiguel Ojedauseful for developing.
98d07479b2SMiguel Ojeda
99d07479b2SMiguel OjedaPlease see Documentation/rust/quick-start.rst for instructions on how to
100d07479b2SMiguel Ojedasatisfy the build requirements of Rust support. In particular, the ``Makefile``
101d07479b2SMiguel Ojedatarget ``rustavailable`` is useful to check why the Rust toolchain may not
102d07479b2SMiguel Ojedabe detected.
103d07479b2SMiguel Ojeda
104d07479b2SMiguel Ojedabindgen (optional)
105d07479b2SMiguel Ojeda------------------
106d07479b2SMiguel Ojeda
107d07479b2SMiguel Ojeda``bindgen`` is used to generate the Rust bindings to the C side of the kernel.
108d07479b2SMiguel OjedaIt depends on ``libclang``.
109d07479b2SMiguel Ojeda
110186128f7SMauro Carvalho ChehabMake
111186128f7SMauro Carvalho Chehab----
112186128f7SMauro Carvalho Chehab
1130715fdb0SMasahiro YamadaYou will need GNU make 3.82 or later to build the kernel.
114186128f7SMauro Carvalho Chehab
115da4288b9SMasahiro YamadaBash
116da4288b9SMasahiro Yamada----
117da4288b9SMasahiro Yamada
118da4288b9SMasahiro YamadaSome bash scripts are used for the kernel build.
119da4288b9SMasahiro YamadaBash 4.2 or newer is needed.
120da4288b9SMasahiro Yamada
121186128f7SMauro Carvalho ChehabBinutils
122186128f7SMauro Carvalho Chehab--------
123186128f7SMauro Carvalho Chehab
124e4412739SMasahiro YamadaBinutils 2.25 or newer is needed to build the kernel.
125186128f7SMauro Carvalho Chehab
1264ab3b801SRandy Dunlappkg-config
1274ab3b801SRandy Dunlap----------
1284ab3b801SRandy Dunlap
1294ab3b801SRandy DunlapThe build system, as of 4.18, requires pkg-config to check for installed
1304ab3b801SRandy Dunlapkconfig tools and to determine flags settings for use in
131fd65465bSMasahiro Yamada'make {g,x}config'.  Previously pkg-config was being used but not
1324ab3b801SRandy Dunlapverified or documented.
1334ab3b801SRandy Dunlap
134033dba2eSMasahiro YamadaFlex
135033dba2eSMasahiro Yamada----
136033dba2eSMasahiro Yamada
137033dba2eSMasahiro YamadaSince Linux 4.16, the build system generates lexical analyzers
138033dba2eSMasahiro Yamadaduring build.  This requires flex 2.5.35 or later.
139033dba2eSMasahiro Yamada
140033dba2eSMasahiro Yamada
141033dba2eSMasahiro YamadaBison
142033dba2eSMasahiro Yamada-----
143033dba2eSMasahiro Yamada
144033dba2eSMasahiro YamadaSince Linux 4.16, the build system generates parsers
145033dba2eSMasahiro Yamadaduring build.  This requires bison 2.0 or later.
146033dba2eSMasahiro Yamada
14740be2369SThorsten Blumpahole
14840be2369SThorsten Blum------
149333b11e5SArnaldo Carvalho de Melo
150333b11e5SArnaldo Carvalho de MeloSince Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system
151333b11e5SArnaldo Carvalho de Melogenerates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel
152333b11e5SArnaldo Carvalho de Melomodules as well.  This requires pahole v1.16 or later.
153333b11e5SArnaldo Carvalho de Melo
154333b11e5SArnaldo Carvalho de MeloIt is found in the 'dwarves' or 'pahole' distro packages or from
155333b11e5SArnaldo Carvalho de Melohttps://fedorapeople.org/~acme/dwarves/.
156333b11e5SArnaldo Carvalho de Melo
157186128f7SMauro Carvalho ChehabPerl
158186128f7SMauro Carvalho Chehab----
159186128f7SMauro Carvalho Chehab
160186128f7SMauro Carvalho ChehabYou will need perl 5 and the following modules: ``Getopt::Long``,
161186128f7SMauro Carvalho Chehab``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
162186128f7SMauro Carvalho Chehab
163186128f7SMauro Carvalho ChehabBC
164186128f7SMauro Carvalho Chehab--
165186128f7SMauro Carvalho Chehab
166186128f7SMauro Carvalho ChehabYou will need bc to build kernels 3.10 and higher
167186128f7SMauro Carvalho Chehab
168186128f7SMauro Carvalho Chehab
169186128f7SMauro Carvalho ChehabOpenSSL
170186128f7SMauro Carvalho Chehab-------
171186128f7SMauro Carvalho Chehab
172186128f7SMauro Carvalho ChehabModule signing and external certificate handling use the OpenSSL program and
173186128f7SMauro Carvalho Chehabcrypto library to do key creation and signature generation.
174186128f7SMauro Carvalho Chehab
175186128f7SMauro Carvalho ChehabYou will need openssl to build kernels 3.7 and higher if module signing is
176186128f7SMauro Carvalho Chehabenabled.  You will also need openssl development packages to build kernels 4.3
177186128f7SMauro Carvalho Chehaband higher.
178186128f7SMauro Carvalho Chehab
179c584476dSMasahiro YamadaTar
180c584476dSMasahiro Yamada---
181c584476dSMasahiro Yamada
182c584476dSMasahiro YamadaGNU tar is needed if you want to enable access to the kernel headers via sysfs
183c584476dSMasahiro Yamada(CONFIG_IKHEADERS).
184c584476dSMasahiro Yamada
185b230235bSAhmed S. Darwishgtags / GNU GLOBAL (optional)
186b230235bSAhmed S. Darwish-----------------------------
187b230235bSAhmed S. Darwish
188b230235bSAhmed S. DarwishThe kernel build requires GNU GLOBAL version 6.6.5 or later to generate
189b230235bSAhmed S. Darwishtag files through ``make gtags``.  This is due to its use of the gtags
190b230235bSAhmed S. Darwish``-C (--directory)`` flag.
191186128f7SMauro Carvalho Chehab
192186128f7SMauro Carvalho ChehabSystem utilities
193186128f7SMauro Carvalho Chehab****************
194186128f7SMauro Carvalho Chehab
195186128f7SMauro Carvalho ChehabArchitectural changes
196186128f7SMauro Carvalho Chehab---------------------
197186128f7SMauro Carvalho Chehab
198186128f7SMauro Carvalho ChehabDevFS has been obsoleted in favour of udev
199e7b4311eSAlexander A. Klimov(https://www.kernel.org/pub/linux/utils/kernel/hotplug/)
200186128f7SMauro Carvalho Chehab
201186128f7SMauro Carvalho Chehab32-bit UID support is now in place.  Have fun!
202186128f7SMauro Carvalho Chehab
203186128f7SMauro Carvalho ChehabLinux documentation for functions is transitioning to inline
204186128f7SMauro Carvalho Chehabdocumentation via specially-formatted comments near their
205ff41c419SMauro Carvalho Chehabdefinitions in the source.  These comments can be combined with ReST
206ff41c419SMauro Carvalho Chehabfiles the Documentation/ directory to make enriched documentation, which can
207ff41c419SMauro Carvalho Chehabthen be converted to PostScript, HTML, LaTex, ePUB and PDF files.
208ff41c419SMauro Carvalho ChehabIn order to convert from ReST format to a format of your choice, you'll need
209ff41c419SMauro Carvalho ChehabSphinx.
210186128f7SMauro Carvalho Chehab
211186128f7SMauro Carvalho ChehabUtil-linux
212186128f7SMauro Carvalho Chehab----------
213186128f7SMauro Carvalho Chehab
214186128f7SMauro Carvalho ChehabNew versions of util-linux provide ``fdisk`` support for larger disks,
215186128f7SMauro Carvalho Chehabsupport new options to mount, recognize more supported partition
216821bd43eSThomas Weißschuhtypes, and similar goodies.
217186128f7SMauro Carvalho ChehabYou'll probably want to upgrade.
218186128f7SMauro Carvalho Chehab
219186128f7SMauro Carvalho ChehabKsymoops
220186128f7SMauro Carvalho Chehab--------
221186128f7SMauro Carvalho Chehab
222186128f7SMauro Carvalho ChehabIf the unthinkable happens and your kernel oopses, you may need the
223186128f7SMauro Carvalho Chehabksymoops tool to decode it, but in most cases you don't.
224186128f7SMauro Carvalho ChehabIt is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
225186128f7SMauro Carvalho Chehabthat it produces readable dumps that can be used as-is (this also
226186128f7SMauro Carvalho Chehabproduces better output than ksymoops).  If for some reason your kernel
227186128f7SMauro Carvalho Chehabis not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
228186128f7SMauro Carvalho Chehabreproduce the Oops with that option, then you can still decode that Oops
229186128f7SMauro Carvalho Chehabwith ksymoops.
230186128f7SMauro Carvalho Chehab
231186128f7SMauro Carvalho ChehabMkinitrd
232186128f7SMauro Carvalho Chehab--------
233186128f7SMauro Carvalho Chehab
234186128f7SMauro Carvalho ChehabThese changes to the ``/lib/modules`` file tree layout also require that
235186128f7SMauro Carvalho Chehabmkinitrd be upgraded.
236186128f7SMauro Carvalho Chehab
237186128f7SMauro Carvalho ChehabE2fsprogs
238186128f7SMauro Carvalho Chehab---------
239186128f7SMauro Carvalho Chehab
240186128f7SMauro Carvalho ChehabThe latest version of ``e2fsprogs`` fixes several bugs in fsck and
241186128f7SMauro Carvalho Chehabdebugfs.  Obviously, it's a good idea to upgrade.
242186128f7SMauro Carvalho Chehab
243186128f7SMauro Carvalho ChehabJFSutils
244186128f7SMauro Carvalho Chehab--------
245186128f7SMauro Carvalho Chehab
246186128f7SMauro Carvalho ChehabThe ``jfsutils`` package contains the utilities for the file system.
247186128f7SMauro Carvalho ChehabThe following utilities are available:
248186128f7SMauro Carvalho Chehab
249186128f7SMauro Carvalho Chehab- ``fsck.jfs`` - initiate replay of the transaction log, and check
250186128f7SMauro Carvalho Chehab  and repair a JFS formatted partition.
251186128f7SMauro Carvalho Chehab
252186128f7SMauro Carvalho Chehab- ``mkfs.jfs`` - create a JFS formatted partition.
253186128f7SMauro Carvalho Chehab
254186128f7SMauro Carvalho Chehab- other file system utilities are also available in this package.
255186128f7SMauro Carvalho Chehab
256186128f7SMauro Carvalho ChehabReiserfsprogs
257186128f7SMauro Carvalho Chehab-------------
258186128f7SMauro Carvalho Chehab
259186128f7SMauro Carvalho ChehabThe reiserfsprogs package should be used for reiserfs-3.6.x
260186128f7SMauro Carvalho Chehab(Linux kernels 2.4.x). It is a combined package and contains working
261186128f7SMauro Carvalho Chehabversions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and
262186128f7SMauro Carvalho Chehab``reiserfsck``. These utils work on both i386 and alpha platforms.
263186128f7SMauro Carvalho Chehab
264186128f7SMauro Carvalho ChehabXfsprogs
265186128f7SMauro Carvalho Chehab--------
266186128f7SMauro Carvalho Chehab
267186128f7SMauro Carvalho ChehabThe latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
268186128f7SMauro Carvalho Chehab``xfs_repair`` utilities, among others, for the XFS filesystem.  It is
269186128f7SMauro Carvalho Chehabarchitecture independent and any version from 2.0.0 onward should
270186128f7SMauro Carvalho Chehabwork correctly with this version of the XFS kernel code (2.6.0 or
271186128f7SMauro Carvalho Chehablater is recommended, due to some significant improvements).
272186128f7SMauro Carvalho Chehab
273186128f7SMauro Carvalho ChehabPCMCIAutils
274186128f7SMauro Carvalho Chehab-----------
275186128f7SMauro Carvalho Chehab
276186128f7SMauro Carvalho ChehabPCMCIAutils replaces ``pcmcia-cs``. It properly sets up
277186128f7SMauro Carvalho ChehabPCMCIA sockets at system startup and loads the appropriate modules
278186128f7SMauro Carvalho Chehabfor 16-bit PCMCIA devices if the kernel is modularized and the hotplug
279186128f7SMauro Carvalho Chehabsubsystem is used.
280186128f7SMauro Carvalho Chehab
281186128f7SMauro Carvalho ChehabQuota-tools
282186128f7SMauro Carvalho Chehab-----------
283186128f7SMauro Carvalho Chehab
284186128f7SMauro Carvalho ChehabSupport for 32 bit uid's and gid's is required if you want to use
285186128f7SMauro Carvalho Chehabthe newer version 2 quota format.  Quota-tools version 3.07 and
286186128f7SMauro Carvalho Chehabnewer has this support.  Use the recommended version or newer
287186128f7SMauro Carvalho Chehabfrom the table above.
288186128f7SMauro Carvalho Chehab
289186128f7SMauro Carvalho ChehabIntel IA32 microcode
290186128f7SMauro Carvalho Chehab--------------------
291186128f7SMauro Carvalho Chehab
292186128f7SMauro Carvalho ChehabA driver has been added to allow updating of Intel IA32 microcode,
293186128f7SMauro Carvalho Chehabaccessible as a normal (misc) character device.  If you are not using
294186128f7SMauro Carvalho Chehabudev you may need to::
295186128f7SMauro Carvalho Chehab
296186128f7SMauro Carvalho Chehab  mkdir /dev/cpu
297186128f7SMauro Carvalho Chehab  mknod /dev/cpu/microcode c 10 184
298186128f7SMauro Carvalho Chehab  chmod 0644 /dev/cpu/microcode
299186128f7SMauro Carvalho Chehab
300186128f7SMauro Carvalho Chehabas root before you can use this.  You'll probably also want to
301186128f7SMauro Carvalho Chehabget the user-space microcode_ctl utility to use with this.
302186128f7SMauro Carvalho Chehab
303186128f7SMauro Carvalho Chehabudev
304186128f7SMauro Carvalho Chehab----
305186128f7SMauro Carvalho Chehab
306186128f7SMauro Carvalho Chehab``udev`` is a userspace application for populating ``/dev`` dynamically with
307186128f7SMauro Carvalho Chehabonly entries for devices actually present. ``udev`` replaces the basic
308186128f7SMauro Carvalho Chehabfunctionality of devfs, while allowing persistent device naming for
309186128f7SMauro Carvalho Chehabdevices.
310186128f7SMauro Carvalho Chehab
311186128f7SMauro Carvalho ChehabFUSE
312186128f7SMauro Carvalho Chehab----
313186128f7SMauro Carvalho Chehab
314186128f7SMauro Carvalho ChehabNeeds libfuse 2.4.0 or later.  Absolute minimum is 2.3.0 but mount
315186128f7SMauro Carvalho Chehaboptions ``direct_io`` and ``kernel_cache`` won't work.
316186128f7SMauro Carvalho Chehab
317186128f7SMauro Carvalho ChehabNetworking
318186128f7SMauro Carvalho Chehab**********
319186128f7SMauro Carvalho Chehab
320186128f7SMauro Carvalho ChehabGeneral changes
321186128f7SMauro Carvalho Chehab---------------
322186128f7SMauro Carvalho Chehab
323186128f7SMauro Carvalho ChehabIf you have advanced network configuration needs, you should probably
324186128f7SMauro Carvalho Chehabconsider using the network tools from ip-route2.
325186128f7SMauro Carvalho Chehab
326186128f7SMauro Carvalho ChehabPacket Filter / NAT
327186128f7SMauro Carvalho Chehab-------------------
328186128f7SMauro Carvalho ChehabThe packet filtering and NAT code uses the same tools like the previous 2.4.x
329186128f7SMauro Carvalho Chehabkernel series (iptables).  It still includes backwards-compatibility modules
330186128f7SMauro Carvalho Chehabfor 2.2.x-style ipchains and 2.0.x-style ipfwadm.
331186128f7SMauro Carvalho Chehab
332186128f7SMauro Carvalho ChehabPPP
333186128f7SMauro Carvalho Chehab---
334186128f7SMauro Carvalho Chehab
335186128f7SMauro Carvalho ChehabThe PPP driver has been restructured to support multilink and to
336186128f7SMauro Carvalho Chehabenable it to operate over diverse media layers.  If you use PPP,
337186128f7SMauro Carvalho Chehabupgrade pppd to at least 2.4.0.
338186128f7SMauro Carvalho Chehab
339186128f7SMauro Carvalho ChehabIf you are not using udev, you must have the device file /dev/ppp
340186128f7SMauro Carvalho Chehabwhich can be made by::
341186128f7SMauro Carvalho Chehab
342186128f7SMauro Carvalho Chehab  mknod /dev/ppp c 108 0
343186128f7SMauro Carvalho Chehab
344186128f7SMauro Carvalho Chehabas root.
345186128f7SMauro Carvalho Chehab
346186128f7SMauro Carvalho ChehabNFS-utils
347186128f7SMauro Carvalho Chehab---------
348186128f7SMauro Carvalho Chehab
349186128f7SMauro Carvalho ChehabIn ancient (2.4 and earlier) kernels, the nfs server needed to know
350186128f7SMauro Carvalho Chehababout any client that expected to be able to access files via NFS.  This
351186128f7SMauro Carvalho Chehabinformation would be given to the kernel by ``mountd`` when the client
352186128f7SMauro Carvalho Chehabmounted the filesystem, or by ``exportfs`` at system startup.  exportfs
353186128f7SMauro Carvalho Chehabwould take information about active clients from ``/var/lib/nfs/rmtab``.
354186128f7SMauro Carvalho Chehab
355186128f7SMauro Carvalho ChehabThis approach is quite fragile as it depends on rmtab being correct
356186128f7SMauro Carvalho Chehabwhich is not always easy, particularly when trying to implement
357186128f7SMauro Carvalho Chehabfail-over.  Even when the system is working well, ``rmtab`` suffers from
358186128f7SMauro Carvalho Chehabgetting lots of old entries that never get removed.
359186128f7SMauro Carvalho Chehab
360186128f7SMauro Carvalho ChehabWith modern kernels we have the option of having the kernel tell mountd
361186128f7SMauro Carvalho Chehabwhen it gets a request from an unknown host, and mountd can give
362186128f7SMauro Carvalho Chehabappropriate export information to the kernel.  This removes the
363186128f7SMauro Carvalho Chehabdependency on ``rmtab`` and means that the kernel only needs to know about
364186128f7SMauro Carvalho Chehabcurrently active clients.
365186128f7SMauro Carvalho Chehab
366186128f7SMauro Carvalho ChehabTo enable this new functionality, you need to::
367186128f7SMauro Carvalho Chehab
368186128f7SMauro Carvalho Chehab  mount -t nfsd nfsd /proc/fs/nfsd
369186128f7SMauro Carvalho Chehab
370186128f7SMauro Carvalho Chehabbefore running exportfs or mountd.  It is recommended that all NFS
371186128f7SMauro Carvalho Chehabservices be protected from the internet-at-large by a firewall where
372186128f7SMauro Carvalho Chehabthat is possible.
373186128f7SMauro Carvalho Chehab
374186128f7SMauro Carvalho Chehabmcelog
375186128f7SMauro Carvalho Chehab------
376186128f7SMauro Carvalho Chehab
377186128f7SMauro Carvalho ChehabOn x86 kernels the mcelog utility is needed to process and log machine check
378186128f7SMauro Carvalho Chehabevents when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
379186128f7SMauro Carvalho Chehabreported by the CPU. Processing them is strongly encouraged.
380186128f7SMauro Carvalho Chehab
381186128f7SMauro Carvalho ChehabKernel documentation
382186128f7SMauro Carvalho Chehab********************
383186128f7SMauro Carvalho Chehab
384186128f7SMauro Carvalho ChehabSphinx
385186128f7SMauro Carvalho Chehab------
386186128f7SMauro Carvalho Chehab
387f77af637SFederico VagaPlease see :ref:`sphinx_install` in :ref:`Documentation/doc-guide/sphinx.rst <sphinxdoc>`
388b8b07b5cSMauro Carvalho Chehabfor details about Sphinx requirements.
389186128f7SMauro Carvalho Chehab
390d07479b2SMiguel Ojedarustdoc
391d07479b2SMiguel Ojeda-------
392d07479b2SMiguel Ojeda
393d07479b2SMiguel Ojeda``rustdoc`` is used to generate the documentation for Rust code. Please see
394d07479b2SMiguel OjedaDocumentation/rust/general-information.rst for more information.
395d07479b2SMiguel Ojeda
396186128f7SMauro Carvalho ChehabGetting updated software
397186128f7SMauro Carvalho Chehab========================
398186128f7SMauro Carvalho Chehab
399186128f7SMauro Carvalho ChehabKernel compilation
400186128f7SMauro Carvalho Chehab******************
401186128f7SMauro Carvalho Chehab
402186128f7SMauro Carvalho Chehabgcc
403186128f7SMauro Carvalho Chehab---
404186128f7SMauro Carvalho Chehab
405186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/gcc/>
406186128f7SMauro Carvalho Chehab
4073519c4d6SNick DesaulniersClang/LLVM
4083519c4d6SNick Desaulniers----------
4093519c4d6SNick Desaulniers
4103519c4d6SNick Desaulniers- :ref:`Getting LLVM <getting_llvm>`.
4113519c4d6SNick Desaulniers
412d07479b2SMiguel OjedaRust
413d07479b2SMiguel Ojeda----
414d07479b2SMiguel Ojeda
415d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst.
416d07479b2SMiguel Ojeda
417d07479b2SMiguel Ojedabindgen
418d07479b2SMiguel Ojeda-------
419d07479b2SMiguel Ojeda
420d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst.
421d07479b2SMiguel Ojeda
422186128f7SMauro Carvalho ChehabMake
423186128f7SMauro Carvalho Chehab----
424186128f7SMauro Carvalho Chehab
425186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/make/>
426186128f7SMauro Carvalho Chehab
427da4288b9SMasahiro YamadaBash
428da4288b9SMasahiro Yamada----
429da4288b9SMasahiro Yamada
430da4288b9SMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bash/>
431da4288b9SMasahiro Yamada
432186128f7SMauro Carvalho ChehabBinutils
433186128f7SMauro Carvalho Chehab--------
434186128f7SMauro Carvalho Chehab
4353bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/devel/binutils/>
436186128f7SMauro Carvalho Chehab
437033dba2eSMasahiro YamadaFlex
438033dba2eSMasahiro Yamada----
439033dba2eSMasahiro Yamada
440033dba2eSMasahiro Yamada- <https://github.com/westes/flex/releases>
441033dba2eSMasahiro Yamada
442033dba2eSMasahiro YamadaBison
443033dba2eSMasahiro Yamada-----
444033dba2eSMasahiro Yamada
445033dba2eSMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bison/>
446033dba2eSMasahiro Yamada
447186128f7SMauro Carvalho ChehabOpenSSL
448186128f7SMauro Carvalho Chehab-------
449186128f7SMauro Carvalho Chehab
450186128f7SMauro Carvalho Chehab- <https://www.openssl.org/>
451186128f7SMauro Carvalho Chehab
452186128f7SMauro Carvalho ChehabSystem utilities
453186128f7SMauro Carvalho Chehab****************
454186128f7SMauro Carvalho Chehab
455186128f7SMauro Carvalho ChehabUtil-linux
456186128f7SMauro Carvalho Chehab----------
457186128f7SMauro Carvalho Chehab
4583bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/util-linux/>
459186128f7SMauro Carvalho Chehab
460934193a6SRandy DunlapKmod
461934193a6SRandy Dunlap----
462934193a6SRandy Dunlap
463934193a6SRandy Dunlap- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
464934193a6SRandy Dunlap- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
465934193a6SRandy Dunlap
466186128f7SMauro Carvalho ChehabKsymoops
467186128f7SMauro Carvalho Chehab--------
468186128f7SMauro Carvalho Chehab
4693bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
470186128f7SMauro Carvalho Chehab
471186128f7SMauro Carvalho ChehabMkinitrd
472186128f7SMauro Carvalho Chehab--------
473186128f7SMauro Carvalho Chehab
474186128f7SMauro Carvalho Chehab- <https://code.launchpad.net/initrd-tools/main>
475186128f7SMauro Carvalho Chehab
476186128f7SMauro Carvalho ChehabE2fsprogs
477186128f7SMauro Carvalho Chehab---------
478186128f7SMauro Carvalho Chehab
479599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
480599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
481186128f7SMauro Carvalho Chehab
482186128f7SMauro Carvalho ChehabJFSutils
483186128f7SMauro Carvalho Chehab--------
484186128f7SMauro Carvalho Chehab
485383f3088SSeongJae Park- <https://jfs.sourceforge.net/>
486186128f7SMauro Carvalho Chehab
487186128f7SMauro Carvalho ChehabReiserfsprogs
488186128f7SMauro Carvalho Chehab-------------
489186128f7SMauro Carvalho Chehab
490599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/>
491186128f7SMauro Carvalho Chehab
492186128f7SMauro Carvalho ChehabXfsprogs
493186128f7SMauro Carvalho Chehab--------
494186128f7SMauro Carvalho Chehab
495599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
496599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
497186128f7SMauro Carvalho Chehab
498186128f7SMauro Carvalho ChehabPcmciautils
499186128f7SMauro Carvalho Chehab-----------
500186128f7SMauro Carvalho Chehab
5013bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
502186128f7SMauro Carvalho Chehab
503186128f7SMauro Carvalho ChehabQuota-tools
504186128f7SMauro Carvalho Chehab-----------
505186128f7SMauro Carvalho Chehab
506383f3088SSeongJae Park- <https://sourceforge.net/projects/linuxquota/>
507186128f7SMauro Carvalho Chehab
508186128f7SMauro Carvalho Chehab
509186128f7SMauro Carvalho ChehabIntel P6 microcode
510186128f7SMauro Carvalho Chehab------------------
511186128f7SMauro Carvalho Chehab
512186128f7SMauro Carvalho Chehab- <https://downloadcenter.intel.com/>
513186128f7SMauro Carvalho Chehab
514186128f7SMauro Carvalho Chehabudev
515186128f7SMauro Carvalho Chehab----
516186128f7SMauro Carvalho Chehab
517e7b4311eSAlexander A. Klimov- <https://www.freedesktop.org/software/systemd/man/udev.html>
518186128f7SMauro Carvalho Chehab
519186128f7SMauro Carvalho ChehabFUSE
520186128f7SMauro Carvalho Chehab----
521186128f7SMauro Carvalho Chehab
52286afad7dSMartin Kepplinger- <https://github.com/libfuse/libfuse/releases>
523186128f7SMauro Carvalho Chehab
524186128f7SMauro Carvalho Chehabmcelog
525186128f7SMauro Carvalho Chehab------
526186128f7SMauro Carvalho Chehab
527383f3088SSeongJae Park- <https://www.mcelog.org/>
528186128f7SMauro Carvalho Chehab
52969ef0920SBruno Moreira-Guedescpio
53069ef0920SBruno Moreira-Guedes----
53169ef0920SBruno Moreira-Guedes
53269ef0920SBruno Moreira-Guedes- <https://www.gnu.org/software/cpio/>
53369ef0920SBruno Moreira-Guedes
534186128f7SMauro Carvalho ChehabNetworking
535186128f7SMauro Carvalho Chehab**********
536186128f7SMauro Carvalho Chehab
537186128f7SMauro Carvalho ChehabPPP
538186128f7SMauro Carvalho Chehab---
539186128f7SMauro Carvalho Chehab
540599e6f8dSRandy Dunlap- <https://download.samba.org/pub/ppp/>
541599e6f8dSRandy Dunlap- <https://git.ozlabs.org/?p=ppp.git>
542599e6f8dSRandy Dunlap- <https://github.com/paulusmack/ppp/>
543186128f7SMauro Carvalho Chehab
544186128f7SMauro Carvalho ChehabNFS-utils
545186128f7SMauro Carvalho Chehab---------
546186128f7SMauro Carvalho Chehab
547383f3088SSeongJae Park- <https://sourceforge.net/project/showfiles.php?group_id=14>
548383f3088SSeongJae Park- <https://nfs.sourceforge.net/>
549186128f7SMauro Carvalho Chehab
550186128f7SMauro Carvalho ChehabIptables
551186128f7SMauro Carvalho Chehab--------
552186128f7SMauro Carvalho Chehab
553599e6f8dSRandy Dunlap- <https://netfilter.org/projects/iptables/index.html>
554186128f7SMauro Carvalho Chehab
555186128f7SMauro Carvalho ChehabIp-route2
556186128f7SMauro Carvalho Chehab---------
557186128f7SMauro Carvalho Chehab
558186128f7SMauro Carvalho Chehab- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
559186128f7SMauro Carvalho Chehab
560186128f7SMauro Carvalho ChehabOProfile
561186128f7SMauro Carvalho Chehab--------
562186128f7SMauro Carvalho Chehab
563383f3088SSeongJae Park- <https://oprofile.sf.net/download/>
564186128f7SMauro Carvalho Chehab
565186128f7SMauro Carvalho ChehabKernel documentation
566186128f7SMauro Carvalho Chehab********************
567186128f7SMauro Carvalho Chehab
568186128f7SMauro Carvalho ChehabSphinx
569186128f7SMauro Carvalho Chehab------
570186128f7SMauro Carvalho Chehab
571e7b4311eSAlexander A. Klimov- <https://www.sphinx-doc.org/>
572