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)}(h5.1h]h5.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.25h]h2.25}(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)}(h reiserfsprogsh]h reiserfsprogs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h3.6.3h]h3.6.3}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h reiserfsck -Vh]h reiserfsck -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)}(hxfsprogsh]hxfsprogs}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjVubah}(h]h ]h"]h$]h&]uh1jihjSubjj)}(hhh]h)}(h2.6.0h]h2.6.0}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjmubah}(h]h ]h"]h$]h&]uh1jihjSubjj)}(hhh]h)}(h xfs_db -Vh]h xfs_db -V}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jihjSubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hsquashfs-toolsh]hsquashfs-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h4.0h]h4.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hmksquashfs -versionh]hmksquashfs -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 btrfs-progsh]h btrfs-progs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h0.18h]h0.18}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hj ubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hbtrfs --versionh]hbtrfs --version}(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 pcmciautilsh]h pcmciautils}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hj@ubah}(h]h ]h"]h$]h&]uh1jihj=ubjj)}(hhh]h)}(h004h]h004}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjWubah}(h]h ]h"]h$]h&]uh1jihj=ubjj)}(hhh]h)}(h pccardctl -Vh]h pccardctl -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)}(h quota-toolsh]h quota-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h3.09h]h3.09}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hquota -Vh]hquota -V}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h2.4.0h]h2.4.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hpppd --versionh]hpppd --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)}(h nfs-utilsh]h nfs-utils}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hj*ubah}(h]h ]h"]h$]h&]uh1jihj'ubjj)}(hhh]h)}(h1.0.5h]h1.0.5}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjAubah}(h]h ]h"]h$]h&]uh1jihj'ubjj)}(hhh]h)}(hshowmount --versionh]hshowmount --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)}(hprocpsh]hprocps}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjxubah}(h]h ]h"]h$]h&]uh1jihjuubjj)}(hhh]h)}(h3.2.0h]h3.2.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1jihjuubjj)}(hhh]h)}(h ps --versionh]h ps --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1jihjuubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(h081h]h081}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1jihjubjj)}(hhh]h)}(hudevd --versionh]hudevd --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1jdhjubje)}(hhh](jj)}(hhh]h)}(hgrubh]hgrub}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h0.93h]h0.93}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hj+ ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h(grub --version || grub-install --versionh]h(grub --version || grub-install --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)}(hmcelogh]hmcelog}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjb ubah}(h]h ]h"]h$]h&]uh1jihj_ ubjj)}(hhh]h)}(h0.6h]h0.6}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjy ubah}(h]h ]h"]h$]h&]uh1jihj_ ubjj)}(hhh]h)}(hmcelog --versionh]hmcelog --version}(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)}(hiptablesh]hiptables}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h1.4.2h]h1.4.2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h iptables -Vh]h iptables -V}(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)}(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}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h1.28h]h1.28}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h tar --versionh]h tar --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)}(hgtags (optional)h]hgtags (optional)}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjL ubah}(h]h ]h"]h$]h&]uh1jihjI ubjj)}(hhh]h)}(h6.6.5h]h6.6.5}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjc ubah}(h]h ]h"]h$]h&]uh1jihjI ubjj)}(hhh]h)}(hgtags --versionh]hgtags --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)}(hmkimage (optional)h]hmkimage (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h2017.01h]h2017.01}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(hmkimage --versionh]hmkimage --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)}(hPython (optional)h]hPython (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(h3.9.xh]h3.9.x}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1jihj ubjj)}(hhh]h)}(hpython3 --versionh]hpython3 --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj 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)}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhj6 ubah}(h]h ]h"]h$]h&]uh1jihj3 ubjj)}(hhh]h)}(h5.1.0h]h5.1.0}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjM ubah}(h]h ]h"]h$]h&]uh1jihj3 ubjj)}(hhh]h)}(hgawk --versionh]hgawk --version}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjd ubah}(h]h ]h"]h$]h&]uh1jihj3 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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj 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&]uh1hhhhKEhj ubeh}(h]j ah ]h"]f1ah$]h&]j aj Kj j uh1j hhhKEhhhhubeh}(h]current-minimal-requirementsah ]h"]current minimal requirementsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hKernel compilationh]hKernel compilation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKHubh)}(hhh](h)}(hGCCh]hGCC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKKubh)}(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&]uh1hhhhKMhj hhubeh}(h]gccah ]h"]h$]gccah&]uh1hhj hhhhhKK referencedKubh)}(hhh](h)}(hClang/LLVM (optional)h]hClang/LLVM (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKQubh)}(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}(hjC hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jA hj= ubah}(h]h ]h"]h$]h&]refdocj refdomainjN reftyperef refexplicitrefwarn reftarget kbuild_llvmuh1hhhhKShj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKShj hhubeh}(h]clang-llvm-optionalah ]h"]clang/llvm (optional)ah$]h&]uh1hhj hhhhhKQubh)}(hhh](h)}(hRust (optional)h]hRust (optional)}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs hhhhhKZubh)}(h2A recent version of the Rust compiler is required.h]h2A recent version of the Rust compiler is required.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjs 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 }(hj hhhNhNubhliteral)}(h ``Makefile``h]hMakefile}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh target }(hj hhhNhNubj )}(h``rustavailable``h]h rustavailable}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh? is useful to check why the Rust toolchain may not be detected.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK^hjs hhubeh}(h] rust-optionalah ]h"]rust (optional)ah$]h&]uh1hhj hhhhhKZubh)}(hhh](h)}(hbindgen (optional)h]hbindgen (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKdubh)}(hj``bindgen`` is used to generate the Rust bindings to the C side of the kernel. It depends on ``libclang``.h](j )}(h ``bindgen``h]hbindgen}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubhR is used to generate the Rust bindings to the C side of the kernel. It depends on }(hj hhhNhNubj )}(h ``libclang``h]hlibclang}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKfhj hhubeh}(h]bindgen-optionalah ]h"]bindgen (optional)ah$]h&]uh1hhj hhhhhKdubh)}(hhh](h)}(hMakeh]hMake}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKjubh)}(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&]uh1hhhhKlhjhhubeh}(h]makeah ]h"]h$]makeah&]uh1hhj hhhhhKjj Kubh)}(hhh](h)}(hBashh]hBash}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhKoubh)}(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.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhj<hhubeh}(h]bashah ]h"]h$]bashah&]uh1hhj hhhhhKoj Kubh)}(hhh](h)}(hBinutilsh]hBinutils}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhKuubh)}(h5Binutils 2.25 or newer is needed to build the kernel.h]h5Binutils 2.25 or newer is needed to build the kernel.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjchhubeh}(h]binutilsah ]h"]h$]binutilsah&]uh1hhj hhhhhKuj Kubh)}(hhh](h)}(h pkg-configh]h pkg-config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKzubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjhhubeh}(h] pkg-configah ]h"] pkg-configah$]h&]uh1hhj hhhhhKzubh)}(hhh](h)}(hFlexh]hFlex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]flexah ]h"]h$]flexah&]uh1hhj 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&]uh1hhj 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/}(hj&hhhNhNubah}(h]h ]h"]h$]h&]refurij(uh1j hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]paholeah ]h"]paholeah$]h&]uh1hhj hhhhhKubh)}(hhh](h)}(hPerlh]hPerl}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhhhhhKubh)}(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: }(hjXhhhNhNubj )}(h``Getopt::Long``h]h Getopt::Long}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjXubh, }(hjXhhhNhNubj )}(h``Getopt::Std``h]h Getopt::Std}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjXubh, }(hjXhhhNhNubj )}(h``File::Basename``h]hFile::Basename}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjXubh, and }(hjXhhhNhNubj )}(h``File::Find``h]h File::Find}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjXubh to build the kernel.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjGhhubeh}(h]perlah ]h"]perlah$]h&]uh1hhj 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&]uh1hhj 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&]uh1hhj 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).}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]tarah ]h"]tarah$]h&]uh1hhj hhhhhKubh)}(hhh](h)}(hgtags / GNU GLOBAL (optional)h]hgtags / GNU GLOBAL (optional)}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhKubh)}(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 }(hjJhhhNhNubj )}(h``make gtags``h]h make gtags}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubh'. This is due to its use of the gtags }(hjJhhhNhNubj )}(h``-C (--directory)``h]h-C (--directory)}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubh flag.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj9hhubeh}(h]gtags-gnu-global-optionalah ]h"]gtags / gnu global (optional)ah$]h&]uh1hhj hhhhhKubh)}(hhh](h)}(hmkimageh]hmkimage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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 }(hjhhhNhNubj )}(h``u-boot-tools``h]h u-boot-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhN package or can be built from the U-Boot source code. See the instructions at }(hjhhhNhNubj )}(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 hjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]mkimageah ]h"]mkimageah$]h&]uh1hhj 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&]uh1hhj hhhhhKubeh}(h]kernel-compilationah ]h"]h$]kernel compilationah&]uh1hhhhhhhhKHj 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&]uh1hhj hhhhhKubh)}(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/}(hj%hhhNhNubah}(h]h ]h"]h$]h&]refurij'uh1j hjubh)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h.32-bit UID support is now in place. Have fun!h]h.32-bit UID support is now in place. Have fun!}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]architectural-changesah ]h"]architectural changesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h Util-linuxh]h Util-linux}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhhhhhKubh)}(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 }(hjshhhNhNubj )}(h ``fdisk``h]hfdisk}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjsubh support for larger disks, support new options to mount, recognize more supported partition types, and similar goodies. You’ll probably want to upgrade.}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjbhhubeh}(h] util-linuxah ]h"]h$] util-linuxah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hKsymoopsh]hKsymoops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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 }(hjhhhNhNubj )}(h``CONFIG_KALLSYMS``h]hCONFIG_KALLSYMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j 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 }(hjhhhNhNubj )}(h``CONFIG_KALLSYMS``h]hCONFIG_KALLSYMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j 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&]uh1hhhhKhjhhubeh}(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 }(hjhhhNhNubj )}(h``/lib/modules``h]h /lib/modules}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j 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}(hj"hhhNhNubah}(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 }(hj0hhhNhNubj )}(h ``e2fsprogs``h]h e2fsprogs}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0ubhS fixes several bugs in fsck and debugfs. Obviously, it’s a good idea to upgrade.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] e2fsprogsah ]h"]h$] e2fsprogsah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhhhhhKubh)}(hkThe ``jfsutils`` package contains the utilities for the file system. The following utilities are available:h](hThe }(hjihhhNhNubj )}(h ``jfsutils``h]hjfsutils}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjiubh[ package contains the utilities for the file system. The following utilities are available:}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjXhhubh 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](j )}(h ``fsck.jfs``h]hfsck.jfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhZ - initiate replay of the transaction log, and check and repair a JFS formatted partition.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h1``mkfs.jfs`` - create a JFS formatted partition. h]h)}(h0``mkfs.jfs`` - create a JFS formatted partition.h](j )}(h ``mkfs.jfs``h]hmkfs.jfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh$ - create a JFS formatted partition.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhMhjXhhubeh}(h]jfsutilsah ]h"]h$]jfsutilsah&]uh1hhjhhhhhKj Kubh)}(hhh](h)}(h Reiserfsprogsh]h Reiserfsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubh)}(hX The reiserfsprogs package should be used for reiserfs-3.6.x (Linux kernels 2.4.x). It is a combined package and contains working versions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and ``reiserfsck``. These utils work on both i386 and alpha platforms.h](hThe reiserfsprogs package should be used for reiserfs-3.6.x (Linux kernels 2.4.x). It is a combined package and contains working versions of }(hjhhhNhNubj )}(h``mkreiserfs``h]h mkreiserfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh, }(hjhhhNhNubj )}(h``resize_reiserfs``h]hresize_reiserfs}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh, }hjsbj )}(h``debugreiserfs``h]h debugreiserfs}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh and }(hjhhhNhNubj )}(h``reiserfsck``h]h reiserfsck}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh4. These utils work on both i386 and alpha platforms.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjhhubeh}(h] reiserfsprogsah ]h"]h$] reiserfsprogsah&]uh1hhjhhhhhM j Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshhhhhMubh)}(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 }(hjhhhNhNubj )}(h ``xfsprogs``h]hxfsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh contains }(hjhhhNhNubj )}(h ``mkfs.xfs``h]hmkfs.xfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh, }(hjhhhNhNubj )}(h ``xfs_db``h]hxfs_db}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh , and the }(hjhhhNhNubj )}(h``xfs_repair``h]h xfs_repair}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j 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&]uh1hhhhMhjshhubeh}(h]xfsprogsah ]h"]h$]xfsprogsah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h PCMCIAutilsh]h PCMCIAutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(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 }(hjhhhNhNubj )}(h ``pcmcia-cs``h]h pcmcia-cs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh. 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.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(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.}(hj,hhhNhNubah}(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}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhhhhhM+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:}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM-hjBhhubh 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}hjcsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jahhhM1hjBhhubh)}(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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hjBhhubeh}(h]intel-ia32-microcodeah ]h"]intel ia32 microcodeah$]h&]uh1hhjhhhhhM+ubh)}(hhh](h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM9ubh)}(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](j )}(h``udev``h]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh+ is a userspace application for populating }(hjhhhNhNubj )}(h``/dev``h]h/dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh= dynamically with only entries for devices actually present. }(hjhhhNhNubj )}(h``udev``h]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh` replaces the basic functionality of devfs, while allowing persistent device naming for devices.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM;hjhhubeh}(h]udevah ]h"]h$]udevah&]uh1hhjhhhhhM9j Kubh)}(hhh](h)}(hFUSEh]hFUSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMAubh)}(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 }(hjhhhNhNubj )}(h ``direct_io``h]h direct_io}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh and }(hjhhhNhNubj )}(h``kernel_cache``h]h kernel_cache}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh won’t work.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMChjhhubeh}(h]fuseah ]h"]h$]fuseah&]uh1hhjhhhhhMAj Kubeh}(h]system-utilitiesah ]h"]h$]system utilitiesah&]uh1hhhhhhhhKj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hhhhhMGubh)}(hhh](h)}(hGeneral changesh]hGeneral changes}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhhhhhMJubh)}(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.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjFhhubeh}(h]general-changesah ]h"]general changesah$]h&]uh1hhj5hhhhhMJubh)}(hhh](h)}(hPacket Filter / NATh]hPacket Filter / NAT}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhhhhhMPubh)}(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.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhjmhhubeh}(h]packet-filter-natah ]h"]packet filter / natah$]h&]uh1hhj5hhhhhMPubh)}(hhh](h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMVubh)}(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&]uh1hhhhMXhjhhubh)}(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&]uh1hhhhM\hjhhubjb)}(hmknod /dev/ppp c 108 0h]hmknod /dev/ppp c 108 0}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahhhM_hjhhubh)}(has root.h]has root.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahjhhubeh}(h]pppah ]h"]h$]pppah&]uh1hhj5hhhhhMVj Kubh)}(hhh](h)}(h NFS-utilsh]h NFS-utils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMdubh)}(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 }(hjhhhNhNubj )}(h ``mountd``h]hmountd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh/ when the client mounted the filesystem, or by }(hjhhhNhNubj )}(h ``exportfs``h]hexportfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhO at system startup. exportfs would take information about active clients from }(hjhhhNhNubj )}(h``/var/lib/nfs/rmtab``h]h/var/lib/nfs/rmtab}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMfhjhhubh)}(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:hhhNhNubj )}(h ``rmtab``h]hrmtab}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:ubhA suffers from getting lots of old entries that never get removed.}(hj:hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMlhjhhubh)}(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 }(hjZhhhNhNubj )}(h ``rmtab``h]hrmtab}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZubhM and means that the kernel only needs to know about currently active clients.}(hjZhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMqhjhhubh)}(h/To enable this new functionality, you need to::h]h.To enable this new functionality, you need to:}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMwhjhhubjb)}(h mount -t nfsd nfsd /proc/fs/nfsdh]h mount -t nfsd nfsd /proc/fs/nfsd}hjsbah}(h]h ]h"]h$]h&]jqjruh1jahhhMyhjhhubh)}(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&]uh1hhhhM{hjhhubeh}(h] nfs-utilsah ]h"]h$] nfs-utilsah&]uh1hhj5hhhhhMdj Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(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 }(hjhhhNhNubj )}(h``CONFIG_X86_MCE``h]hCONFIG_X86_MCE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhi is enabled. Machine check events are errors reported by the CPU. Processing them is strongly encouraged.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]mcelogah ]h"]h$]mcelogah&]uh1hhj5hhhhhMj Kubeh}(h] networkingah ]h"]h$] networkingah&]uh1hhhhhhhhMGj Kubh)}(hhh](h)}(hKernel documentationh]hKernel documentation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hSphinxh]hSphinx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hPlease see :ref:`sphinx_install` in :ref:`Documentation/doc-guide/sphinx.rst ` for details about Sphinx requirements.h](h Please see }(hjhhhNhNub`h)}(h:ref:`sphinx_install`h]jB )}(hjh]hsphinx_install}(hjhhhNhNubah}(h]h ](jM stdstd-refeh"]h$]h&]uh1jA hjubah}(h]h ]h"]h$]h&]refdocj refdomainj%reftyperef refexplicitrefwarnj_ sphinx_installuh1hhhhMhjubh in }(hjhhhNhNubh)}(h5:ref:`Documentation/doc-guide/sphinx.rst `h]jB )}(hj=h]h"Documentation/doc-guide/sphinx.rst}(hj?hhhNhNubah}(h]h ](jM stdstd-refeh"]h$]h&]uh1jA hj;ubah}(h]h ]h"]h$]h&]refdocj refdomainjIreftyperef refexplicitrefwarnj_ sphinxdocuh1hhhhMhjubh' for details about Sphinx requirements.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]sphinxah ]h"]h$]sphinxah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hrustdoch]hrustdoc}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhhhhhMubh)}(h``rustdoc`` is used to generate the documentation for Rust code. Please see Documentation/rust/general-information.rst for more information.h](j )}(h ``rustdoc``h]hrustdoc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj~ubh is used to generate the documentation for Rust code. Please see Documentation/rust/general-information.rst for more information.}(hj~hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjmhhubeh}(h]rustdocah ]h"]rustdocah$]h&]uh1hhjhhhhhMubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hgcch]hgcc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hjhhhNhNubj )}(hftp://ftp.gnu.org/gnu/gcc/h]hftp://ftp.gnu.org/gnu/gcc/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id3ah ]h"]h$]j ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Clang/LLVMh]h Clang/LLVM}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubj)}(hhh]j)}(h$:ref:`Getting LLVM `. h]h)}(h#:ref:`Getting LLVM `.h](h)}(h":ref:`Getting LLVM `h]jB )}(hj>h]h Getting LLVM}(hj@hhhNhNubah}(h]h ](jM stdstd-refeh"]h$]h&]uh1jA hj<ubah}(h]h ]h"]h$]h&]refdocj refdomainjJreftyperef refexplicitrefwarnj_ getting_llvmuh1hhhhMhj8ubh.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj4ubah}(h]h ]h"]h$]h&]uh1jhj1hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhj hhubeh}(h] clang-llvmah ]h"] clang/llvmah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hRusth]hRust}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhhhhhMubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjzhhubeh}(h]rustah ]h"]rustah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hbindgenh]hbindgen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]bindgenah ]h"]bindgenah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hMakeh]hMake}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hjhhhNhNubj )}(hftp://ftp.gnu.org/gnu/make/h]hftp://ftp.gnu.org/gnu/make/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id4ah ]h"]h$]j:ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hBashh]hBash}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hjRhhhNhNubj )}(hftp://ftp.gnu.org/gnu/bash/h]hftp://ftp.gnu.org/gnu/bash/}(hjZhhhNhNubah}(h]h ]h"]h$]h&]refurij\uh1j hjRubh>}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjNubah}(h]h ]h"]h$]h&]uh1jhjKhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhj:hhubeh}(h]id5ah ]h"]h$]jaah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hBinutilsh]hBinutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id6ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hFlexh]hFlex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h* h]h)}(h)h](h<}(hjhhhNhNubj )}(h'https://github.com/westes/flex/releasesh]h'https://github.com/westes/flex/releases}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id7ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hBisonh]hBison}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hj6hhhNhNubj )}(hftp://ftp.gnu.org/gnu/bison/h]hftp://ftp.gnu.org/gnu/bison/}(hj>hhhNhNubah}(h]h ]h"]h$]h&]refurij@uh1j hj6ubh>}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj2ubah}(h]h ]h"]h$]h&]uh1jhj/hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id8ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hOpenSSLh]hOpenSSL}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhhhhhMubj)}(hhh]j)}(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&]uh1hhhhMhj~ubah}(h]h ]h"]h$]h&]uh1jhj{hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjjhhubeh}(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]j)}(h5 h]h)}(h4h](h<}(hjhhhNhNubj )}(h2https://www.kernel.org/pub/linux/utils/util-linux/h]h2https://www.kernel.org/pub/linux/utils/util-linux/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id11ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hKmodh]hKmod}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh](j)}(h5h]h)}(hj0h](h<}(hj2hhhNhNubj )}(h3https://www.kernel.org/pub/linux/utils/kernel/kmod/h]h3https://www.kernel.org/pub/linux/utils/kernel/kmod/}(hj9hhhNhNubah}(h]h ]h"]h$]h&]refurij;uh1j hj2ubh>}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj.ubah}(h]h ]h"]h$]h&]uh1jhj+hhhhhNubj)}(h< h]h)}(h;h](h<}(hj\hhhNhNubj )}(h9https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.gith]h9https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git}(hjdhhhNhNubah}(h]h ]h"]h$]h&]refurijfuh1j hj\ubh>}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjXubah}(h]h ]h"]h$]h&]uh1jhj+hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]kmodah ]h"]kmodah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hKsymoopsh]hKsymoops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h? h]h)}(h>h](h<}(hjhhhNhNubj )}(h}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id12ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hMkinitrdh]hMkinitrd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h/ h]h)}(h.h](h<}(hjhhhNhNubj )}(h,https://code.launchpad.net/initrd-tools/mainh]h,https://code.launchpad.net/initrd-tools/main}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id13ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h E2fsprogsh]h E2fsprogs}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hhhhhMubj)}(hhh](j)}(hAh]h)}(hj?h](h<}(hjAhhhNhNubj )}(h?https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/h]h?https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/}(hjHhhhNhNubah}(h]h ]h"]h$]h&]refurijJuh1j hjAubh>}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj=ubah}(h]h ]h"]h$]h&]uh1jhj:hhhhhNubj)}(h8 h]h)}(h7h](h<}(hjkhhhNhNubj )}(h5https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/h]h5https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/}(hjshhhNhNubah}(h]h ]h"]h$]h&]refurijuuh1j hjkubh>}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjgubah}(h]h ]h"]h$]h&]uh1jhj:hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jhhhMhj)hhubeh}(h]id14ah ]h"]h$]jVah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id15ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Reiserfsprogsh]h Reiserfsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(hK h]h)}(hJh](h<}(hjhhhNhNubj )}(hHhttps://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/h]hHhttps://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id16ah ]h"]h$]jqah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhMubj)}(hhh](j)}(h8h]h)}(hjMh](h<}(hjOhhhNhNubj )}(h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.gith]h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git}(hjVhhhNhNubah}(h]h ]h"]h$]h&]refurijXuh1j hjOubh>}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjKubah}(h]h ]h"]h$]h&]uh1jhjHhhhhhNubj)}(h: h]h)}(h9h](h<}(hjyhhhNhNubj )}(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 hjyubh>}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjuubah}(h]h ]h"]h$]h&]uh1jhjHhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jhhhMhj7hhubeh}(h]id17ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Pcmciautilsh]h Pcmciautils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id18ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Quota-toolsh]h Quota-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(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&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id19ah ]h"]h$]j@ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hIntel P6 microcodeh]hIntel P6 microcode}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhhhhhMubj)}(hhh]j)}(h$ h]h)}(h#h](h<}(hj]hhhNhNubj )}(h!https://downloadcenter.intel.com/h]h!https://downloadcenter.intel.com/}(hjehhhNhNubah}(h]h ]h"]h$]h&]refurijguh1j hj]ubh>}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjYubah}(h]h ]h"]h$]h&]uh1jhjVhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhM hjEhhubeh}(h]intel-p6-microcodeah ]h"]intel p6 microcodeah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id20ah ]h"]h$]jah&]uh1hhjhhhhhM j Kubh)}(hhh](h)}(hFUSEh]hFUSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhjhhubeh}(h]id21ah ]h"]h$]j+ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hjBhhhNhNubj )}(hhttps://www.mcelog.org/h]hhttps://www.mcelog.org/}(hjJhhhNhNubah}(h]h ]h"]h$]h&]refurijLuh1j hjBubh>}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj>ubah}(h]h ]h"]h$]h&]uh1jhj;hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhMhj*hhubeh}(h]id22ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubeh}(h]id10ah ]h"]h$]j3ah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hhhhhMubh)}(hhh](h)}(hPPPh]hPPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh](j)}(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&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1hhhhM!hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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&]uh1hhhhM"hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jhhhM hjhhubeh}(h]id24ah ]h"]h$]jah&]uh1hhj}hhhhhMj Kubh)}(hhh](h)}(h NFS-utilsh]h NFS-utils}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. hhhhhM%ubj)}(hhh](j)}(h;h]h)}(hjD h](h<}(hjF hhhNhNubj )}(h9https://sourceforge.net/project/showfiles.php?group_id=14h]h9https://sourceforge.net/project/showfiles.php?group_id=14}(hjM hhhNhNubah}(h]h ]h"]h$]h&]refurijO uh1j hjF ubh>}(hjF hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM'hjB ubah}(h]h ]h"]h$]h&]uh1jhj? hhhhhNubj)}(h h]h)}(hh](h<}(hjp hhhNhNubj )}(hhttps://nfs.sourceforge.net/h]hhttps://nfs.sourceforge.net/}(hjx hhhNhNubah}(h]h ]h"]h$]h&]refurijz uh1j hjp ubh>}(hjp hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM(hjl ubah}(h]h ]h"]h$]h&]uh1jhj? hhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jhhhM'hj. hhubeh}(h]id25ah ]h"]h$]jah&]uh1hhj}hhhhhM%j Kubh)}(hhh](h)}(hIptablesh]hIptables}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM+ubj)}(hhh]j)}(h5 h]h)}(h4h](h<}(hj hhhNhNubj )}(h2https://netfilter.org/projects/iptables/index.htmlh]h2https://netfilter.org/projects/iptables/index.html}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hj ubh>}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM-hj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhM-hj hhubeh}(h]iptablesah ]h"]iptablesah$]h&]uh1hhj}hhhhhM+ubh)}(hhh](h)}(h Ip-route2h]h Ip-route2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM0ubj)}(hhh]j)}(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&]uh1hhhhM2hj!ubah}(h]h ]h"]h$]h&]uh1jhj!hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhM2hj hhubeh}(h] ip-route2ah ]h"] ip-route2ah$]h&]uh1hhj}hhhhhM0ubh)}(hhh](h)}(hOProfileh]hOProfile}(hjA!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>!hhhhhM5ubj)}(hhh]j)}(h$ h]h)}(h#h](h<}(hjV!hhhNhNubj )}(h!https://oprofile.sf.net/download/h]h!https://oprofile.sf.net/download/}(hj^!hhhNhNubah}(h]h ]h"]h$]h&]refurij`!uh1j hjV!ubh>}(hjV!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM7hjR!ubah}(h]h ]h"]h$]h&]uh1jhjO!hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhM7hj>!hhubeh}(h]oprofileah ]h"]oprofileah$]h&]uh1hhj}hhhhhM5ubeh}(h]id23ah ]h"]h$]jah&]uh1hhjhhhhhMj 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]j)}(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&]uh1hhhhM?hj!ubah}(h]h ]h"]h$]h&]uh1jhj!hhhhhNubah}(h]h ]h"]h$]h&]jjuh1jhhhM?hj!hhubeh}(h]id27ah ]h"]h$]jkah&]uh1hhj!hhhhhM=j Kubeh}(h]id26ah ]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]j asrefids}(h]haj ]j aunameids}(j"hj"j!jjj j j j kernel compilationNgccNjp jm j5 j2 j j jjmakeNbashNbinutilsNjjflexNbisonNjDjAjjjjopensslNj6j3jj~jjjjsystem utilitiesNj_j\ util-linuxNksymoopsNmkinitrdN e2fsprogsNjfsutilsN reiserfsprogsNxfsprogsN pcmciautilsN quota-toolsNjjudevNfuseN networkingNjjjgjjpppN nfs-utilsNmcelogNkernel documentationNsphinxNjjj!j!jwjtjjjjjjjjj j j;!j8!j!j!u nametypes}(j"j"jj j jt"ju"jp j5 j jjv"jw"jx"jjy"jz"jDjjj{"j6jjjj|"j_j}"j~"j"j"j"j"j"j"j"jj"j"j"jjjj"j"j"j"j"jj!jwjjjjj j;!j!uh}(hhj!hjhj hj j j j jj j j jm j j2 j, j js jj j6jj]j<jjcjjjjjjjAjjjGjjj jj3jj~j9jjjjj/jj\j jjbjjjjjRjjjXjmjjjsjjj<jjjBjjj'jjj5jgjFjjmjjjjjjjjjgjjjmj!jjjjjjtj jjzjjj5jjj:jjjjjejjjjjxjjjjjjjj$jjj)jjj2jjj7jjj@jjjEjjj%jjqj*j!j}j) jj j. j j j8!j j!j>!j!j!j!j!u footnote_refs}jl"]j as citation_refs} autofootnotes]j aautofootnote_refs]j asymbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j:"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&]jalevelKtypej"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&]j5alevelKtypej"sourcehlineMuh1j"hjhhhhhMubj")}(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”.}(hj:#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7#ubah}(h]h ]h"]h$]h&]jalevelKtypej"sourcehlineMuh1j"hjhhhhhMubj")}(hhh]h)}(h(Duplicate implicit target name: "bison".h]h,Duplicate implicit target name: “bison”.}(hjU#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR#ubah}(h]h ]h"]h$]h&]jealevelKtypej"sourcehlineMuh1j"hjhhhhhMubj")}(hhh]h)}(h*Duplicate implicit target name: "openssl".h]h.Duplicate implicit target name: “openssl”.}(hjp#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm#ubah}(h]h ]h"]h$]h&]jalevelKtypej"sourcehlineMuh1j"hjjhhhhhMubj")}(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&]jxalevelKtypej"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&]jalevelKtypej"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&]j$alevelKtypej"sourcehlineMuh1j"hjhhhhhMubj")}(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"hj)hhhhhMubj")}(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&]jalevelKtypej"sourcehlineMuh1j"hjhhhhhMubj")}(hhh]h)}(h0Duplicate implicit target name: "reiserfsprogs".h]h4Duplicate implicit target name: “reiserfsprogs”.}(hj-$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*$ubah}(h]h ]h"]h$]h&]j2alevelKtypej"sourcehlineMuh1j"hjhhhhhMubj")}(hhh]h)}(h+Duplicate implicit target name: "xfsprogs".h]h/Duplicate implicit target name: “xfsprogs”.}(hjH$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE$ubah}(h]h ]h"]h$]h&]jalevelKtypej"sourcehlineMuh1j"hj7hhhhhMubj")}(hhh]h)}(h.Duplicate implicit target name: "pcmciautils".h]h2Duplicate implicit target name: “pcmciautils”.}(hjc$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”.}(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"sourcehlineM uh1j"hjhhhhhM ubj")}(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&]j%alevelKtypej"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&]jqalevelKtypej"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"sourcehlineMuh1j"hj}hhhhhMubj")}(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&]j alevelKtypej"sourcehlineM%uh1j"hj. hhhhhM%ubj")}(hhh]h)}(h7Duplicate implicit target name: "kernel documentation".h]h;Duplicate implicit target name: “kernel documentation”.}(hj;%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8%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”.}(hjV%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS%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.}hjs%sbah}(h]h ]h"]h$]h&]uh1hhjp%ubah}(h]h ]h"]h$]h&]levelKtypej"sourcehlineKuh1j"uba transformerN include_log] decorationNhhub.