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 39ece7e57aSManuel EbnerClang/LLVM (optional) 15.0.0 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 56ece7e57aSManuel Ebnerpahole 1.22 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 150333b11e5SArnaldo Carvalho de MeloIt is found in the 'dwarves' or 'pahole' distro packages or from 151333b11e5SArnaldo Carvalho de Melohttps://fedorapeople.org/~acme/dwarves/. 152333b11e5SArnaldo Carvalho de Melo 153186128f7SMauro Carvalho ChehabPerl 154186128f7SMauro Carvalho Chehab---- 155186128f7SMauro Carvalho Chehab 156186128f7SMauro Carvalho ChehabYou will need perl 5 and the following modules: ``Getopt::Long``, 157186128f7SMauro Carvalho Chehab``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel. 158186128f7SMauro Carvalho Chehab 159bc20c56eSMauro Carvalho ChehabPython 160bc20c56eSMauro Carvalho Chehab------ 161bc20c56eSMauro Carvalho Chehab 162bc20c56eSMauro Carvalho ChehabSeveral config options require it: it is required for arm/arm64 163bc20c56eSMauro Carvalho Chehabdefault configs, CONFIG_LTO_CLANG, some DRM optional configs, 164bc20c56eSMauro Carvalho Chehabthe kernel-doc tool, and docs build (Sphinx), among others. 165bc20c56eSMauro Carvalho Chehab 166186128f7SMauro Carvalho ChehabBC 167186128f7SMauro Carvalho Chehab-- 168186128f7SMauro Carvalho Chehab 169186128f7SMauro Carvalho ChehabYou will need bc to build kernels 3.10 and higher 170186128f7SMauro Carvalho Chehab 171186128f7SMauro Carvalho Chehab 172186128f7SMauro Carvalho ChehabOpenSSL 173186128f7SMauro Carvalho Chehab------- 174186128f7SMauro Carvalho Chehab 175186128f7SMauro Carvalho ChehabModule signing and external certificate handling use the OpenSSL program and 176186128f7SMauro Carvalho Chehabcrypto library to do key creation and signature generation. 177186128f7SMauro Carvalho Chehab 178186128f7SMauro Carvalho ChehabYou will need openssl to build kernels 3.7 and higher if module signing is 179186128f7SMauro Carvalho Chehabenabled. You will also need openssl development packages to build kernels 4.3 180186128f7SMauro Carvalho Chehaband higher. 181186128f7SMauro Carvalho Chehab 182c584476dSMasahiro YamadaTar 183c584476dSMasahiro Yamada--- 184c584476dSMasahiro Yamada 185c584476dSMasahiro YamadaGNU tar is needed if you want to enable access to the kernel headers via sysfs 186c584476dSMasahiro Yamada(CONFIG_IKHEADERS). 187c584476dSMasahiro Yamada 188b230235bSAhmed S. Darwishgtags / GNU GLOBAL (optional) 189b230235bSAhmed S. Darwish----------------------------- 190b230235bSAhmed S. Darwish 191b230235bSAhmed S. DarwishThe kernel build requires GNU GLOBAL version 6.6.5 or later to generate 192b230235bSAhmed S. Darwishtag files through ``make gtags``. This is due to its use of the gtags 193b230235bSAhmed S. Darwish``-C (--directory)`` flag. 194186128f7SMauro Carvalho Chehab 1957a23b027SSimon Glassmkimage 1967a23b027SSimon Glass------- 1977a23b027SSimon Glass 1987a23b027SSimon GlassThis tool is used when building a Flat Image Tree (FIT), commonly used on ARM 1997a23b027SSimon Glassplatforms. The tool is available via the ``u-boot-tools`` package or can be 2007a23b027SSimon Glassbuilt from the U-Boot source code. See the instructions at 2017a23b027SSimon Glasshttps://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linux 2027a23b027SSimon Glass 2035f5e7344SKris Van HeesGNU AWK 2045f5e7344SKris Van Hees------- 2055f5e7344SKris Van Hees 2065f5e7344SKris Van HeesGNU AWK is needed if you want kernel builds to generate address range data for 2075f5e7344SKris Van Heesbuiltin modules (CONFIG_BUILTIN_MODULE_RANGES). 2085f5e7344SKris Van Hees 209186128f7SMauro Carvalho ChehabSystem utilities 210186128f7SMauro Carvalho Chehab**************** 211186128f7SMauro Carvalho Chehab 212186128f7SMauro Carvalho ChehabArchitectural changes 213186128f7SMauro Carvalho Chehab--------------------- 214186128f7SMauro Carvalho Chehab 215186128f7SMauro Carvalho ChehabDevFS has been obsoleted in favour of udev 216e7b4311eSAlexander A. Klimov(https://www.kernel.org/pub/linux/utils/kernel/hotplug/) 217186128f7SMauro Carvalho Chehab 218186128f7SMauro Carvalho Chehab32-bit UID support is now in place. Have fun! 219186128f7SMauro Carvalho Chehab 220186128f7SMauro Carvalho ChehabLinux documentation for functions is transitioning to inline 221186128f7SMauro Carvalho Chehabdocumentation via specially-formatted comments near their 222ff41c419SMauro Carvalho Chehabdefinitions in the source. These comments can be combined with ReST 22389136329SNauman Sabirfiles in the Documentation/ directory to make enriched documentation, which can 224ff41c419SMauro Carvalho Chehabthen be converted to PostScript, HTML, LaTex, ePUB and PDF files. 225ff41c419SMauro Carvalho ChehabIn order to convert from ReST format to a format of your choice, you'll need 226ff41c419SMauro Carvalho ChehabSphinx. 227186128f7SMauro Carvalho Chehab 228186128f7SMauro Carvalho ChehabUtil-linux 229186128f7SMauro Carvalho Chehab---------- 230186128f7SMauro Carvalho Chehab 231186128f7SMauro Carvalho ChehabNew versions of util-linux provide ``fdisk`` support for larger disks, 232186128f7SMauro Carvalho Chehabsupport new options to mount, recognize more supported partition 233821bd43eSThomas Weißschuhtypes, and similar goodies. 234186128f7SMauro Carvalho ChehabYou'll probably want to upgrade. 235186128f7SMauro Carvalho Chehab 236186128f7SMauro Carvalho ChehabKsymoops 237186128f7SMauro Carvalho Chehab-------- 238186128f7SMauro Carvalho Chehab 239186128f7SMauro Carvalho ChehabIf the unthinkable happens and your kernel oopses, you may need the 240186128f7SMauro Carvalho Chehabksymoops tool to decode it, but in most cases you don't. 241186128f7SMauro Carvalho ChehabIt is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so 242186128f7SMauro Carvalho Chehabthat it produces readable dumps that can be used as-is (this also 243186128f7SMauro Carvalho Chehabproduces better output than ksymoops). If for some reason your kernel 244186128f7SMauro Carvalho Chehabis not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and 245186128f7SMauro Carvalho Chehabreproduce the Oops with that option, then you can still decode that Oops 246186128f7SMauro Carvalho Chehabwith ksymoops. 247186128f7SMauro Carvalho Chehab 248186128f7SMauro Carvalho ChehabMkinitrd 249186128f7SMauro Carvalho Chehab-------- 250186128f7SMauro Carvalho Chehab 251186128f7SMauro Carvalho ChehabThese changes to the ``/lib/modules`` file tree layout also require that 252186128f7SMauro Carvalho Chehabmkinitrd be upgraded. 253186128f7SMauro Carvalho Chehab 254186128f7SMauro Carvalho ChehabE2fsprogs 255186128f7SMauro Carvalho Chehab--------- 256186128f7SMauro Carvalho Chehab 257186128f7SMauro Carvalho ChehabThe latest version of ``e2fsprogs`` fixes several bugs in fsck and 258186128f7SMauro Carvalho Chehabdebugfs. Obviously, it's a good idea to upgrade. 259186128f7SMauro Carvalho Chehab 260186128f7SMauro Carvalho ChehabJFSutils 261186128f7SMauro Carvalho Chehab-------- 262186128f7SMauro Carvalho Chehab 263186128f7SMauro Carvalho ChehabThe ``jfsutils`` package contains the utilities for the file system. 264186128f7SMauro Carvalho ChehabThe following utilities are available: 265186128f7SMauro Carvalho Chehab 266186128f7SMauro Carvalho Chehab- ``fsck.jfs`` - initiate replay of the transaction log, and check 267186128f7SMauro Carvalho Chehab and repair a JFS formatted partition. 268186128f7SMauro Carvalho Chehab 269186128f7SMauro Carvalho Chehab- ``mkfs.jfs`` - create a JFS formatted partition. 270186128f7SMauro Carvalho Chehab 271186128f7SMauro Carvalho Chehab- other file system utilities are also available in this package. 272186128f7SMauro Carvalho Chehab 273186128f7SMauro Carvalho ChehabXfsprogs 274186128f7SMauro Carvalho Chehab-------- 275186128f7SMauro Carvalho Chehab 276186128f7SMauro Carvalho ChehabThe latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the 277186128f7SMauro Carvalho Chehab``xfs_repair`` utilities, among others, for the XFS filesystem. It is 278186128f7SMauro Carvalho Chehabarchitecture independent and any version from 2.0.0 onward should 279186128f7SMauro Carvalho Chehabwork correctly with this version of the XFS kernel code (2.6.0 or 280186128f7SMauro Carvalho Chehablater is recommended, due to some significant improvements). 281186128f7SMauro Carvalho Chehab 282186128f7SMauro Carvalho ChehabPCMCIAutils 283186128f7SMauro Carvalho Chehab----------- 284186128f7SMauro Carvalho Chehab 285186128f7SMauro Carvalho ChehabPCMCIAutils replaces ``pcmcia-cs``. It properly sets up 286186128f7SMauro Carvalho ChehabPCMCIA sockets at system startup and loads the appropriate modules 287186128f7SMauro Carvalho Chehabfor 16-bit PCMCIA devices if the kernel is modularized and the hotplug 288186128f7SMauro Carvalho Chehabsubsystem is used. 289186128f7SMauro Carvalho Chehab 290186128f7SMauro Carvalho ChehabQuota-tools 291186128f7SMauro Carvalho Chehab----------- 292186128f7SMauro Carvalho Chehab 293186128f7SMauro Carvalho ChehabSupport for 32 bit uid's and gid's is required if you want to use 294186128f7SMauro Carvalho Chehabthe newer version 2 quota format. Quota-tools version 3.07 and 295186128f7SMauro Carvalho Chehabnewer has this support. Use the recommended version or newer 296186128f7SMauro Carvalho Chehabfrom the table above. 297186128f7SMauro Carvalho Chehab 298186128f7SMauro Carvalho ChehabIntel IA32 microcode 299186128f7SMauro Carvalho Chehab-------------------- 300186128f7SMauro Carvalho Chehab 301186128f7SMauro Carvalho ChehabA driver has been added to allow updating of Intel IA32 microcode, 302186128f7SMauro Carvalho Chehabaccessible as a normal (misc) character device. If you are not using 303186128f7SMauro Carvalho Chehabudev you may need to:: 304186128f7SMauro Carvalho Chehab 305186128f7SMauro Carvalho Chehab mkdir /dev/cpu 306186128f7SMauro Carvalho Chehab mknod /dev/cpu/microcode c 10 184 307186128f7SMauro Carvalho Chehab chmod 0644 /dev/cpu/microcode 308186128f7SMauro Carvalho Chehab 309186128f7SMauro Carvalho Chehabas root before you can use this. You'll probably also want to 310186128f7SMauro Carvalho Chehabget the user-space microcode_ctl utility to use with this. 311186128f7SMauro Carvalho Chehab 312186128f7SMauro Carvalho Chehabudev 313186128f7SMauro Carvalho Chehab---- 314186128f7SMauro Carvalho Chehab 315186128f7SMauro Carvalho Chehab``udev`` is a userspace application for populating ``/dev`` dynamically with 316186128f7SMauro Carvalho Chehabonly entries for devices actually present. ``udev`` replaces the basic 317186128f7SMauro Carvalho Chehabfunctionality of devfs, while allowing persistent device naming for 318186128f7SMauro Carvalho Chehabdevices. 319186128f7SMauro Carvalho Chehab 320186128f7SMauro Carvalho ChehabFUSE 321186128f7SMauro Carvalho Chehab---- 322186128f7SMauro Carvalho Chehab 323186128f7SMauro Carvalho ChehabNeeds libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount 324186128f7SMauro Carvalho Chehaboptions ``direct_io`` and ``kernel_cache`` won't work. 325186128f7SMauro Carvalho Chehab 326186128f7SMauro Carvalho ChehabNetworking 327186128f7SMauro Carvalho Chehab********** 328186128f7SMauro Carvalho Chehab 329186128f7SMauro Carvalho ChehabGeneral changes 330186128f7SMauro Carvalho Chehab--------------- 331186128f7SMauro Carvalho Chehab 332186128f7SMauro Carvalho ChehabIf you have advanced network configuration needs, you should probably 333186128f7SMauro Carvalho Chehabconsider using the network tools from ip-route2. 334186128f7SMauro Carvalho Chehab 335186128f7SMauro Carvalho ChehabPacket Filter / NAT 336186128f7SMauro Carvalho Chehab------------------- 337186128f7SMauro Carvalho ChehabThe packet filtering and NAT code uses the same tools like the previous 2.4.x 338186128f7SMauro Carvalho Chehabkernel series (iptables). It still includes backwards-compatibility modules 339186128f7SMauro Carvalho Chehabfor 2.2.x-style ipchains and 2.0.x-style ipfwadm. 340186128f7SMauro Carvalho Chehab 341186128f7SMauro Carvalho ChehabPPP 342186128f7SMauro Carvalho Chehab--- 343186128f7SMauro Carvalho Chehab 344186128f7SMauro Carvalho ChehabThe PPP driver has been restructured to support multilink and to 345186128f7SMauro Carvalho Chehabenable it to operate over diverse media layers. If you use PPP, 346186128f7SMauro Carvalho Chehabupgrade pppd to at least 2.4.0. 347186128f7SMauro Carvalho Chehab 348186128f7SMauro Carvalho ChehabIf you are not using udev, you must have the device file /dev/ppp 349186128f7SMauro Carvalho Chehabwhich can be made by:: 350186128f7SMauro Carvalho Chehab 351186128f7SMauro Carvalho Chehab mknod /dev/ppp c 108 0 352186128f7SMauro Carvalho Chehab 353186128f7SMauro Carvalho Chehabas root. 354186128f7SMauro Carvalho Chehab 355186128f7SMauro Carvalho ChehabNFS-utils 356186128f7SMauro Carvalho Chehab--------- 357186128f7SMauro Carvalho Chehab 358186128f7SMauro Carvalho ChehabIn ancient (2.4 and earlier) kernels, the nfs server needed to know 359186128f7SMauro Carvalho Chehababout any client that expected to be able to access files via NFS. This 360186128f7SMauro Carvalho Chehabinformation would be given to the kernel by ``mountd`` when the client 361186128f7SMauro Carvalho Chehabmounted the filesystem, or by ``exportfs`` at system startup. exportfs 362186128f7SMauro Carvalho Chehabwould take information about active clients from ``/var/lib/nfs/rmtab``. 363186128f7SMauro Carvalho Chehab 364186128f7SMauro Carvalho ChehabThis approach is quite fragile as it depends on rmtab being correct 365186128f7SMauro Carvalho Chehabwhich is not always easy, particularly when trying to implement 366186128f7SMauro Carvalho Chehabfail-over. Even when the system is working well, ``rmtab`` suffers from 367186128f7SMauro Carvalho Chehabgetting lots of old entries that never get removed. 368186128f7SMauro Carvalho Chehab 369186128f7SMauro Carvalho ChehabWith modern kernels we have the option of having the kernel tell mountd 370186128f7SMauro Carvalho Chehabwhen it gets a request from an unknown host, and mountd can give 371186128f7SMauro Carvalho Chehabappropriate export information to the kernel. This removes the 372186128f7SMauro Carvalho Chehabdependency on ``rmtab`` and means that the kernel only needs to know about 373186128f7SMauro Carvalho Chehabcurrently active clients. 374186128f7SMauro Carvalho Chehab 375186128f7SMauro Carvalho ChehabTo enable this new functionality, you need to:: 376186128f7SMauro Carvalho Chehab 377186128f7SMauro Carvalho Chehab mount -t nfsd nfsd /proc/fs/nfsd 378186128f7SMauro Carvalho Chehab 379186128f7SMauro Carvalho Chehabbefore running exportfs or mountd. It is recommended that all NFS 380186128f7SMauro Carvalho Chehabservices be protected from the internet-at-large by a firewall where 381186128f7SMauro Carvalho Chehabthat is possible. 382186128f7SMauro Carvalho Chehab 383186128f7SMauro Carvalho Chehabmcelog 384186128f7SMauro Carvalho Chehab------ 385186128f7SMauro Carvalho Chehab 386186128f7SMauro Carvalho ChehabOn x86 kernels the mcelog utility is needed to process and log machine check 387186128f7SMauro Carvalho Chehabevents when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors 388186128f7SMauro Carvalho Chehabreported by the CPU. Processing them is strongly encouraged. 389186128f7SMauro Carvalho Chehab 390186128f7SMauro Carvalho ChehabKernel documentation 391186128f7SMauro Carvalho Chehab******************** 392186128f7SMauro Carvalho Chehab 393186128f7SMauro Carvalho ChehabSphinx 394186128f7SMauro Carvalho Chehab------ 395186128f7SMauro Carvalho Chehab 396c99fcb58SJonathan CorbetPlease see :ref:`sphinx_install` in Documentation/doc-guide/sphinx.rst 397b8b07b5cSMauro Carvalho Chehabfor details about Sphinx requirements. 398186128f7SMauro Carvalho Chehab 399d07479b2SMiguel Ojedarustdoc 400d07479b2SMiguel Ojeda------- 401d07479b2SMiguel Ojeda 402d07479b2SMiguel Ojeda``rustdoc`` is used to generate the documentation for Rust code. Please see 403d07479b2SMiguel OjedaDocumentation/rust/general-information.rst for more information. 404d07479b2SMiguel Ojeda 405186128f7SMauro Carvalho ChehabGetting updated software 406186128f7SMauro Carvalho Chehab======================== 407186128f7SMauro Carvalho Chehab 408186128f7SMauro Carvalho ChehabKernel compilation 409186128f7SMauro Carvalho Chehab****************** 410186128f7SMauro Carvalho Chehab 411186128f7SMauro Carvalho Chehabgcc 412186128f7SMauro Carvalho Chehab--- 413186128f7SMauro Carvalho Chehab 414186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/gcc/> 415186128f7SMauro Carvalho Chehab 4163519c4d6SNick DesaulniersClang/LLVM 4173519c4d6SNick Desaulniers---------- 4183519c4d6SNick Desaulniers 4193519c4d6SNick Desaulniers- :ref:`Getting LLVM <getting_llvm>`. 4203519c4d6SNick Desaulniers 421d07479b2SMiguel OjedaRust 422d07479b2SMiguel Ojeda---- 423d07479b2SMiguel Ojeda 424d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst. 425d07479b2SMiguel Ojeda 426d07479b2SMiguel Ojedabindgen 427d07479b2SMiguel Ojeda------- 428d07479b2SMiguel Ojeda 429d07479b2SMiguel Ojeda- Documentation/rust/quick-start.rst. 430d07479b2SMiguel Ojeda 431186128f7SMauro Carvalho ChehabMake 432186128f7SMauro Carvalho Chehab---- 433186128f7SMauro Carvalho Chehab 434186128f7SMauro Carvalho Chehab- <ftp://ftp.gnu.org/gnu/make/> 435186128f7SMauro Carvalho Chehab 436da4288b9SMasahiro YamadaBash 437da4288b9SMasahiro Yamada---- 438da4288b9SMasahiro Yamada 439da4288b9SMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bash/> 440da4288b9SMasahiro Yamada 441186128f7SMauro Carvalho ChehabBinutils 442186128f7SMauro Carvalho Chehab-------- 443186128f7SMauro Carvalho Chehab 4443bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/devel/binutils/> 445186128f7SMauro Carvalho Chehab 446033dba2eSMasahiro YamadaFlex 447033dba2eSMasahiro Yamada---- 448033dba2eSMasahiro Yamada 449033dba2eSMasahiro Yamada- <https://github.com/westes/flex/releases> 450033dba2eSMasahiro Yamada 451033dba2eSMasahiro YamadaBison 452033dba2eSMasahiro Yamada----- 453033dba2eSMasahiro Yamada 454033dba2eSMasahiro Yamada- <ftp://ftp.gnu.org/gnu/bison/> 455033dba2eSMasahiro Yamada 456186128f7SMauro Carvalho ChehabOpenSSL 457186128f7SMauro Carvalho Chehab------- 458186128f7SMauro Carvalho Chehab 459186128f7SMauro Carvalho Chehab- <https://www.openssl.org/> 460186128f7SMauro Carvalho Chehab 461186128f7SMauro Carvalho ChehabSystem utilities 462186128f7SMauro Carvalho Chehab**************** 463186128f7SMauro Carvalho Chehab 464186128f7SMauro Carvalho ChehabUtil-linux 465186128f7SMauro Carvalho Chehab---------- 466186128f7SMauro Carvalho Chehab 4673bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/util-linux/> 468186128f7SMauro Carvalho Chehab 469934193a6SRandy DunlapKmod 470934193a6SRandy Dunlap---- 471934193a6SRandy Dunlap 472934193a6SRandy Dunlap- <https://www.kernel.org/pub/linux/utils/kernel/kmod/> 473934193a6SRandy Dunlap- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git> 474934193a6SRandy Dunlap 475186128f7SMauro Carvalho ChehabKsymoops 476186128f7SMauro Carvalho Chehab-------- 477186128f7SMauro Carvalho Chehab 4783bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/> 479186128f7SMauro Carvalho Chehab 480186128f7SMauro Carvalho ChehabMkinitrd 481186128f7SMauro Carvalho Chehab-------- 482186128f7SMauro Carvalho Chehab 483186128f7SMauro Carvalho Chehab- <https://code.launchpad.net/initrd-tools/main> 484186128f7SMauro Carvalho Chehab 485186128f7SMauro Carvalho ChehabE2fsprogs 486186128f7SMauro Carvalho Chehab--------- 487186128f7SMauro Carvalho Chehab 488599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/> 489599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/> 490186128f7SMauro Carvalho Chehab 491186128f7SMauro Carvalho ChehabJFSutils 492186128f7SMauro Carvalho Chehab-------- 493186128f7SMauro Carvalho Chehab 494383f3088SSeongJae Park- <https://jfs.sourceforge.net/> 495186128f7SMauro Carvalho Chehab 496186128f7SMauro Carvalho ChehabXfsprogs 497186128f7SMauro Carvalho Chehab-------- 498186128f7SMauro Carvalho Chehab 499599e6f8dSRandy Dunlap- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git> 500599e6f8dSRandy Dunlap- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/> 501186128f7SMauro Carvalho Chehab 502186128f7SMauro Carvalho ChehabPcmciautils 503186128f7SMauro Carvalho Chehab----------- 504186128f7SMauro Carvalho Chehab 5053bdadc86SSeongJae Park- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/> 506186128f7SMauro Carvalho Chehab 507186128f7SMauro Carvalho ChehabQuota-tools 508186128f7SMauro Carvalho Chehab----------- 509186128f7SMauro Carvalho Chehab 510383f3088SSeongJae Park- <https://sourceforge.net/projects/linuxquota/> 511186128f7SMauro Carvalho Chehab 512186128f7SMauro Carvalho Chehab 513186128f7SMauro Carvalho ChehabIntel P6 microcode 514186128f7SMauro Carvalho Chehab------------------ 515186128f7SMauro Carvalho Chehab 516186128f7SMauro Carvalho Chehab- <https://downloadcenter.intel.com/> 517186128f7SMauro Carvalho Chehab 518186128f7SMauro Carvalho Chehabudev 519186128f7SMauro Carvalho Chehab---- 520186128f7SMauro Carvalho Chehab 521e7b4311eSAlexander A. Klimov- <https://www.freedesktop.org/software/systemd/man/udev.html> 522186128f7SMauro Carvalho Chehab 523186128f7SMauro Carvalho ChehabFUSE 524186128f7SMauro Carvalho Chehab---- 525186128f7SMauro Carvalho Chehab 52686afad7dSMartin Kepplinger- <https://github.com/libfuse/libfuse/releases> 527186128f7SMauro Carvalho Chehab 528186128f7SMauro Carvalho Chehabmcelog 529186128f7SMauro Carvalho Chehab------ 530186128f7SMauro Carvalho Chehab 531383f3088SSeongJae Park- <https://www.mcelog.org/> 532186128f7SMauro Carvalho Chehab 533186128f7SMauro Carvalho ChehabNetworking 534186128f7SMauro Carvalho Chehab********** 535186128f7SMauro Carvalho Chehab 536186128f7SMauro Carvalho ChehabPPP 537186128f7SMauro Carvalho Chehab--- 538186128f7SMauro Carvalho Chehab 539599e6f8dSRandy Dunlap- <https://download.samba.org/pub/ppp/> 540599e6f8dSRandy Dunlap- <https://git.ozlabs.org/?p=ppp.git> 541599e6f8dSRandy Dunlap- <https://github.com/paulusmack/ppp/> 542186128f7SMauro Carvalho Chehab 543186128f7SMauro Carvalho ChehabNFS-utils 544186128f7SMauro Carvalho Chehab--------- 545186128f7SMauro Carvalho Chehab 546383f3088SSeongJae Park- <https://sourceforge.net/project/showfiles.php?group_id=14> 547383f3088SSeongJae Park- <https://nfs.sourceforge.net/> 548186128f7SMauro Carvalho Chehab 549186128f7SMauro Carvalho ChehabIptables 550186128f7SMauro Carvalho Chehab-------- 551186128f7SMauro Carvalho Chehab 552599e6f8dSRandy Dunlap- <https://netfilter.org/projects/iptables/index.html> 553186128f7SMauro Carvalho Chehab 554186128f7SMauro Carvalho ChehabIp-route2 555186128f7SMauro Carvalho Chehab--------- 556186128f7SMauro Carvalho Chehab 557186128f7SMauro Carvalho Chehab- <https://www.kernel.org/pub/linux/utils/net/iproute2/> 558186128f7SMauro Carvalho Chehab 559186128f7SMauro Carvalho ChehabOProfile 560186128f7SMauro Carvalho Chehab-------- 561186128f7SMauro Carvalho Chehab 562383f3088SSeongJae Park- <https://oprofile.sf.net/download/> 563186128f7SMauro Carvalho Chehab 564186128f7SMauro Carvalho ChehabKernel documentation 565186128f7SMauro Carvalho Chehab******************** 566186128f7SMauro Carvalho Chehab 567186128f7SMauro Carvalho ChehabSphinx 568186128f7SMauro Carvalho Chehab------ 569186128f7SMauro Carvalho Chehab 570e7b4311eSAlexander A. Klimov- <https://www.sphinx-doc.org/> 571