sphinx.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)}(h13.0.1h]h13.0.1}(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)}(hPython (optional)h]hPython (optional)}(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)}(hBCh]hBC}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhhKubh)}(h1You will need bc to build kernels 3.10 and higherh]h1You will need bc to build kernels 3.10 and higher}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhhubeh}(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 }(hjhhhNhNubjM )}(h``make gtags``h]h make gtags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh'. This is due to its use of the gtags }(hjhhhNhNubjM )}(h``-C (--directory)``h]h-C (--directory)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh flag.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]gtags-gnu-global-optionalah ]h"]gtags / gnu global (optional)ah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hmkimageh]hmkimage}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhKubh)}(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 }(hjGhhhNhNubjM )}(h``u-boot-tools``h]h u-boot-tools}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjGubhN package or can be built from the U-Boot source code. See the instructions at }(hjGhhhNhNubj )}(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}(hjahhhNhNubah}(h]h ]h"]h$]h&]refurijcuh1j hjGubeh}(h]h ]h"]h$]h&]uh1hhhhKhj6hhubeh}(h]mkimageah ]h"]mkimageah$]h&]uh1hhjx hhhhhKubh)}(hhh](h)}(hGNU AWKh]hGNU AWK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hhhhhKubh)}(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&]uh1hhhhKhj~hhubeh}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]architectural-changesah ]h"]architectural changesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h Util-linuxh]h Util-linux}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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 }(hj%hhhNhNubjM )}(h ``fdisk``h]hfdisk}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj%ubh support for larger disks, support new options to mount, recognize more supported partition types, and similar goodies. You’ll probably want to upgrade.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] util-linuxah ]h"]h$] util-linuxah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hKsymoopsh]hKsymoops}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhhhhhKubh)}(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 }(hj^hhhNhNubjM )}(h``CONFIG_KALLSYMS``h]hCONFIG_KALLSYMS}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj^ubh 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 }(hj^hhhNhNubjM )}(h``CONFIG_KALLSYMS``h]hCONFIG_KALLSYMS}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj^ubh{ and you have no way to rebuild and reproduce the Oops with that option, then you can still decode that Oops with ksymoops.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjMhhubeh}(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 }(hjhhhNhNubjM )}(h ``e2fsprogs``h]h e2fsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubhS fixes several bugs in fsck and debugfs. Obviously, it’s a good idea to upgrade.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] e2fsprogsah ]h"]h$] e2fsprogsah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hkThe ``jfsutils`` package contains the utilities for the file system. The following utilities are available:h](hThe }(hjhhhNhNubjM )}(h ``jfsutils``h]hjfsutils}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubh[ package contains the utilities for the file system. The following utilities are available:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh 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}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjFubhZ - initiate replay of the transaction log, and check and repair a JFS formatted partition.}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjBubah}(h]h ]h"]h$]h&]uh1j@hj=hhhhhNubjA)}(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}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjlubh$ - create a JFS formatted partition.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhubah}(h]h ]h"]h$]h&]uh1j@hj=hhhhhNubjA)}(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&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j@hj=hhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1j;hhhMhj hhubeh}(h]jfsutilsah ]h"]h$]jfsutilsah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubh)}(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}(hjhhhNhNubah}(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&]uh1hhhhM hjhhubeh}(h]xfsprogsah ]h"]h$]xfsprogsah&]uh1hhjhhhhhM j Kubh)}(hhh](h)}(h PCMCIAutilsh]h PCMCIAutils}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hhhhhMubh)}(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 }(hj6hhhNhNubjM )}(h ``pcmcia-cs``h]h pcmcia-cs}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj6ubh. 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.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj%hhubeh}(h] pcmciautilsah ]h"]h$] pcmciautilsah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Quota-toolsh]h Quota-tools}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hhhhhMubh)}(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.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj^hhubeh}(h] quota-toolsah ]h"]h$] quota-toolsah&]uh1hhjhhhhhMj 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&]uh1hhhhM,hjhhubeh}(h]intel-ia32-microcodeah ]h"]intel ia32 microcodeah$]h&]uh1hhjhhhhhM"ubh)}(hhh](h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM0ubh)}(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}(hjhhhNhNubah}(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&]uh1hhhhM2hjhhubeh}(h]udevah ]h"]h$]udevah&]uh1hhjhhhhhM0j Kubh)}(hhh](h)}(hFUSEh]hFUSE}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hhhhhM8ubh)}(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 }(hj6hhhNhNubjM )}(h ``direct_io``h]h direct_io}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj6ubh and }(hj6hhhNhNubjM )}(h``kernel_cache``h]h kernel_cache}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj6ubh won’t work.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM:hj%hhubeh}(h]fuseah ]h"]h$]fuseah&]uh1hhjhhhhhM8j Kubeh}(h]system-utilitiesah ]h"]h$]system utilitiesah&]uh1hhhhhhhhKj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhhhhhM>ubh)}(hhh](h)}(hGeneral changesh]hGeneral changes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMAubh)}(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&]uh1hhhhMChjhhubeh}(h]general-changesah ]h"]general changesah$]h&]uh1hhjxhhhhhMAubh)}(hhh](h)}(hPacket Filter / NATh]hPacket Filter / NAT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMGubh)}(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&]uh1hhhhMHhjhhubeh}(h]packet-filter-natah ]h"]packet filter / natah$]h&]uh1hhjxhhhhhMGubh)}(hhh](h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMMubh)}(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&]uh1hhhhMOhjhhubh)}(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&]uh1hhhhMShjhhubj)}(hmknod /dev/ppp c 108 0h]hmknod /dev/ppp c 108 0}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhMVhjhhubh)}(has root.h]has root.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMXhjhhubeh}(h]pppah ]h"]h$]pppah&]uh1hhjxhhhhhMMj Kubh)}(hhh](h)}(h NFS-utilsh]h NFS-utils}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hhhhhM[ubh)}(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 }(hj9hhhNhNubjM )}(h ``mountd``h]hmountd}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj9ubh/ when the client mounted the filesystem, or by }(hj9hhhNhNubjM )}(h ``exportfs``h]hexportfs}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj9ubhO at system startup. exportfs would take information about active clients from }(hj9hhhNhNubjM )}(h``/var/lib/nfs/rmtab``h]h/var/lib/nfs/rmtab}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj9ubh.}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM]hj(hhubh)}(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, }(hj}hhhNhNubjM )}(h ``rmtab``h]hrmtab}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hj}ubhA suffers from getting lots of old entries that never get removed.}(hj}hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMchj(hhubh)}(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&]uh1hhhhMhhj(hhubh)}(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&]uh1hhhhMnhj(hhubj)}(h mount -t nfsd nfsd /proc/fs/nfsdh]h mount -t nfsd nfsd /proc/fs/nfsd}hjsbah}(h]h ]h"]h$]h&]jjuh1jhhhMphj(hhubh)}(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&]uh1hhhhMrhj(hhubeh}(h] nfs-utilsah ]h"]h$] nfs-utilsah&]uh1hhjxhhhhhM[j Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMwubh)}(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 }(hjhhhNhNubjM )}(h``CONFIG_X86_MCE``h]hCONFIG_X86_MCE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jL hjubhi is enabled. Machine check events are errors reported by the CPU. Processing them is strongly encouraged.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMyhjhhubeh}(h]mcelogah ]h"]h$]mcelogah&]uh1hhjxhhhhhMwj Kubeh}(h] networkingah ]h"]h$] networkingah&]uh1hhhhhhhhM>j Kubh)}(hhh](h)}(hKernel documentationh]hKernel documentation}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hhhhhM~ubh)}(hhh](h)}(hSphinxh]hSphinx}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhhhhhMubh)}(hPlease see :ref:`sphinx_install` in :ref:`Documentation/doc-guide/sphinx.rst ` for details about Sphinx requirements.h](h Please see }(hjRhhhNhNubh)}(h:ref:`sphinx_install`h]j )}(hj\h]hsphinx_install}(hj^hhhNhNubah}(h]h ](j stdstd-refeh"]h$]h&]uh1j hjZubah}(h]h ]h"]h$]h&]refdocjk refdomainjhreftyperef refexplicitrefwarnj sphinx_installuh1hhhhMhjRubh in }(hjRhhhNhNubh)}(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 hj~ubah}(h]h ]h"]h$]h&]refdocjk refdomainjreftyperef refexplicitrefwarnj sphinxdocuh1hhhhMhjRubh' for details about Sphinx requirements.}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjAhhubeh}(h]sphinxah ]h"]h$]sphinxah&]uh1hhj0hhhhhMj 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&]uh1hhj0hhhhhMubeh}(h]kernel-documentationah ]h"]h$]kernel documentationah&]uh1hhhhhhhhM~j 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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hgcch]hgcc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(h h]h)}(hh](h<}(hj/hhhNhNubj )}(hftp://ftp.gnu.org/gnu/gcc/h]hftp://ftp.gnu.org/gnu/gcc/}(hj7hhhNhNubah}(h]h ]h"]h$]h&]refurij9uh1j hj/ubh>}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1j@hj(hhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id3ah ]h"]h$]j ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Clang/LLVMh]h Clang/LLVM}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhMubj<)}(hhh]jA)}(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_llvmuh1hhhhMhj{ubh.}(hj{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjwubah}(h]h ]h"]h$]h&]uh1j@hjthhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjchhubeh}(h] clang-llvmah ]h"] clang/llvmah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hRusth]hRust}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]rustah ]h"]rustah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hbindgenh]hbindgen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]bindgenah ]h"]bindgenah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hMakeh]hMake}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hhhhhMubj<)}(hhh]jA)}(h h]h)}(hh](h<}(hjIhhhNhNubj )}(hftp://ftp.gnu.org/gnu/make/h]hftp://ftp.gnu.org/gnu/make/}(hjQhhhNhNubah}(h]h ]h"]h$]h&]refurijSuh1j hjIubh>}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjEubah}(h]h ]h"]h$]h&]uh1j@hjBhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhj1hhubeh}(h]id4ah ]h"]h$]j ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hBashh]hBash}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hhhhhMubj<)}(hhh]jA)}(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&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhj}hhubeh}(h]id5ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hBinutilsh]hBinutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id6ah ]h"]h$]j:ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hFlexh]hFlex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(h* h]h)}(h)h](h<}(hj-hhhNhNubj )}(h'https://github.com/westes/flex/releasesh]h'https://github.com/westes/flex/releases}(hj5hhhNhNubah}(h]h ]h"]h$]h&]refurij7uh1j hj-ubh>}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1j@hj&hhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id7ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hBisonh]hBison}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahhhhhMubj<)}(hhh]jA)}(h h]h)}(hh](h<}(hjyhhhNhNubj )}(hftp://ftp.gnu.org/gnu/bison/h]hftp://ftp.gnu.org/gnu/bison/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjyubh>}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjuubah}(h]h ]h"]h$]h&]uh1j@hjrhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjahhubeh}(h]id8ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hOpenSSLh]hOpenSSL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id9ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubeh}(h]id2ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hSystem utilitiesh]hSystem utilities}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(h Util-linuxh]h Util-linux}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(h5 h]h)}(h4h](h<}(hj)hhhNhNubj )}(h2https://www.kernel.org/pub/linux/utils/util-linux/h]h2https://www.kernel.org/pub/linux/utils/util-linux/}(hj1hhhNhNubah}(h]h ]h"]h$]h&]refurij3uh1j hj)ubh>}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj%ubah}(h]h ]h"]h$]h&]uh1j@hj"hhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id11ah ]h"]h$]jKah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hKmodh]hKmod}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hhhhhMubj<)}(hhh](jA)}(h5h]h)}(hjsh](h<}(hjuhhhNhNubj )}(h3https://www.kernel.org/pub/linux/utils/kernel/kmod/h]h3https://www.kernel.org/pub/linux/utils/kernel/kmod/}(hj|hhhNhNubah}(h]h ]h"]h$]h&]refurij~uh1j hjuubh>}(hjuhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjqubah}(h]h ]h"]h$]h&]uh1j@hjnhhhhhNubjA)}(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&]uh1j@hjnhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1j;hhhMhj]hhubeh}(h]kmodah ]h"]kmodah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hKsymoopsh]hKsymoops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(h? h]h)}(h>h](h<}(hjhhhNhNubj )}(h}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id12ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hMkinitrdh]hMkinitrd}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubj<)}(hhh]jA)}(h/ h]h)}(h.h](h<}(hj8hhhNhNubj )}(h,https://code.launchpad.net/initrd-tools/mainh]h,https://code.launchpad.net/initrd-tools/main}(hj@hhhNhNubah}(h]h ]h"]h$]h&]refurijBuh1j hj8ubh>}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj4ubah}(h]h ]h"]h$]h&]uh1j@hj1hhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhj hhubeh}(h]id13ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h E2fsprogsh]h E2fsprogs}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhMubj<)}(hhh](jA)}(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&]uh1j@hj}hhhhhNubjA)}(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&]uh1j@hj}hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1j;hhhMhjlhhubeh}(h]id14ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(h h]h)}(hh](h<}(hjhhhNhNubj )}(hhttps://jfs.sourceforge.net/h]hhttps://jfs.sourceforge.net/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id15ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hhhhhMubj<)}(hhh](jA)}(h8h]h)}(hjDh](h<}(hjFhhhNhNubj )}(h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.gith]h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git}(hjMhhhNhNubah}(h]h ]h"]h$]h&]refurijOuh1j hjFubh>}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjBubah}(h]h ]h"]h$]h&]uh1j@hj?hhhhhNubjA)}(h: h]h)}(h9h](h<}(hjphhhNhNubj )}(h7https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/h]h7https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/}(hjxhhhNhNubah}(h]h ]h"]h$]h&]refurijzuh1j hjpubh>}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjlubah}(h]h ]h"]h$]h&]uh1j@hj?hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1j;hhhMhj.hhubeh}(h]id16ah ]h"]h$]j#ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Pcmciautilsh]h Pcmciautils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id17ah ]h"]h$]j\ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Quota-toolsh]h Quota-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(h0 h]h)}(h.h](h<}(hjhhhNhNubj )}(h,https://sourceforge.net/projects/linuxquota/h]h,https://sourceforge.net/projects/linuxquota/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id18ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hIntel P6 microcodeh]hIntel P6 microcode}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhMubj<)}(hhh]jA)}(h$ h]h)}(h#h](h<}(hjThhhNhNubj )}(h!https://downloadcenter.intel.com/h]h!https://downloadcenter.intel.com/}(hj\hhhNhNubah}(h]h ]h"]h$]h&]refurij^uh1j hjTubh>}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjPubah}(h]h ]h"]h$]h&]uh1j@hjMhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhj<hhubeh}(h]intel-p6-microcodeah ]h"]intel p6 microcodeah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id19ah ]h"]h$]j#ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hFUSEh]hFUSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id20ah ]h"]h$]jnah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hhhhhMubj<)}(hhh]jA)}(h h]h)}(hh](h<}(hj9hhhNhNubj )}(hhttps://www.mcelog.org/h]hhttps://www.mcelog.org/}(hjAhhhNhNubah}(h]h ]h"]h$]h&]refurijCuh1j hj9ubh>}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj5ubah}(h]h ]h"]h$]h&]uh1j@hj2hhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhM hj!hhubeh}(h]id21ah ]h"]h$]j&ah&]uh1hhjhhhhhMj Kubeh}(h]id10ah ]h"]h$]jvah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhM ubh)}(hhh](h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh](jA)}(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&]uh1j@hjhhhhhNubjA)}(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&]uh1j@hjhhhhhNubjA)}(h% h]h)}(h$h](h<}(hjhhhNhNubj )}(h"https://github.com/paulusmack/ppp/h]h"https://github.com/paulusmack/ppp/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]id23ah ]h"]h$]j&ah&]uh1hhjthhhhhMj Kubh)}(hhh](h)}(h NFS-utilsh]h NFS-utils}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hhhhhMubj<)}(hhh](jA)}(h;h]h)}(hj;h](h<}(hj=hhhNhNubj )}(h9https://sourceforge.net/project/showfiles.php?group_id=14h]h9https://sourceforge.net/project/showfiles.php?group_id=14}(hjDhhhNhNubah}(h]h ]h"]h$]h&]refurijFuh1j hj=ubh>}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj9ubah}(h]h ]h"]h$]h&]uh1j@hj6hhhhhNubjA)}(h h]h)}(hh](h<}(hjghhhNhNubj )}(hhttps://nfs.sourceforge.net/h]hhttps://nfs.sourceforge.net/}(hjohhhNhNubah}(h]h ]h"]h$]h&]refurijquh1j hjgubh>}(hjghhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjcubah}(h]h ]h"]h$]h&]uh1j@hj6hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1j;hhhMhj%hhubeh}(h]id24ah ]h"]h$]jah&]uh1hhjthhhhhMj Kubh)}(hhh](h)}(hIptablesh]hIptables}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj<)}(hhh]jA)}(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&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhMhjhhubeh}(h]iptablesah ]h"]iptablesah$]h&]uh1hhjthhhhhMubh)}(hhh](h)}(h Ip-route2h]h Ip-route2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM"ubj<)}(hhh]jA)}(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&]refurij uh1j hj ubh>}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM$hjubah}(h]h ]h"]h$]h&]uh1j@hjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhM$hjhhubeh}(h] ip-route2ah ]h"] ip-route2ah$]h&]uh1hhjthhhhhM"ubh)}(hhh](h)}(hOProfileh]hOProfile}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5 hhhhhM'ubj<)}(hhh]jA)}(h$ h]h)}(h#h](h<}(hjM hhhNhNubj )}(h!https://oprofile.sf.net/download/h]h!https://oprofile.sf.net/download/}(hjU hhhNhNubah}(h]h ]h"]h$]h&]refurijW uh1j hjM ubh>}(hjM hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM)hjI ubah}(h]h ]h"]h$]h&]uh1j@hjF hhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhM)hj5 hhubeh}(h]oprofileah ]h"]oprofileah$]h&]uh1hhjthhhhhM'ubeh}(h]id22ah ]h"]h$]j.ah&]uh1hhjhhhhhM j Kubh)}(hhh](h)}(hKernel documentationh]hKernel documentation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM,ubh)}(hhh](h)}(hSphinxh]hSphinx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM/ubj<)}(hhh]jA)}(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&]uh1hhhhM1hj ubah}(h]h ]h"]h$]h&]uh1j@hj hhhhhNubah}(h]h ]h"]h$]h&]jjuh1j;hhhM1hj hhubeh}(h]id26ah ]h"]h$]jah&]uh1hhj hhhhhM/j Kubeh}(h]id25ah ]h"]h$]jah&]uh1hhjhhhhhM,j 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_handlerj#!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]flexNbisonNjjjejbjjopensslNjjj3j0j{jxjjsystem utilitiesNjj util-linuxNksymoopsNmkinitrdN e2fsprogsNjfsutilsNxfsprogsN pcmciautilsN quota-toolsNjjudevNfuseN networkingNjjjjpppN nfs-utilsNmcelogNkernel documentationNsphinxNjjj j jjjjj.j+jjjjjjj2 j/ j j| u nametypes}(j j jju jm jk!jl!j" j j} j jm!jn!jo!j`jp!jq!jjejjr!jj3j{jjs!jjt!ju!jv!jw!jx!jy!jz!j{!jj|!j}!j~!jjj!j!j!j!j!jj jjj.jjjj2 j uh}(hhj hjhjr hjc jY ji jH jjx j j j j j j jz j% j j j j jj j6jj]j<jjcjjjjjbjjjhjjjjj0jjxj6jj~jrjjjjGjjjMjjjjjj jjjXj%jj^jjjjjjj%j*jxjjjjj"jjj(j"jjj0jjAjjj jjjj^jjjcjjj+jjxj1jj}jjj\jjjajjjojjXjjj]jjjgj jjlj)jjj.jjj7jjj<jjjjjhj!j jtj jjj%jjj/ jj| j5 j j j j u footnote_refs}jc!]jY as citation_refs} autofootnotes]jH aautofootnote_refs]jY asymbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j1!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&]jalevelKtypeINFOsourcehlineMuh1j!hjhhhhhMubj!)}(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&]j^alevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(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&]jxalevelKtypej!sourcehlineMuh1j!hj1hhhhhMubj!)}(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!hj}hhhhhMubj!)}(hhh]h)}(h+Duplicate implicit target name: "binutils".h]h/Duplicate implicit target name: “binutils”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h'Duplicate implicit target name: "flex".h]h+Duplicate implicit target name: “flex”.}(hj0"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-"ubah}(h]h ]h"]h$]h&]j\alevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h(Duplicate implicit target name: "bison".h]h,Duplicate implicit target name: “bison”.}(hjK"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH"ubah}(h]h ]h"]h$]h&]jalevelKtypej!sourcehlineMuh1j!hjahhhhhMubj!)}(hhh]h)}(h*Duplicate implicit target name: "openssl".h]h.Duplicate implicit target name: “openssl”.}(hjf"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc"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&]joalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(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&]jXalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(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&]jalevelKtypej!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&]jgalevelKtypej!sourcehlineMuh1j!hj hhhhhMubj!)}(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!hjlhhhhhMubj!)}(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&]j)alevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h+Duplicate implicit target name: "xfsprogs".h]h/Duplicate implicit target name: “xfsprogs”.}(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: "pcmciautils".h]h2Duplicate implicit target name: “pcmciautils”.}(hj>#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;#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”.}(hjY#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV#ubah}(h]h ]h"]h$]h&]j7alevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(hhh]h)}(h'Duplicate implicit target name: "udev".h]h+Duplicate implicit target name: “udev”.}(hjt#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq#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&]jalevelKtypej!sourcehlineMuh1j!hjhhhhhMubj!)}(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&]jhalevelKtypej!sourcehlineMuh1j!hj!hhhhhMubj!)}(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!sourcehlineM uh1j!hjthhhhhM ubj!)}(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&]j alevelKtypej!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!hj%hhhhhMubj!)}(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!sourcehlineM,uh1j!hj hhhhhM,ubj!)}(hhh]h)}(h)Duplicate implicit target name: "sphinx".h]h-Duplicate implicit target name: “sphinx”.}(hj1$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.$ubah}(h]h ]h"]h$]h&]j alevelKtypej!sourcehlineM/uh1j!hj hhhhhM/ubetransform_messages]j!)}(hhh]h)}(hhh]h-Hyperlink target "changes" is not referenced.}hjN$sbah}(h]h ]h"]h$]h&]uh1hhjK$ubah}(h]h ]h"]h$]h&]levelKtypej!sourcehlineKuh1j!uba transformerN include_log] decorationNhhub.