%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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/pt_BR/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXUpgrade 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. For a list of the programs on your system including their version execute ./scripts/ver_linuxh](hUpgrade to at }(hjhhhNhNubhstrong)}(h **least**h]hleast}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubhX 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. For a list of the programs on your system including their version execute ./scripts/ver_linux}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(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 do not need to 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 do not need to concern yourself with pcmciautils.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jShjPubjT)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jShjPubjT)}(hhh]h}(h]h ]h"]h$]h&]colwidthK(uh1jShjPubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hProgramh]hProgram}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j}hjzubj~)}(hhh]h)}(hMinimal versionh]hMinimal version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j}hjzubj~)}(hhh]h)}(hCommand to check the versionh]hCommand to check the version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j}hjzubeh}(h]h ]h"]h$]h&]uh1jxhjuubah}(h]h ]h"]h$]h&]uh1jshjPubhtbody)}(hhh](jy)}(hhh](j~)}(hhh]h)}(hbashh]hbash}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h4.2h]h4.2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hbash --versionh]hbash --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hbch]hbc}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hj&ubah}(h]h ]h"]h$]h&]uh1j}hj#ubj~)}(hhh]h)}(h1.06.95h]h1.06.95}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hj=ubah}(h]h ]h"]h$]h&]uh1j}hj#ubj~)}(hhh]h)}(h bc --versionh]h bc --version}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjTubah}(h]h ]h"]h$]h&]uh1j}hj#ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hbindgen (optional)h]hbindgen (optional)}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjtubah}(h]h ]h"]h$]h&]uh1j}hjqubj~)}(hhh]h)}(h0.71.1h]h0.71.1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1j}hjqubj~)}(hhh]h)}(hbindgen --versionh]hbindgen --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1j}hjqubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hbinutilsh]hbinutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h2.30h]h2.30}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hld -vh]hld -v}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hbisonh]hbison}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(h2.0h]h2.0}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hj'ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(hbison --versionh]hbison --version}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hj>ubah}(h]h ]h"]h$]h&]uh1j}hj ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(h btrfs-progsh]h btrfs-progs}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hj^ubah}(h]h ]h"]h$]h&]uh1j}hj[ubj~)}(hhh]h)}(h0.18h]h0.18}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjuubah}(h]h ]h"]h$]h&]uh1j}hj[ubj~)}(hhh]h)}(hbtrfs --versionh]hbtrfs --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1j}hj[ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hClang/LLVM (optional)h]hClang/LLVM (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h15.0.0h]h15.0.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hclang --versionh]hclang --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(h e2fsprogsh]h e2fsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h1.41.4h]h1.41.4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h e2fsck -Vh]h e2fsck -V}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hj(ubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hflexh]hflex}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjHubah}(h]h ]h"]h$]h&]uh1j}hjEubj~)}(hhh]h)}(h2.5.35h]h2.5.35}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hj_ubah}(h]h ]h"]h$]h&]uh1j}hjEubj~)}(hhh]h)}(hflex --versionh]hflex --version}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjvubah}(h]h ]h"]h$]h&]uh1j}hjEubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hgdbh]hgdb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h7.2h]h7.2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h gdb --versionh]h gdb --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hGNU awk (optional)h]hGNU awk (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h5.1.0h]h5.1.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hgawk --versionh]hgawk --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hGNU Ch]hGNU C}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hj2ubah}(h]h ]h"]h$]h&]uh1j}hj/ubj~)}(hhh]h)}(h8.1h]h8.1}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjIubah}(h]h ]h"]h$]h&]uh1j}hj/ubj~)}(hhh]h)}(h gcc --versionh]h gcc --version}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hj`ubah}(h]h ]h"]h$]h&]uh1j}hj/ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hGNU makeh]hGNU make}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1j}hj}ubj~)}(hhh]h)}(h4.0h]h4.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1j}hj}ubj~)}(hhh]h)}(hmake --versionh]hmake --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1j}hj}ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hGNU tarh]hGNU tar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h1.28h]h1.28}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h tar --versionh]h tar --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hGRUBh]hGRUB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h0.93h]h0.93}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hj3ubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h(grub --version || grub-install --versionh]h(grub --version || grub-install --version}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjJubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hgtags (optional)h]hgtags (optional)}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjjubah}(h]h ]h"]h$]h&]uh1j}hjgubj~)}(hhh]h)}(h6.6.5h]h6.6.5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1j}hjgubj~)}(hhh]h)}(hgtags --versionh]hgtags --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1j}hjgubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hiptablesh]hiptables}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h1.4.2h]h1.4.2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h iptables -Vh]h iptables -V}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hjfsutilsh]hjfsutils}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h1.1.3h]h1.1.3}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h fsck.jfs -Vh]h fsck.jfs -V}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hj4ubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hkmodh]hkmod}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjTubah}(h]h ]h"]h$]h&]uh1j}hjQubj~)}(hhh]h)}(h13h]h13}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjkubah}(h]h ]h"]h$]h&]uh1j}hjQubj~)}(hhh]h)}(hkmod -Vh]hkmod -V}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1j}hjQubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hmcelogh]hmcelog}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h0.6h]h0.6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hmcelog --versionh]hmcelog --version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hmkimage (optional)h]hmkimage (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h2017.01h]h2017.01}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hmkimage --versionh]hmkimage --version}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(h nfs-utilsh]h nfs-utils}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj>ubah}(h]h ]h"]h$]h&]uh1j}hj;ubj~)}(hhh]h)}(h1.0.5h]h1.0.5}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjUubah}(h]h ]h"]h$]h&]uh1j}hj;ubj~)}(hhh]h)}(hshowmount --versionh]hshowmount --version}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjlubah}(h]h ]h"]h$]h&]uh1j}hj;ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hopenssl & libcryptoh]hopenssl & libcrypto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h1.0.0h]h1.0.0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hopenssl versionh]hopenssl version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hpaholeh]hpahole}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(h1.22h]h1.22}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjubah}(h]h ]h"]h$]h&]uh1j}hjubj~)}(hhh]h)}(hpahole --versionh]hpahole --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hj ubah}(h]h ]h"]h$]h&]uh1j}hjubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(h pcmciautilsh]h pcmciautils}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hj( ubah}(h]h ]h"]h$]h&]uh1j}hj% ubj~)}(hhh]h)}(h004h]h004}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hj? ubah}(h]h ]h"]h$]h&]uh1j}hj% ubj~)}(hhh]h)}(h pccardctl -Vh]h pccardctl -V}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjV ubah}(h]h ]h"]h$]h&]uh1j}hj% ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hPPPh]hPPP}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjv ubah}(h]h ]h"]h$]h&]uh1j}hjs ubj~)}(hhh]h)}(h2.4.0h]h2.4.0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj ubah}(h]h ]h"]h$]h&]uh1j}hjs ubj~)}(hhh]h)}(hpppd --versionh]hpppd --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hj ubah}(h]h ]h"]h$]h&]uh1j}hjs ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hprocpsh]hprocps}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(h3.2.0h]h3.2.0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(h ps --versionh]h ps --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hj ubah}(h]h ]h"]h$]h&]uh1j}hj ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hPythonh]hPython}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(h1.85.0h]h1.85.0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(hrustc --versionh]hrustc --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hj ubah}(h]h ]h"]h$]h&]uh1j}hj ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hSphinx\ [#f1]_h](hSphinx }(hj hhhNhNubhfootnote_reference)}(h[#f1]_h]h1}(hj hhhNhNubah}(h]id1ah ]h"]h$]h&]autoKhf1docnameprocess/changesuh1j hj resolvedKubeh}(h]h ]h"]h$]h&]uh1hhhhK?hj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(h3.4.3h]h3.4.3}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hj) ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(hsphinx-build --versionh]hsphinx-build --version}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hj@ ubah}(h]h ]h"]h$]h&]uh1j}hj ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hsquashfs-toolsh]hsquashfs-tools}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj` ubah}(h]h ]h"]h$]h&]uh1j}hj] ubj~)}(hhh]h)}(h4.0h]h4.0}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjw ubah}(h]h ]h"]h$]h&]uh1j}hj] ubj~)}(hhh]h)}(hmksquashfs -versionh]hmksquashfs -version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj ubah}(h]h ]h"]h$]h&]uh1j}hj] ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hudevh]hudev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(h081h]h081}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(hudevadm --versionh]hudevadm --version}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhj ubah}(h]h ]h"]h$]h&]uh1j}hj ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(h util-linuxh]h util-linux}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(h2.10oh]h2.10o}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhj ubah}(h]h ]h"]h$]h&]uh1j}hj ubj~)}(hhh]h)}(hmount --versionh]hmount --version}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhj* ubah}(h]h ]h"]h$]h&]uh1j}hj ubeh}(h]h ]h"]h$]h&]uh1jxhjubjy)}(hhh](j~)}(hhh]h)}(hxfsprogsh]hxfsprogs}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjJ ubah}(h]h ]h"]h$]h&]uh1j}hjG ubj~)}(hhh]h)}(h2.6.0h]h2.6.0}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChja ubah}(h]h ]h"]h$]h&]uh1j}hjG ubj~)}(hhh]h)}(h xfs_db -Vh]h xfs_db -V}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjx ubah}(h]h ]h"]h$]h&]uh1j}hjG ubeh}(h]h ]h"]h$]h&]uh1jxhjubeh}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]colsKuh1jNhjKubah}(h]h ]h"]h$]h&]uh1jIhjhhhhhNubhfootnote)}(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&]uh1hhhhKFhj ubeh}(h]j ah ]h"]f1ah$]h&]j aj Kj j uh1j hhhKFhjhhubeh}(h]current-minimal-requirementsah ]h"]current minimal requirementsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hKernel compilationh]hKernel compilation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKIubh)}(hhh](h)}(hGCCh]hGCC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKLubh)}(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&]uh1hhhhKNhj hhubeh}(h]gccah ]h"]h$]gccah&]uh1hhj hhhhhKL referencedKubh)}(hhh](h)}(hClang/LLVM (optional)h]hClang/LLVM (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKRubh)}(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)}(hjS h]hBuilding Linux with Clang/LLVM}(hjW hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jU hjQ ubah}(h]h ]h"]h$]h&]refdocj refdomainjb reftyperef refexplicitrefwarn reftarget kbuild_llvmuh1hhhhKThj$ ubh.}(hj$ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKThj hhubeh}(h]clang-llvm-optionalah ]h"]clang/llvm (optional)ah$]h&]uh1hhj hhhhhKRubh)}(hhh](h)}(hRust (optional)h]hRust (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK[ubh)}(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]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 }(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_hj hhubeh}(h] rust-optionalah ]h"]rust (optional)ah$]h&]uh1hhj hhhhhK[ubh)}(hhh](h)}(hbindgen (optional)h]hbindgen (optional)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKeubh)}(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&]uh1hhhhKghj hhubeh}(h]bindgen-optionalah ]h"]bindgen (optional)ah$]h&]uh1hhj hhhhhKeubh)}(hhh](h)}(hMakeh]hMake}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hhhhhKkubh)}(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&]uh1hhhhKmhj)hhubeh}(h]makeah ]h"]h$]makeah&]uh1hhj hhhhhKkj Kubh)}(hhh](h)}(hBashh]hBash}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhhhhhKpubh)}(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.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjPhhubeh}(h]bashah ]h"]h$]bashah&]uh1hhj hhhhhKpj Kubh)}(hhh](h)}(hBinutilsh]hBinutils}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhhhhhKvubh)}(h5Binutils 2.30 or newer is needed to build the kernel.h]h5Binutils 2.30 or newer is needed to build the kernel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjwhhubeh}(h]binutilsah ]h"]h$]binutilsah&]uh1hhj hhhhhKvj Kubh)}(hhh](h)}(h pkg-configh]h pkg-config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK{ubh)}(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 hhhhhK{ubh)}(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.22 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.22 or later.}(hj$hhhNhNubah}(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 }(hj2hhhNhNubj- )}(h'https://fedorapeople.org/~acme/dwarves/h]h'https://fedorapeople.org/~acme/dwarves/}(hj:hhhNhNubah}(h]h ]h"]h$]h&]refurij<uh1j, hj2ubh.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]paholeah ]h"]paholeah$]h&]uh1hhj hhhhhKubh)}(hhh](h)}(hPerlh]hPerl}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hhhhhKubh)}(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: }(hjlhhhNhNubj )}(h``Getopt::Long``h]h Getopt::Long}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjlubh, }(hjlhhhNhNubj )}(h``Getopt::Std``h]h Getopt::Std}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjlubh, }(hjlhhhNhNubj )}(h``File::Basename``h]hFile::Basename}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjlubh, and }(hjlhhhNhNubj )}(h``File::Find``h]h File::Find}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjlubh to build the kernel.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj[hhubeh}(h]perlah ]h"]perlah$]h&]uh1hhj hhhhhKubh)}(hhh](h)}(hPythonh]hPython}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hSeveral config options require it: it is required for arm/arm64 default configs, CONFIG_LTO_CLANG, some DRM optional configs, the kernel-doc tool, and docs build (Sphinx), among others.h]hSeveral config options require it: it is required for arm/arm64 default configs, CONFIG_LTO_CLANG, some DRM optional configs, the kernel-doc tool, and docs build (Sphinx), among others.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]pythonah ]h"]pythonah$]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.}(hj)hhhNhNubah}(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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]opensslah ]h"]h$]opensslah&]uh1hhj hhhhhKj Kubh)}(hhh](h)}(hTarh]hTar}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhhhhhKubh)}(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&]uh1hhhhKhjMhhubeh}(h]tarah ]h"]tarah$]h&]uh1hhj hhhhhKubh)}(hhh](h)}(hgtags / GNU GLOBAL (optional)h]hgtags / GNU GLOBAL (optional)}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhKubh)}(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 }(hjhhhNhNubj )}(h``make gtags``h]h make gtags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh'. This is due to its use of the gtags }(hjhhhNhNubj )}(h``-C (--directory)``h]h-C (--directory)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh flag.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjthhubeh}(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}(hj hhhNhNubah}(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&]uh1hhhhhhhhKIj Kubh)}(hhh](h)}(hSystem utilitiesh]hSystem utilities}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhKubh)}(hhh](h)}(hArchitectural changesh]hArchitectural changes}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhhhhhKubh)}(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 (}(hjXhhhNhNubj- )}(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&]refurijbuh1j, hjXubh)}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjGhhubh)}(h.32-bit UID support is now in place. Have fun!h]h.32-bit UID support is now in place. Have fun!}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjGhhubh)}(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 in 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 in 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&]uh1hhhhKhjGhhubeh}(h]architectural-changesah ]h"]architectural changesah$]h&]uh1hhj6hhhhhKubh)}(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 }(hjhhhNhNubj )}(h ``fdisk``h]hfdisk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh support for larger disks, support new options to mount, recognize more supported partition types, and similar goodies. You’ll probably want to upgrade.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] util-linuxah ]h"]h$] util-linuxah&]uh1hhj6hhhhhKj 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&]uh1hhj6hhhhhKj Kubh)}(hhh](h)}(hMkinitrdh]hMkinitrd}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hhhhhKubh)}(h^These changes to the ``/lib/modules`` file tree layout also require that mkinitrd be upgraded.h](hThese changes to the }(hj2hhhNhNubj )}(h``/lib/modules``h]h /lib/modules}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubh9 file tree layout also require that mkinitrd be upgraded.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj!hhubeh}(h]mkinitrdah ]h"]h$]mkinitrdah&]uh1hhj6hhhhhKj Kubh)}(hhh](h)}(h E2fsprogsh]h E2fsprogs}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhhhhhKubh)}(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 }(hjkhhhNhNubj )}(h ``e2fsprogs``h]h e2fsprogs}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j hjkubhS fixes several bugs in fsck and debugfs. Obviously, it’s a good idea to upgrade.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjZhhubeh}(h] e2fsprogsah ]h"]h$] e2fsprogsah&]uh1hhj6hhhhhKj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hkThe ``jfsutils`` package contains the utilities for the file system. The following utilities are available:h](hThe }(hjhhhNhNubj )}(h ``jfsutils``h]hjfsutils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh[ package contains the utilities for the file system. The following utilities are available:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh 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&]uh1hhhhM hjubah}(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&]uh1hhhhM hjubah}(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-uh1jhhhM hjhhubeh}(h]jfsutilsah ]h"]h$]jfsutilsah&]uh1hhj6hhhhhMj Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hhhhhMubh)}(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 }(hjPhhhNhNubj )}(h ``xfsprogs``h]hxfsprogs}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjPubh contains }(hjPhhhNhNubj )}(h ``mkfs.xfs``h]hmkfs.xfs}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjPubh, }(hjPhhhNhNubj )}(h ``xfs_db``h]hxfs_db}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjPubh , and the }(hjPhhhNhNubj )}(h``xfs_repair``h]h xfs_repair}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjPubh 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).}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj?hhubeh}(h]xfsprogsah ]h"]h$]xfsprogsah&]uh1hhj6hhhhhMj 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&]uh1hhj6hhhhhMj Kubh)}(hhh](h)}(h Quota-toolsh]h Quota-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM#ubh)}(hSupport for 32 bit uid's and gid's is required if you want to use the newer version 2 quota format. Quota-tools version 3.07 and newer has this support. Use the recommended version or newer from the table above.h]hSupport for 32 bit uid’s and gid’s is required if you want to use the newer version 2 quota format. Quota-tools version 3.07 and newer has this support. Use the recommended version or newer from the table above.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hjhhubeh}(h] quota-toolsah ]h"]h$] quota-toolsah&]uh1hhj6hhhhhM#j Kubh)}(hhh](h)}(hIntel IA32 microcodeh]hIntel IA32 microcode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM+ubh)}(hA driver has been added to allow updating of Intel IA32 microcode, accessible as a normal (misc) character device. If you are not using udev you may need to::h]hA driver has been added to allow updating of Intel IA32 microcode, accessible as a normal (misc) character device. If you are not using udev you may need to:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM-hjhhubh literal_block)}(hNmkdir /dev/cpu mknod /dev/cpu/microcode c 10 184 chmod 0644 /dev/cpu/microcodeh]hNmkdir /dev/cpu mknod /dev/cpu/microcode c 10 184 chmod 0644 /dev/cpu/microcode}hj/sbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1j-hhhM1hjhhubh)}(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.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hjhhubeh}(h]intel-ia32-microcodeah ]h"]intel ia32 microcodeah$]h&]uh1hhj6hhhhhM+ubh)}(hhh](h)}(hudevh]hudev}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhhhhhM9ubh)}(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}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjfubh+ is a userspace application for populating }(hjfhhhNhNubj )}(h``/dev``h]h/dev}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjfubh= dynamically with only entries for devices actually present. }(hjfhhhNhNubj )}(h``udev``h]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjfubh` replaces the basic functionality of devfs, while allowing persistent device naming for devices.}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM;hjUhhubeh}(h]udevah ]h"]h$]udevah&]uh1hhj6hhhhhM9j 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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh won’t work.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMChjhhubeh}(h]fuseah ]h"]h$]fuseah&]uh1hhj6hhhhhMAj Kubeh}(h]system-utilitiesah ]h"]h$]system utilitiesah&]uh1hhhhhhhhKj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMGubh)}(hhh](h)}(hGeneral changesh]hGeneral changes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMJubh)}(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.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjhhubeh}(h]general-changesah ]h"]general changesah$]h&]uh1hhjhhhhhMJubh)}(hhh](h)}(hPacket Filter / NATh]hPacket Filter / NAT}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhMPubh)}(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.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhj9hhubeh}(h]packet-filter-natah ]h"]packet filter / natah$]h&]uh1hhjhhhhhMPubh)}(hhh](h)}(hPPPh]hPPP}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hhhhhMVubh)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMXhj`hhubh)}(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\hj`hhubj.)}(hmknod /dev/ppp c 108 0h]hmknod /dev/ppp c 108 0}hjsbah}(h]h ]h"]h$]h&]j=j>uh1j-hhhM_hj`hhubh)}(has root.h]has root.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahj`hhubeh}(h]pppah ]h"]h$]pppah&]uh1hhjhhhhhMVj 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}(hjhhhNhNubah}(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, }(hjhhhNhNubj )}(h ``rmtab``h]hrmtab}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhA suffers from getting lots of old entries that never get removed.}(hjhhhNhNubeh}(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 }(hj&hhhNhNubj )}(h ``rmtab``h]hrmtab}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubhM and means that the kernel only needs to know about currently active clients.}(hj&hhhNhNubeh}(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:}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMwhjhhubj.)}(h mount -t nfsd nfsd /proc/fs/nfsdh]h mount -t nfsd nfsd /proc/fs/nfsd}hjTsbah}(h]h ]h"]h$]h&]j=j>uh1j-hhhMyhjhhubh)}(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.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hjhhubeh}(h] nfs-utilsah ]h"]h$] nfs-utilsah&]uh1hhjhhhhhMdj Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhhhhhMubh)}(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&]uh1hhhhMhjxhhubeh}(h]mcelogah ]h"]h$]mcelogah&]uh1hhjhhhhhMj 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)}(hmPlease see :ref:`sphinx_install` in Documentation/doc-guide/sphinx.rst for details about Sphinx requirements.h](h Please see }(hjhhhNhNubh)}(h:ref:`sphinx_install`h]jV )}(hjh]hsphinx_install}(hjhhhNhNubah}(h]h ](ja stdstd-refeh"]h$]h&]uh1jU hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjs sphinx_installuh1hhhhMhjubhM in Documentation/doc-guide/sphinx.rst for details about Sphinx requirements.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]sphinxah ]h"]h$]sphinxah&]uh1hhjhhhhhMj 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](j )}(h ``rustdoc``h]hrustdoc}(hj*hhhNhNubah}(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&]uh1hhhhMhjhhubeh}(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}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhhhhhMubh)}(hhh](h)}(hKernel compilationh]hKernel compilation}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhhhhhMubh)}(hhh](h)}(hgcch]hgcc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hhhhhMubj)}(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&]j5j6uh1jhhhMhj|hhubeh}(h]id3ah ]h"]h$]j ah&]uh1hhjkhhhhhMj Kubh)}(hhh](h)}(h Clang/LLVMh]h Clang/LLVM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h$:ref:`Getting LLVM `. h]h)}(h#:ref:`Getting LLVM `.h](h)}(h":ref:`Getting LLVM `h]jV )}(hjh]h Getting LLVM}(hjhhhNhNubah}(h]h ](ja stdstd-refeh"]h$]h&]uh1jU hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjs getting_llvmuh1hhhhMhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h] clang-llvmah ]h"] clang/llvmah$]h&]uh1hhjkhhhhhMubh)}(hhh](h)}(hRusth]hRust}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hhhhhMubj)}(hhh]j)}(h$Documentation/rust/quick-start.rst. h]h)}(h#Documentation/rust/quick-start.rst.h]h#Documentation/rust/quick-start.rst.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj6ubah}(h]h ]h"]h$]h&]uh1jhj3hhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhj"hhubeh}(h]rustah ]h"]rustah$]h&]uh1hhjkhhhhhMubh)}(hhh](h)}(hbindgenh]hbindgen}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hhhhhMubj)}(hhh]j)}(h$Documentation/rust/quick-start.rst. h]h)}(h#Documentation/rust/quick-start.rst.h]h#Documentation/rust/quick-start.rst.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjpubah}(h]h ]h"]h$]h&]uh1jhjmhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhj\hhubeh}(h]bindgenah ]h"]bindgenah$]h&]uh1hhjkhhhhhMubh)}(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&]j5j6uh1jhhhMhjhhubeh}(h]id4ah ]h"]h$]jNah&]uh1hhjkhhhhhMj Kubh)}(hhh](h)}(hBashh]hBash}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(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&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h]id5ah ]h"]h$]juah&]uh1hhjkhhhhhMj Kubh)}(hhh](h)}(hBinutilsh]hBinutils}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hhhhhMubj)}(hhh]j)}(h3 h]h)}(h2h](h<}(hjFhhhNhNubj- )}(h0https://www.kernel.org/pub/linux/devel/binutils/h]h0https://www.kernel.org/pub/linux/devel/binutils/}(hjNhhhNhNubah}(h]h ]h"]h$]h&]refurijPuh1j, hjFubh>}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjBubah}(h]h ]h"]h$]h&]uh1jhj?hhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhj.hhubeh}(h]id6ah ]h"]h$]jah&]uh1hhjkhhhhhMj Kubh)}(hhh](h)}(hFlexh]hFlex}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhhhhhMubj)}(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&]j5j6uh1jhhhMhjzhhubeh}(h]id7ah ]h"]h$]jah&]uh1hhjkhhhhhMj Kubh)}(hhh](h)}(hBisonh]hBison}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hjhhhNhNubj- )}(hftp://ftp.gnu.org/gnu/bison/h]hftp://ftp.gnu.org/gnu/bison/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j, hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h]id8ah ]h"]h$]jah&]uh1hhjkhhhhhMj Kubh)}(hhh](h)}(hOpenSSLh]hOpenSSL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hj*hhhNhNubj- )}(hhttps://www.openssl.org/h]hhttps://www.openssl.org/}(hj2hhhNhNubah}(h]h ]h"]h$]h&]refurij4uh1j, hj*ubh>}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhj#hhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h]id9ah ]h"]h$]jKah&]uh1hhjkhhhhhMj Kubeh}(h]id2ah ]h"]h$]j4ah&]uh1hhjZhhhhhMj Kubh)}(hhh](h)}(hSystem utilitiesh]hSystem utilities}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehhhhhMubh)}(hhh](h)}(h Util-linuxh]h Util-linux}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhhhhhMubj)}(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&]j5j6uh1jhhhMhjvhhubeh}(h]id11ah ]h"]h$]jah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(hKmodh]hKmod}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh](j)}(h5h]h)}(hjh](h<}(hjhhhNhNubj- )}(h3https://www.kernel.org/pub/linux/utils/kernel/kmod/h]h3https://www.kernel.org/pub/linux/utils/kernel/kmod/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j, hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j, hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h]kmodah ]h"]kmodah$]h&]uh1hhjehhhhhMubh)}(hhh](h)}(hKsymoopsh]hKsymoops}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhMubj)}(hhh]j)}(h? h]h)}(h>h](h<}(hjQhhhNhNubj- )}(h}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjMubah}(h]h ]h"]h$]h&]uh1jhjJhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhj9hhubeh}(h]id12ah ]h"]h$]jah&]uh1hhjehhhhhMj 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&]j5j6uh1jhhhMhjhhubeh}(h]id13ah ]h"]h$]jXah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(h E2fsprogsh]h E2fsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh](j)}(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&]uh1jhjhhhhhNubj)}(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&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h]id14ah ]h"]h$]jah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(hJFSutilsh]hJFSutils}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hj_hhhNhNubj- )}(hhttps://jfs.sourceforge.net/h]hhttps://jfs.sourceforge.net/}(hjghhhNhNubah}(h]h ]h"]h$]h&]refurijiuh1j, hj_ubh>}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj[ubah}(h]h ]h"]h$]h&]uh1jhjXhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjGhhubeh}(h]id15ah ]h"]h$]j=ah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(hXfsprogsh]hXfsprogs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh](j)}(h8h]h)}(hjh](h<}(hjhhhNhNubj- )}(h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.gith]h6https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j, hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h: h]h)}(h9h](h<}(hjhhhNhNubj- )}(h7https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/h]h7https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j, hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h]id16ah ]h"]h$]jah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(h Pcmciautilsh]h Pcmciautils}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubj)}(hhh]j)}(h8 h]h)}(h7h](h<}(hj!hhhNhNubj- )}(h5https://www.kernel.org/pub/linux/utils/kernel/pcmcia/h]h5https://www.kernel.org/pub/linux/utils/kernel/pcmcia/}(hj)hhhNhNubah}(h]h ]h"]h$]h&]refurij+uh1j, hj!ubh>}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhj hhubeh}(h]id17ah ]h"]h$]jah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(h Quota-toolsh]h Quota-tools}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhhhhhMubj)}(hhh]j)}(h0 h]h)}(h.h](h<}(hjmhhhNhNubj- )}(h,https://sourceforge.net/projects/linuxquota/h]h,https://sourceforge.net/projects/linuxquota/}(hjuhhhNhNubah}(h]h ]h"]h$]h&]refurijwuh1j, hjmubh>}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjiubah}(h]h ]h"]h$]h&]uh1jhjfhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjUhhubeh}(h]id18ah ]h"]h$]j ah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(hIntel P6 microcodeh]hIntel P6 microcode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h$ h]h)}(h#h](h<}(hjhhhNhNubj- )}(h!https://downloadcenter.intel.com/h]h!https://downloadcenter.intel.com/}(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&]j5j6uh1jhhhMhjhhubeh}(h]intel-p6-microcodeah ]h"]intel p6 microcodeah$]h&]uh1hhjehhhhhMubh)}(hhh](h)}(hudevh]hudev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(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&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhM hjhhubeh}(h]id19ah ]h"]h$]jah&]uh1hhjehhhhhMj Kubh)}(hhh](h)}(hFUSEh]hFUSE}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hhhhhM ubj)}(hhh]j)}(h. h]h)}(h-h](h<}(hjRhhhNhNubj- )}(h+https://github.com/libfuse/libfuse/releasesh]h+https://github.com/libfuse/libfuse/releases}(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&]j5j6uh1jhhhMhj:hhubeh}(h]id20ah ]h"]h$]jah&]uh1hhjehhhhhM j Kubh)}(hhh](h)}(hmcelogh]hmcelog}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]j)}(h h]h)}(hh](h<}(hjhhhNhNubj- )}(hhttps://www.mcelog.org/h]hhttps://www.mcelog.org/}(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&]j5j6uh1jhhhMhjhhubeh}(h]id21ah ]h"]h$]jah&]uh1hhjehhhhhMj Kubeh}(h]id10ah ]h"]h$]jah&]uh1hhjZhhhhhMj Kubh)}(hhh](h)}(h Networkingh]h Networking}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(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/}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j, hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h#h]h)}(hj*h](h<}(hj,hhhNhNubj- )}(h!https://git.ozlabs.org/?p=ppp.gith]h!https://git.ozlabs.org/?p=ppp.git}(hj3hhhNhNubah}(h]h ]h"]h$]h&]refurij5uh1j, hj,ubh>}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h% h]h)}(h$h](h<}(hjVhhhNhNubj- )}(h"https://github.com/paulusmack/ppp/h]h"https://github.com/paulusmack/ppp/}(hj^hhhNhNubah}(h]h ]h"]h$]h&]refurij`uh1j, hjVubh>}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjRubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]j5j6uh1jhhhMhjhhubeh}(h]id23ah ]h"]h$]jah&]uh1hhjhhhhhMj Kubh)}(hhh](h)}(h NFS-utilsh]h NFS-utils}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubj)}(hhh](j)}(h;h]h)}(hjh](h<}(hjhhhNhNubj- )}(h9https://sourceforge.net/project/showfiles.php?group_id=14h]h9https://sourceforge.net/project/showfiles.php?group_id=14}(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)}(hh](h<}(hjhhhNhNubj- )}(hhttps://nfs.sourceforge.net/h]hhttps://nfs.sourceforge.net/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j, hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM#hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]j5j6uh1jhhhM"hjhhubeh}(h]id24ah ]h"]h$]jvah&]uh1hhjhhhhhM 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&]j5j6uh1jhhhM(hj hhubeh}(h]iptablesah ]h"]iptablesah$]h&]uh1hhjhhhhhM&ubh)}(hhh](h)}(h Ip-route2h]h Ip-route2}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hhhhhM+ubj)}(hhh]j)}(h7 h]h)}(h6h](h<}(hje hhhNhNubj- )}(h4https://www.kernel.org/pub/linux/utils/net/iproute2/h]h4https://www.kernel.org/pub/linux/utils/net/iproute2/}(hjm hhhNhNubah}(h]h ]h"]h$]h&]refurijo uh1j, hje ubh>}(hje hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM-hja ubah}(h]h ]h"]h$]h&]uh1jhj^ hhhhhNubah}(h]h ]h"]h$]h&]j5j6uh1jhhhM-hjM hhubeh}(h] ip-route2ah ]h"] ip-route2ah$]h&]uh1hhjhhhhhM+ubh)}(hhh](h)}(hOProfileh]hOProfile}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM0ubj)}(hhh]j)}(h$ h]h)}(h#h](h<}(hj hhhNhNubj- )}(h!https://oprofile.sf.net/download/h]h!https://oprofile.sf.net/download/}(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&]j5j6uh1jhhhM2hj hhubeh}(h]oprofileah ]h"]oprofileah$]h&]uh1hhjhhhhhM0ubeh}(h]id22ah ]h"]h$]jah&]uh1hhjZhhhhhMj Kubh)}(hhh](h)}(hKernel documentationh]hKernel documentation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM5ubh)}(hhh](h)}(hSphinxh]hSphinx}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM8ubj)}(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&]j5j6uh1jhhhM:hj hhubeh}(h]id26ah ]h"]h$]jah&]uh1hhj hhhhhM8j Kubeh}(h]id25ah ]h"]h$]jPah&]uh1hhjZhhhhhM5j 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_backlinksj}footnote_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[!jWjTj j j j kernel compilationNgccNj j jI jF j j j&j#makeNbashNbinutilsNjjflexNbisonNjXjUjjjjjjopensslNjqjnjjjjj+j(system utilitiesNjj util-linuxNksymoopsNmkinitrdN e2fsprogsNjfsutilsNxfsprogsN pcmciautilsN quota-toolsNjRjOudevNfuseN networkingNj6j3j]jZpppN nfs-utilsNmcelogNkernel documentationNsphinxNjGjDjV!jS!jjjYjVjjj6j3jjjJ jG j j j j u nametypes}(j_!j^!jWj j j!j!j jI j j&j!j!j!jj!j!jXjjjj!jqjjj+j!jj!j!j!j!j!j!j!j!jRj!j!j!j6j]j!j!j!j!j!jGjV!jjYjj6jjJ j j uh}(hhj[!hjThj jj j j j j0j j j j j jF j@ j j j#j jJj)jqjPjjwjjjjj jjUjjj[jjjjjGjjnjMjjtjjj(jjj6jjGjjjjjTj!jjZj9jjj?jjjjjOjjjUjjjjj3jjZj9jj`jrjjjxjLjjjjDjjS!jZj`jkjj|jjjVj"jj\jjj)jjuj.jjzj jjYjjjejjvj3jjj9jjjBjjjGjjjPj jjUjjj5jjj:jjj jjjjjjG j j jM j j jL!j jE!j u footnote_refs}j!]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&]j`alevelKtypeINFOsourcehÌlineMuh1j"hjkhhhhhMubj ")}(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#"sourcehÌlineMuh1j"hj|hhhhhMubj ")}(hhh]h)}(h'Duplicate implicit target name: "make".h]h+Duplicate implicit target name: “make”.}(hjD"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA"ubah}(h]h ]h"]h$]h&]jalevelKtypej#"sourcehÌlineMuh1j"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&]j)alevelKtypej#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(hhh]h)}(h+Duplicate implicit target name: "binutils".h]h/Duplicate implicit target name: “binutils”.}(hjz"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw"ubah}(h]h ]h"]h$]h&]jualevelKtypej#"sourcehÌlineMuh1j"hj.hhhhhMubj ")}(hhh]h)}(h'Duplicate implicit target name: "flex".h]h+Duplicate implicit target name: “flex”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej#"sourcehÌlineMuh1j"hjzhhhhhMubj ")}(hhh]h)}(h(Duplicate implicit target name: "bison".h]h,Duplicate implicit target name: “bison”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]j alevelKtypej#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(hhh]h)}(h*Duplicate implicit target name: "openssl".h]h.Duplicate implicit target name: “openssl”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jYalevelKtypej#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(hhh]h)}(h3Duplicate implicit target name: "system utilities".h]h7Duplicate implicit target name: “system utilities”.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypej#"sourcehÌlineMuh1j"hjehhhhhMubj ")}(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#"sourcehÌlineMuh1j"hjvhhhhhMubj ")}(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#"sourcehÌlineMuh1j"hj9hhhhhMubj ")}(hhh]h)}(h+Duplicate implicit target name: "mkinitrd".h]h/Duplicate implicit target name: “mkinitrd”.}(hj7#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4#ubah}(h]h ]h"]h$]h&]jalevelKtypej#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(hhh]h)}(h,Duplicate implicit target name: "e2fsprogs".h]h0Duplicate implicit target name: “e2fsprogs”.}(hjR#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO#ubah}(h]h ]h"]h$]h&]jBalevelKtypej#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(hhh]h)}(h+Duplicate implicit target name: "jfsutils".h]h/Duplicate implicit target name: “jfsutils”.}(hjm#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj#ubah}(h]h ]h"]h$]h&]jalevelKtypej#"sourcehÌlineMuh1j"hjGhhhhhMubj ")}(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#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(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&]jPalevelKtypej#"sourcehÌlineMuh1j"hj hhhhhMubj ")}(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&]jalevelKtypej#"sourcehÌlineMuh1j"hjUhhhhhMubj ")}(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&]j5alevelKtypej#"sourcehÌlineMuh1j"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#"sourcehÌlineM uh1j"hj:hhhhhM ubj ")}(hhh]h)}(h)Duplicate implicit target name: "mcelog".h]h-Duplicate implicit target name: “mcelog”.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj $ubah}(h]h ]h"]h$]h&]jalevelKtypej#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(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#"sourcehÌlineMuh1j"hjhhhhhMubj ")}(hhh]h)}(h&Duplicate implicit target name: "ppp".h]h*Duplicate implicit target name: “ppp”.}(hjE$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB$ubah}(h]h ]h"]h$]h&]jalevelKtypej#"sourcehÌlineMuh1j"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#"sourcehÌlineM uh1j"hjhhhhhM ubj ")}(hhh]h)}(h7Duplicate implicit target name: "kernel documentation".h]h;Duplicate implicit target name: “kernel documentation”.}(hj{$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx$ubah}(h]h ]h"]h$]h&]jL!alevelKtypej#"sourcehÌlineM5uh1j"hj hhhhhM5ubj ")}(hhh]h)}(h)Duplicate implicit target name: "sphinx".h]h-Duplicate implicit target name: “sphinx”.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]jE!alevelKtypej#"sourcehÌlineM8uh1j"hj hhhhhM8ubetransform_messages]j ")}(hhh]h)}(hhh]h-Hyperlink target "changes" is not referenced.}hj$sbah}(h]h ]h"]h$]h&]uh1hhj$ubah}(h]h ]h"]h$]h&]levelKtypej#"sourcehÌlineKuh1j"uba transformerN include_log] decorationNhhub.