asphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget#/translations/zh_CN/process/changesmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/zh_TW/process/changesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/it_IT/process/changesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ja_JP/process/changesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ko_KR/process/changesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/sp_SP/process/changesmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhtarget)}(h .. _changes:h]h}(h]h ]h"]h$]h&]refidchangesuh1hhKhhhhh=/var/lib/git/docbuild/linux/Documentation/process/changes.rstubhsection)}(hhh](htitle)}(h*Minimal requirements to compile the Kernelh]h*Minimal requirements to compile the Kernel}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hIntroh]hIntro}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hzThis document is designed to provide a list of the minimum levels of software necessary to run the current kernel version.h]hzThis document is designed to provide a list of the minimum levels of software necessary to run the current kernel version.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hThis document is originally based on my "Changes" file for 2.0.x kernels and therefore owes credit to the same people as that file (Jared Mauch, Axel Boldt, Alessandro Sigala, and countless other users all over the 'net).h]hThis document is originally based on my “Changes” file for 2.0.x kernels and therefore owes credit to the same people as that file (Jared Mauch, Axel Boldt, Alessandro Sigala, and countless other users all over the ‘net).}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(hCurrent Minimal Requirementsh]hCurrent Minimal Requirements}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hUpgrade to at **least** these software revisions before thinking you've encountered a bug! If you're unsure what version you're currently running, the suggested command should tell you.h](hUpgrade to at }(hjhhhNhNubhstrong)}(h **least**h]hleast}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh these software revisions before thinking you’ve encountered a bug! If you’re unsure what version you’re currently running, the suggested command should tell you.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX Again, keep in mind that this list assumes you are already functionally running a Linux kernel. Also, not all tools are necessary on all systems; obviously, if you don't have any PC Card hardware, for example, you probably needn't concern yourself with pcmciautils.h]hXAgain, keep in mind that this list assumes you are already functionally running a Linux kernel. Also, not all tools are necessary on all systems; obviously, if you don’t have any PC Card hardware, for example, you probably needn’t concern yourself with pcmciautils.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j?hj<ubj@)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j?hj<ubj@)}(hhh]h}(h]h ]h"]h$]h&]colwidthK(uh1j?hj<ubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hProgramh]hProgram}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjkubah}(h]h ]h"]h$]h&]uh1jihjfubjj)}(hhh]h)}(hMinimal versionh]hMinimal version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jihjfubjj)}(hhh]h)}(hCommand to check the versionh]hCommand to check the version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jihjfubeh}(h]h ]h"]h$]h&]uh1jdhjaubah}(h]h ]h"]h$]h&]uh1j_hj<ubhtbody)}(hhh](je)}(hhh](jj)}(hhh]h)}(hGNU Ch]hGNU C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h8.1h]h8.1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h gcc --versionh]h gcc --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hClang/LLVM (optional)h]hClang/LLVM (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h15.0.0h]h15.0.0}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hj)ubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hclang --versionh]hclang --version}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hj@ubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hRust (optional)h]hRust (optional)}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hj`ubah}(h]h ]h"]h$]h&]uh1jihj]ubjj)}(hhh]h)}(h1.78.0h]h1.78.0}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjwubah}(h]h ]h"]h$]h&]uh1jihj]ubjj)}(hhh]h)}(hrustc --versionh]hrustc --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1jihj]ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hbindgen (optional)h]hbindgen (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h0.65.1h]h0.65.1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hbindgen --versionh]hbindgen --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hGNU makeh]hGNU make}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h4.0h]h4.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hmake --versionh]hmake --version}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hj*ubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hbashh]hbash}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjJubah}(h]h ]h"]h$]h&]uh1jihjGubjj)}(hhh]h)}(h4.2h]h4.2}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjaubah}(h]h ]h"]h$]h&]uh1jihjGubjj)}(hhh]h)}(hbash --versionh]hbash --version}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjxubah}(h]h ]h"]h$]h&]uh1jihjGubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hbinutilsh]hbinutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h2.30h]h2.30}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hld -vh]hld -v}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hflexh]hflex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h2.5.35h]h2.5.35}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hflex --versionh]hflex --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hbisonh]hbison}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hj4ubah}(h]h ]h"]h$]h&]uh1jihj1ubjj)}(hhh]h)}(h2.0h]h2.0}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjKubah}(h]h ]h"]h$]h&]uh1jihj1ubjj)}(hhh]h)}(hbison --versionh]hbison --version}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjbubah}(h]h ]h"]h$]h&]uh1jihj1ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hpaholeh]hpahole}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h1.16h]h1.16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hpahole --versionh]hpahole --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(h util-linuxh]h util-linux}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h2.10oh]h2.10o}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hmount --versionh]hmount --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hkmodh]hkmod}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h13h]h13}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hj5ubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h depmod -Vh]h depmod -V}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjLubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(h e2fsprogsh]h e2fsprogs}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjlubah}(h]h ]h"]h$]h&]uh1jihjiubjj)}(hhh]h)}(h1.41.4h]h1.41.4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jihjiubjj)}(hhh]h)}(h e2fsck -Vh]h e2fsck -V}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jihjiubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hjfsutilsh]hjfsutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h1.1.3h]h1.1.3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h fsck.jfs -Vh]h fsck.jfs -V}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hxfsprogsh]hxfsprogs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h2.6.0h]h2.6.0}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h xfs_db -Vh]h xfs_db -V}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hj6ubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hsquashfs-toolsh]hsquashfs-tools}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjVubah}(h]h ]h"]h$]h&]uh1jihjSubjj)}(hhh]h)}(h4.0h]h4.0}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjmubah}(h]h ]h"]h$]h&]uh1jihjSubjj)}(hhh]h)}(hmksquashfs -versionh]hmksquashfs -version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jihjSubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(h btrfs-progsh]h btrfs-progs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h0.18h]h0.18}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hbtrfs --versionh]hbtrfs --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(h pcmciautilsh]h pcmciautils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h004h]h004}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hj ubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h pccardctl -Vh]h pccardctl -V}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hj ubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(h quota-toolsh]h quota-tools}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hj@ubah}(h]h ]h"]h$]h&]uh1jihj=ubjj)}(hhh]h)}(h3.09h]h3.09}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjWubah}(h]h ]h"]h$]h&]uh1jihj=ubjj)}(hhh]h)}(hquota -Vh]hquota -V}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjnubah}(h]h ]h"]h$]h&]uh1jihj=ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h2.4.0h]h2.4.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hpppd --versionh]hpppd --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(h nfs-utilsh]h nfs-utils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h1.0.5h]h1.0.5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hshowmount --versionh]hshowmount --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hj ubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hprocpsh]hprocps}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hj*ubah}(h]h ]h"]h$]h&]uh1jihj'ubjj)}(hhh]h)}(h3.2.0h]h3.2.0}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjAubah}(h]h ]h"]h$]h&]uh1jihj'ubjj)}(hhh]h)}(h ps --versionh]h ps --version}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjXubah}(h]h ]h"]h$]h&]uh1jihj'ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hudevh]hudev}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjxubah}(h]h ]h"]h$]h&]uh1jihjuubjj)}(hhh]h)}(h081h]h081}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1jihjuubjj)}(hhh]h)}(hudevd --versionh]hudevd --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1jihjuubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hgrubh]hgrub}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h0.93h]h0.93}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h(grub --version || grub-install --versionh]h(grub --version || grub-install --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hmcelogh]hmcelog}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h0.6h]h0.6}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hj+ ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(hmcelog --versionh]hmcelog --version}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjB ubah}(h]h ]h"]h$]h&]uh1jihj ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hiptablesh]hiptables}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjb ubah}(h]h ]h"]h$]h&]uh1jihj_ ubjj)}(hhh]h)}(h1.4.2h]h1.4.2}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjy ubah}(h]h ]h"]h$]h&]uh1jihj_ ubjj)}(hhh]h)}(h iptables -Vh]h iptables -V}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hj ubah}(h]h ]h"]h$]h&]uh1jihj_ ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hopenssl & libcryptoh]hopenssl & libcrypto}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h1.0.0h]h1.0.0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(hopenssl versionh]hopenssl version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj ubah}(h]h ]h"]h$]h&]uh1jihj ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hbch]hbc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h1.06.95h]h1.06.95}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h bc --versionh]h bc --version}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hj, ubah}(h]h ]h"]h$]h&]uh1jihj ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hSphinx\ [#f1]_h](hSphinx }(hjO hhhNhNubhfootnote_reference)}(h[#f1]_h]h1}(hjY hhhNhNubah}(h]id1ah ]h"]h$]h&]autoKhf1docnameprocess/changesuh1jW hjO resolvedKubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h6.6.5h]h6.6.5}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(hgtags --versionh]hgtags --version}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hj, ubah}(h]h ]h"]h$]h&]uh1jihj ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hmkimage (optional)h]hmkimage (optional)}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjL ubah}(h]h ]h"]h$]h&]uh1jihjI ubjj)}(hhh]h)}(h2017.01h]h2017.01}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjc ubah}(h]h ]h"]h$]h&]uh1jihjI ubjj)}(hhh]h)}(hmkimage --versionh]hmkimage --version}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjz ubah}(h]h ]h"]h$]h&]uh1jihjI ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hPythonh]hPython}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h3.9.xh]h3.9.x}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(hpython3 --versionh]hpython3 --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj ubah}(h]h ]h"]h$]h&]uh1jihj ubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hGNU AWK (optional)h]hGNU AWK (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h5.1.0h]h5.1.0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(hgawk --versionh]hgawk --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1jihj ubeh}(h]h ]h"]h$]h&]uh1jdhjubeh}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]colsKuh1j:hj7ubah}(h]h ]h"]h$]h&]uh1j5hhhhhhhNubhfootnote)}(h8Sphinx is needed only to build the Kernel documentation h](hlabel)}(hhh]h1}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjH hhhNhNubh)}(h7Sphinx is needed only to build the Kernel documentationh]h7Sphinx is needed only to build the Kernel documentation}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjH ubeh}(h]ji ah ]h"]f1ah$]h&]jc ajh Kjj jk uh1jF hhhKDhhhhubeh}(h]current-minimal-requirementsah ]h"]current minimal requirementsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hKernel compilationh]hKernel compilation}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx hhhhhKGubh)}(hhh](h)}(hGCCh]hGCC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKJubh)}(hTThe gcc version requirements may vary depending on the type of CPU in your computer.h]hTThe gcc version requirements may vary depending on the type of CPU in your computer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhj hhubeh}(h]gccah ]h"]h$]gccah&]uh1hhjx hhhhhKJ referencedKubh)}(hhh](h)}(hClang/LLVM (optional)h]hClang/LLVM (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKPubh)}(hXhThe latest formal release of clang and LLVM utils (according to `releases.llvm.org `_) are supported for building kernels. Older releases aren't guaranteed to work, and we may drop workarounds from the kernel that were used to support older versions. Please see additional docs on :ref:`Building Linux with Clang/LLVM `.h](h@The latest formal release of clang and LLVM utils (according to }(hj hhhNhNubh reference)}(h0`releases.llvm.org `_h]hreleases.llvm.org}(hj hhhNhNubah}(h]h ]h"]h$]h&]namereleases.llvm.orgrefurihttps://releases.llvm.orguh1j hj ubh)}(h h]h}(h]releases-llvm-orgah ]h"]releases.llvm.orgah$]h&]refurij uh1hj Khj ubh) are supported for building kernels. Older releases aren’t guaranteed to work, and we may drop workarounds from the kernel that were used to support older versions. Please see additional docs on }(hj hhhNhNubh)}(h3:ref:`Building Linux with Clang/LLVM `h]hinline)}(hj h]hBuilding Linux with Clang/LLVM}(hj hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]refdocjk refdomainj reftyperef refexplicitrefwarn reftarget kbuild_llvmuh1hhhhKRhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKRhj hhubeh}(h]clang-llvm-optionalah ]h"]clang/llvm (optional)ah$]h&]uh1hhjx hhhhhKPubh)}(hhh](h)}(hRust (optional)h]hRust (optional)}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj% hhhhhKYubh)}(h2A recent version of the Rust compiler is required.h]h2A recent version of the Rust compiler is required.}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hj% hhubh)}(hPlease see Documentation/rust/quick-start.rst for instructions on how to satisfy the build requirements of Rust support. In particular, the ``Makefile`` target ``rustavailable`` is useful to check why the Rust toolchain may not be detected.h](hPlease see Documentation/rust/quick-start.rst for instructions on how to satisfy the build requirements of Rust support. In particular, the }(hjD hhhNhNubhliteral)}(h ``Makefile``h]hMakefile}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjD ubh target }(hjD hhhNhNubjM )}(h``rustavailable``h]h rustavailable}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjD ubh? is useful to check why the Rust toolchain may not be detected.}(hjD hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK]hj% hhubeh}(h] rust-optionalah ]h"]rust (optional)ah$]h&]uh1hhjx hhhhhKYubh)}(hhh](h)}(hbindgen (optional)h]hbindgen (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKcubh)}(hj``bindgen`` is used to generate the Rust bindings to the C side of the kernel. It depends on ``libclang``.h](jM )}(h ``bindgen``h]hbindgen}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj ubhR is used to generate the Rust bindings to the C side of the kernel. It depends on }(hj hhhNhNubjM )}(h ``libclang``h]hlibclang}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKehj hhubeh}(h]bindgen-optionalah ]h"]bindgen (optional)ah$]h&]uh1hhjx hhhhhKcubh)}(hhh](h)}(hMakeh]hMake}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKiubh)}(h8You will need GNU make 4.0 or later to build the kernel.h]h8You will need GNU make 4.0 or later to build the kernel.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhj hhubeh}(h]makeah ]h"]h$]makeah&]uh1hhjx hhhhhKij Kubh)}(hhh](h)}(hBashh]hBash}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKnubh)}(hMSome bash scripts are used for the kernel build. Bash 4.2 or newer is needed.h]hMSome bash scripts are used for the kernel build. Bash 4.2 or newer is needed.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj hhubeh}(h]bashah ]h"]h$]bashah&]uh1hhjx hhhhhKnj Kubh)}(hhh](h)}(hBinutilsh]hBinutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKtubh)}(h5Binutils 2.30 or newer is needed to build the kernel.h]h5Binutils 2.30 or newer is needed to build the kernel.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjhhubeh}(h]binutilsah ]h"]h$]binutilsah&]uh1hhjx hhhhhKtj Kubh)}(hhh](h)}(h pkg-configh]h pkg-config}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhKyubh)}(hThe build system, as of 4.18, requires pkg-config to check for installed kconfig tools and to determine flags settings for use in 'make {g,x}config'. Previously pkg-config was being used but not verified or documented.h]hThe build system, as of 4.18, requires pkg-config to check for installed kconfig tools and to determine flags settings for use in ‘make {g,x}config’. Previously pkg-config was being used but not verified or documented.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hj<hhubeh}(h] pkg-configah ]h"] pkg-configah$]h&]uh1hhjx hhhhhKyubh)}(hhh](h)}(hFlexh]hFlex}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhKubh)}(hqSince Linux 4.16, the build system generates lexical analyzers during build. This requires flex 2.5.35 or later.h]hqSince Linux 4.16, the build system generates lexical analyzers during build. This requires flex 2.5.35 or later.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjchhubeh}(h]flexah ]h"]h$]flexah&]uh1hhjx hhhhhKj Kubh)}(hhh](h)}(hBisonh]hBison}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(heSince Linux 4.16, the build system generates parsers during build. This requires bison 2.0 or later.h]heSince Linux 4.16, the build system generates parsers during build. This requires bison 2.0 or later.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]bisonah ]h"]h$]bisonah&]uh1hhjx hhhhhKj Kubh)}(hhh](h)}(hpaholeh]hpahole}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hSince Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system generates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel modules as well. This requires pahole v1.16 or later.h]hSince Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system generates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel modules as well. This requires pahole v1.16 or later.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hiIt is found in the 'dwarves' or 'pahole' distro packages or from https://fedorapeople.org/~acme/dwarves/.h](hIIt is found in the ‘dwarves’ or ‘pahole’ distro packages or from }(hjhhhNhNubj )}(h'https://fedorapeople.org/~acme/dwarves/h]h'https://fedorapeople.org/~acme/dwarves/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]paholeah ]h"]paholeah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hPerlh]hPerl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hYou will need perl 5 and the following modules: ``Getopt::Long``, ``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.h](h0You will need perl 5 and the following modules: }(hj hhhNhNubjM )}(h``Getopt::Long``h]h Getopt::Long}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj ubh, }(hj hhhNhNubjM )}(h``Getopt::Std``h]h Getopt::Std}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj ubh, }(hj hhhNhNubjM )}(h``File::Basename``h]hFile::Basename}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj ubh, and }(hj hhhNhNubjM )}(h``File::Find``h]h File::Find}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj ubh to build the kernel.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]perlah ]h"]perlah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hPythonh]hPython}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhhKubh)}(hSeveral config options require it: it is required for arm/arm64 default configs, CONFIG_LTO_CLANG, some DRM optional configs, the kernel-doc tool, and docs build (Sphinx), among others.h]hSeveral config options require it: it is required for arm/arm64 default configs, CONFIG_LTO_CLANG, some DRM optional configs, the kernel-doc tool, and docs build (Sphinx), among others.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhhubeh}(h]pythonah ]h"]pythonah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hBCh]hBC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h1You will need bc to build kernels 3.10 and higherh]h1You will need bc to build kernels 3.10 and higher}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]bcah ]h"]bcah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hOpenSSLh]hOpenSSL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hModule signing and external certificate handling use the OpenSSL program and crypto library to do key creation and signature generation.h]hModule signing and external certificate handling use the OpenSSL program and crypto library to do key creation and signature generation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hYou will need openssl to build kernels 3.7 and higher if module signing is enabled. You will also need openssl development packages to build kernels 4.3 and higher.h]hYou will need openssl to build kernels 3.7 and higher if module signing is enabled. You will also need openssl development packages to build kernels 4.3 and higher.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]opensslah ]h"]h$]opensslah&]uh1hhjx hhhhhKj Kubh)}(hhh](h)}(hTarh]hTar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hbGNU tar is needed if you want to enable access to the kernel headers via sysfs (CONFIG_IKHEADERS).h]hbGNU tar is needed if you want to enable access to the kernel headers via sysfs (CONFIG_IKHEADERS).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]tarah ]h"]tarah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hgtags / GNU GLOBAL (optional)h]hgtags / GNU GLOBAL (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe kernel build requires GNU GLOBAL version 6.6.5 or later to generate tag files through ``make gtags``. This is due to its use of the gtags ``-C (--directory)`` flag.h](hZThe kernel build requires GNU GLOBAL version 6.6.5 or later to generate tag files through }(hj#hhhNhNubjM )}(h``make gtags``h]h make gtags}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj#ubh'. This is due to its use of the gtags }(hj#hhhNhNubjM )}(h``-C (--directory)``h]h-C (--directory)}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj#ubh flag.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]gtags-gnu-global-optionalah ]h"]gtags / gnu global (optional)ah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hmkimageh]hmkimage}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hhhhhKubh)}(hX This tool is used when building a Flat Image Tree (FIT), commonly used on ARM platforms. The tool is available via the ``u-boot-tools`` package or can be built from the U-Boot source code. See the instructions at https://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linuxh](hwThis tool is used when building a Flat Image Tree (FIT), commonly used on ARM platforms. The tool is available via the }(hjnhhhNhNubjM )}(h``u-boot-tools``h]h u-boot-tools}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjnubhN package or can be built from the U-Boot source code. See the instructions at }(hjnhhhNhNubj )}(hKhttps://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linuxh]hKhttps://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linux}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjnubeh}(h]h ]h"]h$]h&]uh1hhhhKhj]hhubeh}(h]mkimageah ]h"]mkimageah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hGNU AWKh]hGNU AWK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h~GNU AWK is needed if you want kernel builds to generate address range data for builtin modules (CONFIG_BUILTIN_MODULE_RANGES).h]h~GNU AWK is needed if you want kernel builds to generate address range data for builtin modules (CONFIG_BUILTIN_MODULE_RANGES).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]gnu-awkah ]h"]gnu awkah$]h&]uh1hhjx hhhhhKubeh}(h]kernel-compilationah ]h"]h$]kernel compilationah&]uh1hhhhhhhhKGj Kubh)}(hhh](h)}(hSystem utilitiesh]hSystem utilities}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hArchitectural changesh]hArchitectural changes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hcDevFS has been obsoleted in favour of udev (https://www.kernel.org/pub/linux/utils/kernel/hotplug/)h](h,DevFS has been obsoleted in favour of udev (}(hjhhhNhNubj )}(h6https://www.kernel.org/pub/linux/utils/kernel/hotplug/h]h6https://www.kernel.org/pub/linux/utils/kernel/hotplug/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h.32-bit UID support is now in place. Have fun!h]h.32-bit UID support is now in place. Have fun!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hXLinux documentation for functions is transitioning to inline documentation via specially-formatted comments near their definitions in the source. These comments can be combined with ReST files the Documentation/ directory to make enriched documentation, which can then be converted to PostScript, HTML, LaTex, ePUB and PDF files. In order to convert from ReST format to a format of your choice, you'll need Sphinx.h]hXLinux documentation for functions is transitioning to inline documentation via specially-formatted comments near their definitions in the source. These comments can be combined with ReST files the Documentation/ directory to make enriched documentation, which can then be converted to PostScript, HTML, LaTex, ePUB and PDF files. In order to convert from ReST format to a format of your choice, you’ll need Sphinx.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]architectural-changesah ]h"]architectural changesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h Util-linuxh]h Util-linux}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hhhhhKubh)}(hNew versions of util-linux provide ``fdisk`` support for larger disks, support new options to mount, recognize more supported partition types, and similar goodies. You'll probably want to upgrade.h](h#New versions of util-linux provide }(hjLhhhNhNubjM )}(h ``fdisk``h]hfdisk}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjLubh support for larger disks, support new options to mount, recognize more supported partition types, and similar goodies. You’ll probably want to upgrade.}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj;hhubeh}(h] util-linuxah ]h"]h$] util-linuxah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hKsymoopsh]hKsymoops}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhKubh)}(hXIf the unthinkable happens and your kernel oopses, you may need the ksymoops tool to decode it, but in most cases you don't. It is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so that it produces readable dumps that can be used as-is (this also produces better output than ksymoops). If for some reason your kernel is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and reproduce the Oops with that option, then you can still decode that Oops with ksymoops.h](hIf the unthinkable happens and your kernel oopses, you may need the ksymoops tool to decode it, but in most cases you don’t. It is generally preferred to build the kernel with }(hjhhhNhNubjM )}(h``CONFIG_KALLSYMS``h]hCONFIG_KALLSYMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh so that it produces readable dumps that can be used as-is (this also produces better output than ksymoops). If for some reason your kernel is not build with }(hjhhhNhNubjM )}(h``CONFIG_KALLSYMS``h]hCONFIG_KALLSYMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh{ and you have no way to rebuild and reproduce the Oops with that option, then you can still decode that Oops with ksymoops.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjthhubeh}(h]ksymoopsah ]h"]h$]ksymoopsah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hMkinitrdh]hMkinitrd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h^These changes to the ``/lib/modules`` file tree layout also require that mkinitrd be upgraded.h](hThese changes to the }(hjhhhNhNubjM )}(h``/lib/modules``h]h /lib/modules}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh9 file tree layout also require that mkinitrd be upgraded.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]mkinitrdah ]h"]h$]mkinitrdah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(h E2fsprogsh]h E2fsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(htThe latest version of ``e2fsprogs`` fixes several bugs in fsck and debugfs. Obviously, it's a good idea to upgrade.h](hThe latest version of }(hj hhhNhNubjM )}(h ``e2fsprogs``h]h e2fsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj ubhS fixes several bugs in fsck and debugfs. Obviously, it’s a good idea to upgrade.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] e2fsprogsah ]h"]h$] e2fsprogsah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hhhhhMubh)}(hkThe ``jfsutils`` package contains the utilities for the file system. The following utilities are available:h](hThe }(hjBhhhNhNubjM )}(h ``jfsutils``h]hjfsutils}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjBubh[ package contains the utilities for the file system. The following utilities are available:}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj1hhubh bullet_list)}(hhh](h list_item)}(hg``fsck.jfs`` - initiate replay of the transaction log, and check and repair a JFS formatted partition. h]h)}(hf``fsck.jfs`` - initiate replay of the transaction log, and check and repair a JFS formatted partition.h](jM )}(h ``fsck.jfs``h]hfsck.jfs}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjmubhZ - initiate replay of the transaction log, and check and repair a JFS formatted partition.}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjiubah}(h]h ]h"]h$]h&]uh1jghjdhhhhhNubjh)}(h1``mkfs.jfs`` - create a JFS formatted partition. h]h)}(h0``mkfs.jfs`` - create a JFS formatted partition.h](jM )}(h ``mkfs.jfs``h]hmkfs.jfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh$ - create a JFS formatted partition.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jghjdhhhhhNubjh)}(h@other file system utilities are also available in this package. h]h)}(h?other file system utilities are also available in this package.h]h?other file system utilities are also available in this package.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jghjdhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jbhhhMhj1hhubeh}(h]jfsutilsah ]h"]h$]jfsutilsah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hXUThe latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the ``xfs_repair`` utilities, among others, for the XFS filesystem. It is architecture independent and any version from 2.0.0 onward should work correctly with this version of the XFS kernel code (2.6.0 or later is recommended, due to some significant improvements).h](hThe latest version of }(hjhhhNhNubjM )}(h ``xfsprogs``h]hxfsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh contains }(hjhhhNhNubjM )}(h ``mkfs.xfs``h]hmkfs.xfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh, }(hjhhhNhNubjM )}(h ``xfs_db``h]hxfs_db}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh , and the }(hjhhhNhNubjM )}(h``xfs_repair``h]h xfs_repair}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh utilities, among others, for the XFS filesystem. It is architecture independent and any version from 2.0.0 onward should work correctly with this version of the XFS kernel code (2.6.0 or later is recommended, due to some significant improvements).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]xfsprogsah ]h"]h$]xfsprogsah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h PCMCIAutilsh]h PCMCIAutils}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhhhhhMubh)}(hPCMCIAutils replaces ``pcmcia-cs``. It properly sets up PCMCIA sockets at system startup and loads the appropriate modules for 16-bit PCMCIA devices if the kernel is modularized and the hotplug subsystem is used.h](hPCMCIAutils replaces }(hj]hhhNhNubjM )}(h ``pcmcia-cs``h]h pcmcia-cs}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj]ubh. It properly sets up PCMCIA sockets at system startup and loads the appropriate modules for 16-bit PCMCIA devices if the kernel is modularized and the hotplug subsystem is used.}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjLhhubeh}(h] pcmciautilsah ]h"]h$] pcmciautilsah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Quota-toolsh]h Quota-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM!ubh)}(hSupport for 32 bit uid's and gid's is required if you want to use the newer version 2 quota format. Quota-tools version 3.07 and newer has this support. Use the recommended version or newer from the table above.h]hSupport for 32 bit uid’s and gid’s is required if you want to use the newer version 2 quota format. Quota-tools version 3.07 and newer has this support. Use the recommended version or newer from the table above.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hjhhubeh}(h] quota-toolsah ]h"]h$] quota-toolsah&]uh1hhjhhhhhM!j Kubh)}(hhh](h)}(hIntel IA32 microcodeh]hIntel IA32 microcode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM)ubh)}(hA driver has been added to allow updating of Intel IA32 microcode, accessible as a normal (misc) character device. If you are not using udev you may need to::h]hA driver has been added to allow updating of Intel IA32 microcode, accessible as a normal (misc) character device. If you are not using udev you may need to:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM+hjhhubh literal_block)}(hNmkdir /dev/cpu mknod /dev/cpu/microcode c 10 184 chmod 0644 /dev/cpu/microcodeh]hNmkdir /dev/cpu mknod /dev/cpu/microcode c 10 184 chmod 0644 /dev/cpu/microcode}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhM/hjhhubh)}(hyas root before you can use this. You'll probably also want to get the user-space microcode_ctl utility to use with this.h]h{as root before you can use this. You’ll probably also want to get the user-space microcode_ctl utility to use with this.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hjhhubeh}(h]intel-ia32-microcodeah ]h"]intel ia32 microcodeah$]h&]uh1hhjhhhhhM)ubh)}(hhh](h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM7ubh)}(h``udev`` is a userspace application for populating ``/dev`` dynamically with only entries for devices actually present. ``udev`` replaces the basic functionality of devfs, while allowing persistent device naming for devices.h](jM )}(h``udev``h]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh+ is a userspace application for populating }(hjhhhNhNubjM )}(h``/dev``h]h/dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh= dynamically with only entries for devices actually present. }(hjhhhNhNubjM )}(h``udev``h]hudev}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh` replaces the basic functionality of devfs, while allowing persistent device naming for devices.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM9hjhhubeh}(h]udevah ]h"]h$]udevah&]uh1hhjhhhhhM7j Kubh)}(hhh](h)}(hFUSEh]hFUSE}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhhhhhM?ubh)}(hyNeeds libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount options ``direct_io`` and ``kernel_cache`` won't work.h](hKNeeds libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount options }(hj]hhhNhNubjM )}(h ``direct_io``h]h direct_io}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj]ubh and }(hj]hhhNhNubjM )}(h``kernel_cache``h]h kernel_cache}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj]ubh won’t work.}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMAhjLhhubeh}(h]fuseah ]h"]h$]fuseah&]uh1hhjhhhhhM?j Kubeh}(h]system-utilitiesah ]h"]h$]system utilitiesah&]uh1hhhhhhhhKj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMEubh)}(hhh](h)}(hGeneral changesh]hGeneral changes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMHubh)}(hvIf you have advanced network configuration needs, you should probably consider using the network tools from ip-route2.h]hvIf you have advanced network configuration needs, you should probably consider using the network tools from ip-route2.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMJhjhhubeh}(h]general-changesah ]h"]general changesah$]h&]uh1hhjhhhhhMHubh)}(hhh](h)}(hPacket Filter / NATh]hPacket Filter / NAT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMNubh)}(hThe packet filtering and NAT code uses the same tools like the previous 2.4.x kernel series (iptables). It still includes backwards-compatibility modules for 2.2.x-style ipchains and 2.0.x-style ipfwadm.h]hThe packet filtering and NAT code uses the same tools like the previous 2.4.x kernel series (iptables). It still includes backwards-compatibility modules for 2.2.x-style ipchains and 2.0.x-style ipfwadm.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhjhhubeh}(h]packet-filter-natah ]h"]packet filter / natah$]h&]uh1hhjhhhhhMNubh)}(hhh](h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMTubh)}(hThe PPP driver has been restructured to support multilink and to enable it to operate over diverse media layers. If you use PPP, upgrade pppd to at least 2.4.0.h]hThe PPP driver has been restructured to support multilink and to enable it to operate over diverse media layers. If you use PPP, upgrade pppd to at least 2.4.0.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMVhjhhubh)}(hXIf you are not using udev, you must have the device file /dev/ppp which can be made by::h]hWIf you are not using udev, you must have the device file /dev/ppp which can be made by:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMZhjhhubj)}(hmknod /dev/ppp c 108 0h]hmknod /dev/ppp c 108 0}hj+sbah}(h]h ]h"]h$]h&]jjuh1jhhhM]hjhhubh)}(has root.h]has root.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM_hjhhubeh}(h]pppah ]h"]h$]pppah&]uh1hhjhhhhhMTj Kubh)}(hhh](h)}(h NFS-utilsh]h NFS-utils}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhhhhhMbubh)}(hXdIn ancient (2.4 and earlier) kernels, the nfs server needed to know about any client that expected to be able to access files via NFS. This information would be given to the kernel by ``mountd`` when the client mounted the filesystem, or by ``exportfs`` at system startup. exportfs would take information about active clients from ``/var/lib/nfs/rmtab``.h](hIn ancient (2.4 and earlier) kernels, the nfs server needed to know about any client that expected to be able to access files via NFS. This information would be given to the kernel by }(hj`hhhNhNubjM )}(h ``mountd``h]hmountd}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj`ubh/ when the client mounted the filesystem, or by }(hj`hhhNhNubjM )}(h ``exportfs``h]hexportfs}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj`ubhO at system startup. exportfs would take information about active clients from }(hj`hhhNhNubjM )}(h``/var/lib/nfs/rmtab``h]h/var/lib/nfs/rmtab}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj`ubh.}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMdhjOhhubh)}(hXThis approach is quite fragile as it depends on rmtab being correct which is not always easy, particularly when trying to implement fail-over. Even when the system is working well, ``rmtab`` suffers from getting lots of old entries that never get removed.h](hThis approach is quite fragile as it depends on rmtab being correct which is not always easy, particularly when trying to implement fail-over. Even when the system is working well, }(hjhhhNhNubjM )}(h ``rmtab``h]hrmtab}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubhA suffers from getting lots of old entries that never get removed.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMjhjOhhubh)}(hX-With modern kernels we have the option of having the kernel tell mountd when it gets a request from an unknown host, and mountd can give appropriate export information to the kernel. This removes the dependency on ``rmtab`` and means that the kernel only needs to know about currently active clients.h](hWith modern kernels we have the option of having the kernel tell mountd when it gets a request from an unknown host, and mountd can give appropriate export information to the kernel. This removes the dependency on }(hjhhhNhNubjM )}(h ``rmtab``h]hrmtab}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubhM and means that the kernel only needs to know about currently active clients.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMohjOhhubh)}(h/To enable this new functionality, you need to::h]h.To enable this new functionality, you need to:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMuhjOhhubj)}(h mount -t nfsd nfsd /proc/fs/nfsdh]h mount -t nfsd nfsd /proc/fs/nfsd}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhMwhjOhhubh)}(hbefore running exportfs or mountd. It is recommended that all NFS services be protected from the internet-at-large by a firewall where that is possible.h]hbefore running exportfs or mountd. It is recommended that all NFS services be protected from the internet-at-large by a firewall where that is possible.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMyhjOhhubeh}(h] nfs-utilsah ]h"]h$] nfs-utilsah&]uh1hhjhhhhhMbj Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM~ubh)}(hOn x86 kernels the mcelog utility is needed to process and log machine check events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors reported by the CPU. Processing them is strongly encouraged.h](hYOn x86 kernels the mcelog utility is needed to process and log machine check events when }(hj'hhhNhNubjM )}(h``CONFIG_X86_MCE``h]hCONFIG_X86_MCE}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj'ubhi is enabled. Machine check events are errors reported by the CPU. Processing them is strongly encouraged.}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]mcelogah ]h"]h$]mcelogah&]uh1hhjhhhhhM~j Kubeh}(h] networkingah ]h"]h$] networkingah&]uh1hhhhhhhhMEj Kubh)}(hhh](h)}(hKernel documentationh]hKernel documentation}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhhhhhMubh)}(hhh](h)}(hSphinxh]hSphinx}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhhMubh)}(hPlease see :ref:`sphinx_install` in :ref:`Documentation/doc-guide/sphinx.rst ` for details about Sphinx requirements.h](h Please see }(hjyhhhNhNubh)}(h:ref:`sphinx_install`h]j )}(hjh]hsphinx_install}(hjhhhNhNubah}(h]h ](j stdstd-refeh"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]refdocjk refdomainjreftyperef refexplicitrefwarnj sphinx_installuh1hhhhMhjyubh in }(hjyhhhNhNubh)}(h5:ref:`Documentation/doc-guide/sphinx.rst `h]j )}(hjh]h"Documentation/doc-guide/sphinx.rst}(hjhhhNhNubah}(h]h ](j stdstd-refeh"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]refdocjk refdomainjreftyperef refexplicitrefwarnj sphinxdocuh1hhhhMhjyubh' for details about Sphinx requirements.}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhhubeh}(h]sphinxah ]h"]h$]sphinxah&]uh1hhjWhhhhhMj Kubh)}(hhh](h)}(hrustdoch]hrustdoc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(h``rustdoc`` is used to generate the documentation for Rust code. Please see Documentation/rust/general-information.rst for more information.h](jM )}(h ``rustdoc``h]hrustdoc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh is used to generate the documentation for Rust code. Please see Documentation/rust/general-information.rst for more information.۔}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]rustdocah ]h"]rustdocah$]h&]uh1hhjWhhhhhMubeh}(h]kernel-documentationah ]h"]h$]kernel documentationah&]uh1hhhhhhhhMj Kubeh}(h]introah ]h"]introah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hGetting updated softwareh]hGetting updated software}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hKernel compilationh]hKernel compilation}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hhhhhMubh)}(hhh](h)}(hgcch]hgcc}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hhhhhMubjc)}(hhh]jh)}(h h]h)}(hh](h<}(hjVhhhNhNubj )}(hftp://ftp.gnu.org/gnu/gcc/h]hftp://ftp.gnu.org/gnu/gcc/}(hj^hhhNhNubah}(h]h ]h"]h$]h&]refurij`uh1j hjVubh>}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjRubah}(h]h ]h"]h$]h&]uh1jghjOhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhj>hhubeh}(h]id3ah ]h"]h$]j ah&]uh1hhj-hhhhhMj Kubh)}(hhh](h)}(h Clang/LLVMh]h Clang/LLVM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h$:ref:`Getting LLVM `. h]h)}(h#:ref:`Getting LLVM `.h](h)}(h":ref:`Getting LLVM `h]j )}(hjh]h Getting LLVM}(hjhhhNhNubah}(h]h ](j stdstd-refeh"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]refdocjk refdomainjreftyperef refexplicitrefwarnj getting_llvmuh1hhhhMhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h] clang-llvmah ]h"] clang/llvmah$]h&]uh1hhj-hhhhhMubh)}(hhh](h)}(hRusth]hRust}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h$Documentation/rust/quick-start.rst. h]h)}(h#Documentation/rust/quick-start.rst.h]h#Documentation/rust/quick-start.rst.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]rustah ]h"]rustah$]h&]uh1hhj-hhhhhMubh)}(hhh](h)}(hbindgenh]hbindgen}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h$Documentation/rust/quick-start.rst. h]h)}(h#Documentation/rust/quick-start.rst.h]h#Documentation/rust/quick-start.rst.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj2ubah}(h]h ]h"]h$]h&]uh1jghj/hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]bindgenah ]h"]bindgenah$]h&]uh1hhj-hhhhhMubh)}(hhh](h)}(hMakeh]hMake}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhhhhhMubjc)}(hhh]jh)}(h h]h)}(hh](h<}(hjphhhNhNubj )}(hftp://ftp.gnu.org/gnu/make/h]hftp://ftp.gnu.org/gnu/make/}(hjxhhhNhNubah}(h]h ]h"]h$]h&]refurijzuh1j hjpubh>}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjlubah}(h]h ]h"]h$]h&]uh1jghjihhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjXhhubeh}(h]id4ah ]h"]h$]j ah&]uh1hhj-hhhhhMj Kubh)}(hhh](h)}(hBashh]hBash}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h h]h)}(hh](h<}(hjhhhNhNubj )}(hftp://ftp.gnu.org/gnu/bash/h]hftp://ftp.gnu.org/gnu/bash/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id5ah ]h"]h$]jah&]uh1hhj-hhhhhMj Kubh)}(hhh](h)}(hBinutilsh]hBinutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h3 h]h)}(h2h](h<}(hjhhhNhNubj )}(h0https://www.kernel.org/pub/linux/devel/binutils/h]h0https://www.kernel.org/pub/linux/devel/binutils/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id6ah ]h"]h$]j:ah&]uh1hhj-hhhhhMj Kubh)}(hhh](h)}(hFlexh]hFlex}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhMubjc)}(hhh]jh)}(h* h]h)}(h)h](h<}(hjThhhNhNubj )}(h'https://github.com/westes/flex/releasesh]h'https://github.com/westes/flex/releases}(hj\hhhNhNubah}(h]h ]h"]h$]h&]refurij^uh1j hjTubh>}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjPubah}(h]h ]h"]h$]h&]uh1jghjMhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhj<hhubeh}(h]id7ah ]h"]h$]jah&]uh1hhj-hhhhhMj Kubh)}(hhh](h)}(hBisonh]hBison}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h h]h)}(hh](h<}(hjhhhNhNubj )}(hftp://ftp.gnu.org/gnu/bison/h]hftp://ftp.gnu.org/gnu/bison/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id8ah ]h"]h$]jah&]uh1hhj-hhhhhMj Kubh)}(hhh](h)}(hOpenSSLh]hOpenSSL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h h]h)}(hh](h<}(hjhhhNhNubj )}(hhttps://www.openssl.org/h]hhttps://www.openssl.org/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id9ah ]h"]h$]jah&]uh1hhj-hhhhhMj Kubeh}(h]id2ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hSystem utilitiesh]hSystem utilities}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hhhhhMubh)}(hhh](h)}(h Util-linuxh]h Util-linux}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hhhhhMubjc)}(hhh]jh)}(h5 h]h)}(h4h](h<}(hjPhhhNhNubj )}(h2https://www.kernel.org/pub/linux/utils/util-linux/h]h2https://www.kernel.org/pub/linux/utils/util-linux/}(hjXhhhNhNubah}(h]h ]h"]h$]h&]refurijZuh1j hjPubh>}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjLubah}(h]h ]h"]h$]h&]uh1jghjIhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhj8hhubeh}(h]id11ah ]h"]h$]jrah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(hKmodh]hKmod}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh](jh)}(h5h]h)}(hjh](h<}(hjhhhNhNubj )}(h3https://www.kernel.org/pub/linux/utils/kernel/kmod/h]h3https://www.kernel.org/pub/linux/utils/kernel/kmod/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubjh)}(h< h]h)}(h;h](h<}(hjhhhNhNubj )}(h9https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.gith]h9https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]kmodah ]h"]kmodah$]h&]uh1hhj'hhhhhMubh)}(hhh](h)}(hKsymoopsh]hKsymoops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h? h]h)}(h>h](h<}(hjhhhNhNubj )}(h}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghj hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id12ah ]h"]h$]jah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(hMkinitrdh]hMkinitrd}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhhhhhMubjc)}(hhh]jh)}(h/ h]h)}(h.h](h<}(hj_hhhNhNubj )}(h,https://code.launchpad.net/initrd-tools/mainh]h,https://code.launchpad.net/initrd-tools/main}(hjghhhNhNubah}(h]h ]h"]h$]h&]refurijiuh1j hj_ubh>}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj[ubah}(h]h ]h"]h$]h&]uh1jghjXhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjGhhubeh}(h]id13ah ]h"]h$]jah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(h E2fsprogsh]h E2fsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh](jh)}(hAh]h)}(hjh](h<}(hjhhhNhNubj )}(h?https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/h]h?https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubjh)}(h8 h]h)}(h7h](h<}(hjhhhNhNubj )}(h5https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/h]h5https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id14ah ]h"]h$]j/ah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubjc)}(hhh]jh)}(h h]h)}(hh](h<}(hj!hhhNhNubj )}(hhttps://jfs.sourceforge.net/h]hhttps://jfs.sourceforge.net/}(hj)hhhNhNubah}(h]h ]h"]h$]h&]refurij+uh1j hj!ubh>}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhj hhubeh}(h]id15ah ]h"]h$]jah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhhhhhMubjc)}(hhh](jh)}(h8h]h)}(hjkh](h<}(hjmhhhNhNubj )}(h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.gith]h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git}(hjthhhNhNubah}(h]h ]h"]h$]h&]refurijvuh1j hjmubh>}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjiubah}(h]h ]h"]h$]h&]uh1jghjfhhhhhNubjh)}(h: h]h)}(h9h](h<}(hjhhhNhNubj )}(h7https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/h]h7https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjfhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jbhhhMhjUhhubeh}(h]id16ah ]h"]h$]jJah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(h Pcmciautilsh]h Pcmciautils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h8 h]h)}(h7h](h<}(hjhhhNhNubj )}(h5https://www.kernel.org/pub/linux/utils/kernel/pcmcia/h]h5https://www.kernel.org/pub/linux/utils/kernel/pcmcia/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id17ah ]h"]h$]jah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(h Quota-toolsh]h Quota-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h0 h]h)}(h.h](h<}(hj/hhhNhNubj )}(h,https://sourceforge.net/projects/linuxquota/h]h,https://sourceforge.net/projects/linuxquota/}(hj7hhhNhNubah}(h]h ]h"]h$]h&]refurij9uh1j hj/ubh>}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jghj(hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id18ah ]h"]h$]jah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(hIntel P6 microcodeh]hIntel P6 microcode}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhMubjc)}(hhh]jh)}(h$ h]h)}(h#h](h<}(hj{hhhNhNubj )}(h!https://downloadcenter.intel.com/h]h!https://downloadcenter.intel.com/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hj{ubh>}(hj{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjwubah}(h]h ]h"]h$]h&]uh1jghjthhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjchhubeh}(h]intel-p6-microcodeah ]h"]intel p6 microcodeah$]h&]uh1hhj'hhhhhMubh)}(hhh](h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh]jh)}(h= h]h)}(h<h](h<}(hjhhhNhNubj )}(h:https://www.freedesktop.org/software/systemd/man/udev.htmlh]h:https://www.freedesktop.org/software/systemd/man/udev.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id19ah ]h"]h$]jJah&]uh1hhj'hhhhhMj Kubh)}(hhh](h)}(hFUSEh]hFUSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubjc)}(hhh]jh)}(h. h]h)}(h-h](h<}(hjhhhNhNubj )}(h+https://github.com/libfuse/libfuse/releasesh]h+https://github.com/libfuse/libfuse/releases}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jghj hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhM hjhhubeh}(h]id20ah ]h"]h$]jah&]uh1hhj'hhhhhM j Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhhhhhMubjc)}(hhh]jh)}(h h]h)}(hh](h<}(hj`hhhNhNubj )}(hhttps://www.mcelog.org/h]hhttps://www.mcelog.org/}(hjhhhhNhNubah}(h]h ]h"]h$]h&]refurijjuh1j hj`ubh>}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj\ubah}(h]h ]h"]h$]h&]uh1jghjYhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhMhjHhhubeh}(h]id21ah ]h"]h$]jMah&]uh1hhj'hhhhhMj Kubeh}(h]id10ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubjc)}(hhh](jh)}(h%h]h)}(hjh](h<}(hjhhhNhNubj )}(h#https://download.samba.org/pub/ppp/h]h#https://download.samba.org/pub/ppp/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubjh)}(h#h]h)}(hjh](h<}(hjhhhNhNubj )}(h!https://git.ozlabs.org/?p=ppp.gith]h!https://git.ozlabs.org/?p=ppp.git}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubjh)}(h% h]h)}(h$h](h<}(hjhhhNhNubj )}(h"https://github.com/paulusmack/ppp/h]h"https://github.com/paulusmack/ppp/}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij"uh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jbhhhMhjhhubeh}(h]id23ah ]h"]h$]jMah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h NFS-utilsh]h NFS-utils}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhhhhhMubjc)}(hhh](jh)}(h;h]h)}(hjbh](h<}(hjdhhhNhNubj )}(h9https://sourceforge.net/project/showfiles.php?group_id=14h]h9https://sourceforge.net/project/showfiles.php?group_id=14}(hjkhhhNhNubah}(h]h ]h"]h$]h&]refurijmuh1j hjdubh>}(hjdhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj`ubah}(h]h ]h"]h$]h&]uh1jghj]hhhhhNubjh)}(h h]h)}(hh](h<}(hjhhhNhNubj )}(hhttps://nfs.sourceforge.net/h]hhttps://nfs.sourceforge.net/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM!hjubah}(h]h ]h"]h$]h&]uh1jghj]hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jbhhhM hjLhhubeh}(h]id24ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hIptablesh]hIptables}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM$ubjc)}(hhh]jh)}(h5 h]h)}(h4h](h<}(hjhhhNhNubj )}(h2https://netfilter.org/projects/iptables/index.htmlh]h2https://netfilter.org/projects/iptables/index.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM&hjubah}(h]h ]h"]h$]h&]uh1jghjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhM&hjhhubeh}(h]iptablesah ]h"]iptablesah$]h&]uh1hhjhhhhhM$ubh)}(hhh](h)}(h Ip-route2h]h Ip-route2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM)ubjc)}(hhh]jh)}(h7 h]h)}(h6h](h<}(hj' hhhNhNubj )}(h4https://www.kernel.org/pub/linux/utils/net/iproute2/h]h4https://www.kernel.org/pub/linux/utils/net/iproute2/}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]refurij1 uh1j hj' ubh>}(hj' hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM+hj# ubah}(h]h ]h"]h$]h&]uh1jghj hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhM+hj hhubeh}(h] ip-route2ah ]h"] ip-route2ah$]h&]uh1hhjhhhhhM)ubh)}(hhh](h)}(hOProfileh]hOProfile}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ hhhhhM.ubjc)}(hhh]jh)}(h$ h]h)}(h#h](h<}(hjt hhhNhNubj )}(h!https://oprofile.sf.net/download/h]h!https://oprofile.sf.net/download/}(hj| hhhNhNubah}(h]h ]h"]h$]h&]refurij~ uh1j hjt ubh>}(hjt hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM0hjp ubah}(h]h ]h"]h$]h&]uh1jghjm hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhM0hj\ hhubeh}(h]oprofileah ]h"]oprofileah$]h&]uh1hhjhhhhhM.ubeh}(h]id22ah ]h"]h$]jUah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hKernel documentationh]hKernel documentation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM3ubh)}(hhh](h)}(hSphinxh]hSphinx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM6ubjc)}(hhh]jh)}(hh]h)}(hj h](h<}(hj hhhNhNubj )}(hhttps://www.sphinx-doc.org/h]hhttps://www.sphinx-doc.org/}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hj ubh>}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM8hj ubah}(h]h ]h"]h$]h&]uh1jghj hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jbhhhM8hj hhubeh}(h]id26ah ]h"]h$]jah&]uh1hhj hhhhhM6j Kubeh}(h]id25ah ]h"]h$]jah&]uh1hhjhhhhhM3j Kubeh}(h]getting-updated-softwareah ]h"]getting updated softwareah$]h&]uh1hhhhhhhhMubeh}(h](*minimal-requirements-to-compile-the-kernelheh ]h"](*minimal requirements to compile the kernelchangeseh$]h&]uh1hhhhhhhhKexpect_referenced_by_name}j!!hsexpect_referenced_by_id}hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjifootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjJ!error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}f1]jY asrefids}(h]haji ]jY aunameids}(j!!hj !j!jjju jr jm ji kernel compilationNgccNj" j j j j} jz j j makeNbashNbinutilsNj`j]flexNbisonNjjjejbjjjjopensslNjj jZjWjjjjsystem utilitiesNj8j5 util-linuxNksymoopsNmkinitrdN e2fsprogsNjfsutilsNxfsprogsN pcmciautilsN quota-toolsNjjudevNfuseN networkingNjjjjpppN nfs-utilsNmcelogNkernel documentationNsphinxNj jj!j!jjjjjUjRjjjjj j jY jV j j u nametypes}(j!!j !jju jm j!j!j" j j} j j!j!j!j`j!j!jjejjj!jjZjjj!j8j!j!j!j!j!j!j!j!jj!j!j!jjj!j!j!j!j!j j!jjjUjjj jY j uh}(hhj!hjhjr hjc jY ji jH jjx j j j j j j jz j% j j j j jj j6jj]j<jjcjjjjjbjjjhjjjjj jjWjjj]jjjjj5jjnj;jjtjjj+jjj1jFjjjLjjjjjFjjjLjQjjjjjjIjjjOjIjjjWjjhjjj!jj"j-jj>jjjjjRjjjXjjj7jjj<jjjjjj'jj8jjjBjjjGjjjPj jjUjjj^jjjcjjjCjjjHj jjGjjjLj jjV j j j\ j!j j!j u footnote_refs}j!]jY as citation_refs} autofootnotes]jH aautofootnote_refs]jY asymbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jX!KsRparse_messages](hsystem_message)}(hhh]h)}(h5Duplicate implicit target name: "kernel compilation".h]h9Duplicate implicit target name: “kernel compilation”.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!ubah}(h]h ]h"]h$]h&]j"alevelKtypeINFOsourcehlineMuh1j!hj-hhhhhMubj!)}(hhh]h)}(h&Duplicate implicit target name: "gcc".h]h*Duplicate implicit target name: “gcc”.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hj>hhhhhMubj!)}(hhh]h)}(h'Duplicate implicit target name: "make".h]h+Duplicate implicit target name: “make”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjXhhhhhMubj!)}(hhh]h)}(h'Duplicate implicit target name: "bash".h]h+Duplicate implicit target name: “bash”.}(hj!"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h+Duplicate implicit target name: "binutils".h]h/Duplicate implicit target name: “binutils”.}(hj<"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9"ubah}(h]h ]h"]h$]h&]j7alevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h'Duplicate implicit target name: "flex".h]h+Duplicate implicit target name: “flex”.}(hjW"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hj<hhhhhMubj!)}(hhh]h)}(h(Duplicate implicit target name: "bison".h]h,Duplicate implicit target name: “bison”.}(hjr"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h*Duplicate implicit target name: "openssl".h]h.Duplicate implicit target name: “openssl”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h3Duplicate implicit target name: "system utilities".h]h7Duplicate implicit target name: “system utilities”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hj'hhhhhMubj!)}(hhh]h)}(h-Duplicate implicit target name: "util-linux".h]h1Duplicate implicit target name: “util-linux”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hj8hhhhhMubj!)}(hhh]h)}(h+Duplicate implicit target name: "ksymoops".h]h/Duplicate implicit target name: “ksymoops”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jBalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h+Duplicate implicit target name: "mkinitrd".h]h/Duplicate implicit target name: “mkinitrd”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjGhhhhhMubj!)}(hhh]h)}(h,Duplicate implicit target name: "e2fsprogs".h]h0Duplicate implicit target name: “e2fsprogs”.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h+Duplicate implicit target name: "jfsutils".h]h/Duplicate implicit target name: “jfsutils”.}(hj/#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,#ubah}(h]h ]h"]h$]h&]jPalevelKtypej!sourcehlineMuh1j!hj hhhhhMubj!)}(hhh]h)}(h+Duplicate implicit target name: "xfsprogs".h]h/Duplicate implicit target name: “xfsprogs”.}(hjJ#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG#ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjUhhhhhMubj!)}(hhh]h)}(h.Duplicate implicit target name: "pcmciautils".h]h2Duplicate implicit target name: “pcmciautils”.}(hje#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjb#ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h.Duplicate implicit target name: "quota-tools".h]h2Duplicate implicit target name: “quota-tools”.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}#ubah}(h]h ]h"]h$]h&]j^alevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h'Duplicate implicit target name: "udev".h]h+Duplicate implicit target name: “udev”.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h'Duplicate implicit target name: "fuse".h]h+Duplicate implicit target name: “fuse”.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]jCalevelKtypej!sourcehlineM uh1j!hjhhhhhM ubj!)}(hhh]h)}(h)Duplicate implicit target name: "mcelog".h]h-Duplicate implicit target name: “mcelog”.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjHhhhhhMubj!)}(hhh]h)}(h-Duplicate implicit target name: "networking".h]h1Duplicate implicit target name: “networking”.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]j alevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h&Duplicate implicit target name: "ppp".h]h*Duplicate implicit target name: “ppp”.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]jGalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h,Duplicate implicit target name: "nfs-utils".h]h0Duplicate implicit target name: “nfs-utils”.}(hj"$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjLhhhhhMubj!)}(hhh]h)}(h7Duplicate implicit target name: "kernel documentation".h]h;Duplicate implicit target name: “kernel documentation”.}(hj=$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:$ubah}(h]h ]h"]h$]h&]j!alevelKtypej!sourcehlineM3uh1j!hj hhhhhM3ubj!)}(hhh]h)}(h)Duplicate implicit target name: "sphinx".h]h-Duplicate implicit target name: “sphinx”.}(hjX$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU$ubah}(h]h ]h"]h$]h&]j!alevelKtypej!sourcehlineM6uh1j!hj hhhhhM6ubetransform_messages]j!)}(hhh]h)}(hhh]h-Hyperlink target "changes" is not referenced.}hju$sbah}(h]h ]h"]h$]h&]uh1hhjr$ubah}(h]h ]h"]h$]h&]levelKtypej!sourcehlineKuh1j!uba transformerN include_log] decorationNhhub.