{"id":1341,"date":"2018-02-21T05:12:51","date_gmt":"2018-02-21T03:12:51","guid":{"rendered":"https:\/\/community.virtono.com\/?p=1341"},"modified":"2020-06-10T16:40:29","modified_gmt":"2020-06-10T13:40:29","slug":"compiling-linux-kernels-under-ubuntu-or-debian-2","status":"publish","type":"post","link":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/","title":{"rendered":"Compiling Linux kernels under Ubuntu or Debian"},"content":{"rendered":"<p>Compiling a Linux kernel is not an everyday occurrence for most administrators.\u00a0It is all the more important\u00a0to know\u00a0the right\u00a0<b>tools<\/b>\u00a0when the time comes.\u00a0The following article shows examples of how Mainline \/ Vanilla Kernel and the distribution-specific\u00a0<b>kernel are compiled<\/b>\u00a0.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_73 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Install_required_software\" title=\"Install required software\">Install required software<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Download_Linux_Kernel_Source\" title=\"Download Linux Kernel Source\">Download Linux Kernel Source<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Mainline_Vanilla_Kernel\" title=\"Mainline \/ Vanilla Kernel\">Mainline \/ Vanilla Kernel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Kernel_Packages_in_Repos\" title=\"Kernel Packages in Repos\">Kernel Packages in Repos<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Kernel_teams\" title=\"Kernel teams\">Kernel teams<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Create_configuration\" title=\"Create configuration\">Create configuration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Compile_and_install\" title=\"Compile and install\">Compile and install<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#make_and_install\" title=\"make and install\">make and install<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#make_deb-pkg\" title=\"make deb-pkg\">make deb-pkg<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#More_ways_to_new_kernel\" title=\"More ways to new kernel\">More ways to new kernel<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Ubuntu\" title=\"Ubuntu\">Ubuntu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian-2\/#Debian\" title=\"Debian\">Debian<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Install_required_software\"><\/span><span id=\"Ben.C3.B6tigte_Software_installieren\" class=\"mw-headline\">Install required software<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The following packages are needed to compile:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo apt-get install fakeroot build-essential devscripts libncurses5 libncurses5-dev\r\n$ sudo apt-get build-dep linux\r\n<\/pre>\n<\/div>\n<p>The library ncurses needs to be installed only when\u00a0<code>make menuconfig<\/code>used.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Download_Linux_Kernel_Source\"><\/span><span id=\"Linux_Kernel_Source_herunterladen\" class=\"mw-headline\">Download Linux Kernel Source<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The kernel source code can be reached via several paths.\u00a0Distribution kernels always contain patches from the respective kernel team of the distribution.\u00a0The mainline \/ vanilla kernel does not include these patches.\u00a0For Ubuntu there is a\u00a0Kernel Mapping Table\u00a0(canonical.com), which represents a mapping between Mainline and Ubuntu Kernel.<\/p>\n<p>Traditionally, kernels were mostly\u00a0compiled\u00a0under\u00a0<code>\/usr\/src<\/code>as\u00a0<i>root<\/i>\u00a0.\u00a0Currently it is no longer necessary\u00a0to use\u00a0<i>root<\/i>\u00a0to compile\u00a0<i>root<\/i>\u00a0.\u00a0The tar archive can therefore be unpacked as a normal user in the home directory.\u00a0If the Linux source code is installed as a package via apt, it will remain\u00a0<code>\/usr\/src<\/code>in use\u00a0There\u00a0<i>root<\/i>rights are needed again.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Mainline_Vanilla_Kernel\"><\/span><span id=\"Mainline.2FVanilla_Kernel\" class=\"mw-headline\">Mainline \/ Vanilla Kernel<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The mainline kernel, without distribution patches, is maintained at\u00a0kernel.org\u00a0.\u00a0Download is a tar archive,\u00a0XZ\u00a0compressed available.<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ wget https:\/\/kernel.org\/pub\/linux\/kernel\/v3.x\/linux-3.17.2.tar.xz\r\n$ tar xf linux-source-3.17.tar.xz\r\n<\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"Kernel_Packages_in_Repos\"><\/span><span id=\"Kernel_Packages_in_Repos\" class=\"mw-headline\">Kernel Packages in Repos<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In the repositories is the Linux source code as a package, the Linux sources are\u00a0<code>apt-get<\/code>installed by:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ apt-cache search linux-source\r\nlinux-source - Linux kernel <span class=\"nb\">source<\/span> with Ubuntu patches\r\nlinux-source-3.13.0 - Linux kernel <span class=\"nb\">source <\/span> <span class=\"k\">for<\/span> version 3.13.0 with Ubuntu patches\r\n$ Sudo apt-get install linux-source\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span>\r\n\/ usr \/ src $ sudo tar xjf linux-source-3.2.tar.bz2\r\n<\/pre>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"Kernel_teams\"><\/span><span id=\"Kernel_Teams\" class=\"mw-headline\">Kernel teams<\/span><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Debian:\u00a0https:\/\/wiki.debian.org\/DebianKernel<\/li>\n<li>Ubuntu:\u00a0https:\/\/wiki.ubuntu.com\/KernelTeam<\/li>\n<\/ul>\n<p><b>The kernel compiling steps are\u00a0<code>tar.gz<\/code>the\u00a0<code>linux-source<\/code>same\u00a0for both\u00a0the\u00a0package\u00a0and the\u00a0package.\u00a0If the kernel is\u00a0<code>\/usr\/src<\/code>compiled\u00a0into\u00a0what is the case\u00a0<code>linux-src<\/code>by default,\u00a0<i>root<\/i>\u00a0rights are needed.<\/b><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Create_configuration\"><\/span><span id=\"Konfiguration_erstellen\" class=\"mw-headline\">Create configuration<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The kernel configuration defines how and what parts of the kernel are compiled.\u00a0The best way to start is to use the existing\u00a0<code>.config<\/code>distribution file.\u00a0There are also several\u00a0<code>make<\/code>targets available\u00a0for editing the configuration\u00a0.<\/p>\n<div class=\"thumb tright\">\n<div class=\"thumbinner\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"thumbimage\" src=\"https:\/\/i0.wp.com\/www.thomas-krenn.com\/de\/wikiDE\/images\/thumb\/5\/50\/Linux-kernel-make-menuconfig.png\/300px-Linux-kernel-make-menuconfig.png?resize=456%2C272&#038;ssl=1\" alt=\"\" width=\"456\" height=\"272\" \/><\/p>\n<div class=\"thumbcaption\">\n<div class=\"magnify\"><\/div>\n<p>make menuconfig is an interactive menu for customizing the kernel config file<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ Cp \/ boot \/ config <span class=\"sb\">`<\/span> uname -r <span class=\"sb\">`<\/span> config\r\n$ make silentoldconfig\r\n$ make menuconfig\r\n<\/pre>\n<\/div>\n<ul>\n<li><code>make silentoldconfig<\/code>Same as oldconfig, but quietly, so update deps<\/li>\n<li><b>Attention<\/b>\u00a0: If\u00a0<code>make localmodconfig<\/code>used, all currently not loaded modules are deactivated in the configuration!\u00a0It may therefore also be the case that the USB module driver drops out if no USB medium is connected.\u00a0Therefore, use this make target only if you want to create a customized kernel for the associated system.\n<ul>\n<li><code>make localmodconfig<\/code>: Update current config disabling modules not loaded, sa\u00a0Linux kernel tailor made\u00a0(heise.de)<\/li>\n<\/ul>\n<\/li>\n<li><code>make menuconfig<\/code>: Update current config using a menu based program<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Compile_and_install\"><\/span><span id=\"Kompilieren_und_installieren\" class=\"mw-headline\">Compile and install<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The kernel is either\u00a0compiled\u00a0over\u00a0<code>make<\/code>or over\u00a0<code>make deb-pkg<\/code>.\u00a0The latter creates\u00a0<code>.deb<\/code>packages, making it easier to install the kernel across multiple systems.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"make_and_install\"><\/span><span id=\"make_und_install\" class=\"mw-headline\">make and install<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>make<\/code>alone,\u00a0<code>bzImage<\/code>build\u00a0the kernel image\u00a0, the targets,\u00a0<code>make modules_install<\/code>and\u00a0<code>make install<\/code>install the kernel modules, kernel, initramfs, and perform a GRUB update.<\/p>\n<p>The following example compiles the kernel through the linux-3.17.2.tar.xz archive:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ make -j5\r\n  SYSTBL arch \/ x86 \/ syscalls \/..\/ include \/ generated \/ asm \/ syscalls_32.h\r\n  SYSHDR arch \/ x86 \/ syscalls \/..\/ include \/ generated \/ asm \/ unistd_32_ia32.h\r\n  SYSHDR arch \/ x86 \/ syscalls \/..\/ include \/ generated \/ asm \/ unistd_64_x32.h\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span> \r\n  LD <span class=\"o\">[<\/span> M <span class=\"o\">]<\/span>   sound \/ pci \/ hda \/ snd-hda-intel.ko\r\n  LD <span class=\"o\">[<\/span> M <span class=\"o\">]<\/span>   sound \/ pci \/ snd-as300.ko\r\n  LD <span class=\"o\">[<\/span> M <span class=\"o\">]<\/span>   sound \/ soundcore.ko\r\n$ sudo make modules_install\r\n  INSTALL arch \/ x86 \/ crypto \/ aes-x86_64.ko\r\n  INSTALL arch \/ x86 \/ crypto \/ aesni-intel.ko\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span>\r\n  INSTALL sound \/ pci \/ snd-as300.ko\r\n  INSTALL sound \/ soundcore.ko\r\n  DEPMOD 3.17.2\r\n$ sudo make install\r\nsh .\/arch\/x86\/boot\/install.sh 3.17.2 arch \/ x86 \/ boot \/ bzImage <span class=\"se\">\\<\/span> \r\n\t\tSystem.map <span class=\"s2\">\"\/ boot\"<\/span>\r\nrun-parts: executing \/etc\/kernel\/postinst.d\/apt-auto-removal 3.17.2 \/boot\/vmlinuz-3.17.2\r\nrun-parts: executing \/etc\/kernel\/postinst.d\/initramfs-tools 3.17.2 \/boot\/vmlinuz-3.17.2\r\nupdate-initramfs: Generating \/boot\/initrd.img-3.17.2\r\nrun-parts: executing \/etc\/kernel\/postinst.d\/pm-utils 3.17.2 \/boot\/vmlinuz-3.17.2\r\nrun-parts: executing \/etc\/kernel\/postinst.d\/update-notifier 3.17.2 \/boot\/vmlinuz-3.17.2\r\nrun-parts: executing \/etc\/kernel\/postinst.d\/zz-update-grub 3.17.2 \/boot\/vmlinuz-3.17.2\r\nGenerating grub configuration file ...\r\nWarning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is <span class=\"nb\">set to<\/span> no longer supported.\r\nFound linux image: \/boot\/vmlinuz-3.17.2\r\nFound initrd image: \/boot\/initrd.img-3.17.2\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span>\r\n<\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"make_deb-pkg\"><\/span><span id=\"make_deb-pkg\" class=\"mw-headline\">make deb-pkg<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>As mentioned earlier,\u00a0<code>make deb-pkg<\/code>Debian Packages builds after compiling.\u00a0To set up the kernel, it is sufficient to install the generated packages via dpkg.<\/p>\n<p>In the following example, the package was\u00a0<code>linux-source<\/code>installed and the kernel\u00a0<code>\/usr\/src<\/code>compiled in, so it\u00a0<code>sudo<\/code>uses:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo make -j5 deb-pkg <span class=\"nv\">LOCALVERSION <\/span><span class=\"o\">=<\/span> -custom <span class=\"nv\">KDEB_PKGVERSION <\/span><span class=\"o\">=<\/span> 1\r\n  CHK include \/ config \/ kernel.release\r\n  UPD include \/ config \/ kernel.release\r\nmake <span class=\"nv\">KBUILD_SRC <\/span><span class=\"o\">=<\/span>\r\n  SYSHDR arch \/ x86 \/ syscalls \/..\/ include \/ generated \/ uapi \/ asm \/ unistd_32.h\r\n  SYSHDR arch \/ x86 \/ syscalls \/..\/ include \/ generated \/ uapi \/ asm \/ unistd_64.h\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span> \r\ndpkg-deb: building package <span class=\"sb\">`<\/span> linux-headers-3.13.11.8-custom <span class=\"s1\">'in` ..\/linux-headers-3.13.11.8-custom_1_amd64.deb'<\/span> .\r\ndpkg-deb: building package <span class=\"sb\">`<\/span> linux-libc-dev <span class=\"s1\">'in` ..\/linux-libc-dev_1_amd64.deb'<\/span> .\r\ndpkg-deb: building package <span class=\"sb\">`<\/span> linux-image-3.13.11.8-custom <span class=\"s1\">'in` ..\/linux-image-3.13.11.8-custom_1_amd64.deb'<\/span> .\r\ndpkg-deb: building package <span class=\"sb\">`<\/span> linux-image-3.13.11.8-custom-dbg <span class=\"s1\">'in` ..\/linux-image-3.13.11.8-custom-dbg_1_amd64.deb'<\/span> .\r\n$ <span class=\"nb\">cd<\/span> ..\r\n$ sudo dpkg -i linux-image-3.13.11.8-custom_1_amd64.deb\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span>\r\nPreparing to unpack linux-image-3.13.11.8-custom_1_amd64.deb ...\r\nUnpacking linux-image-3.13.11.8-custom <span class=\"o\">(<\/span> 1 <span class=\"o\">)<\/span> ...\r\nSetting up linux-image-3.13.11.8-custom <span class=\"o\">(<\/span> 1 <span class=\"o\">)<\/span> ...\r\nupdate-initramfs: Generating \/boot\/initrd.img-3.13.11.8-custom\r\nGenerating grub configuration file ...\r\nFound linux image: \/boot\/vmlinuz-3.13.11.8-custom\r\nFound initrd image: \/boot\/initrd.img-3.13.11.8-custom\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span>\r\n<\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"More_ways_to_new_kernel\"><\/span><span id=\"Weitere_Wege_zu_neuem_Kernel\" class=\"mw-headline\">More ways to new kernel<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Finally, other ways to install new kernels without having to compile yourself.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ubuntu\"><\/span><span id=\"Ubuntu\" class=\"mw-headline\">Ubuntu<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>The Ubuntu\u00a0<b>Hardware Enablement Stack<\/b>\u00a0is the most common way to install new kernels on Ubuntu, sa.\u00a0Ubuntu 12.04.2 LTS Enablement Stack Delivers New Kernel\u00a0and\u00a0LTSEnablementStack\u00a0(wiki.ubuntu.com).<\/li>\n<li>Ubuntu also offers kernel mainline builds &#8211;\u00a0MainlineBuilds\u00a0(wiki.ubuntu.com).<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Debian\"><\/span><span id=\"Debian\" class=\"mw-headline\">Debian<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Under Debian, a newer kernel can be installed through the Backport repository.\u00a0<b>Attention:<\/b>\u00a0Security updates are only distributed after backports after best effort!<\/li>\n<\/ul>\n<pre># echo \"deb http:\/\/http.debian.net\/debian wheezy-backports main \r\ndeb-src http:\/\/http.debian.net\/debian wheezy-backports main \"&gt; \/etc\/apt\/sources.list.d\/backports.list\r\n# apt-get update\r\n# apt-get install -t wheezy-backports linux-image-amd64 linux-headers-amd64\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Compiling a Linux kernel is not an everyday occurrence for most administrators.\u00a0It is all the more important\u00a0to know\u00a0the right\u00a0tools\u00a0when the time comes.\u00a0The following article shows examples of how Mainline \/ Vanilla Kernel and the distribution-specific\u00a0kernel are compiled\u00a0. &nbsp; Install required software The following packages are needed to compile: $ sudo<\/p>\n","protected":false},"author":4,"featured_media":1342,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3],"tags":[],"class_list":["post-1341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-how-to"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/02\/kernel1.png?fit=400%2C225&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7ISfL-lD","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1243,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/compiling-linux-kernels-under-ubuntu-or-debian\/","url_meta":{"origin":1341,"position":0},"title":"Compiling Linux kernels under Ubuntu or Debian","author":"Daniel Draga","date":"November 6, 2017","format":false,"excerpt":"Compiling a Linux kernel is not an everyday occurrence for most administrators.\u00a0It is all the more important\u00a0to know\u00a0the right\u00a0tools\u00a0when the time comes.\u00a0The following article shows examples of how Mainline \/ Vanilla Kernel and the distribution-specific\u00a0kernel are compiled. Install required software The following packages are needed to compile: $ sudo apt-get\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/11\/517444-636210253990788094_270x480_thumb.jpg?fit=480%2C270&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1195,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/remove-old-kernels-in-ubuntu\/","url_meta":{"origin":1341,"position":1},"title":"Remove Old Kernels in Ubuntu","author":"Shreyash Sharma","date":"October 27, 2017","format":false,"excerpt":"For\u00a0Ubuntu\u00a0installations (prior to Ubuntu version 15.10) with\u00a0separate \/ boot partition\u00a0, it may fill up\u00a0after installing several updates\u00a0.\u00a0The issue occurs because older kernel versions are not automatically removed.\u00a0In this article, we'll show you how to manually uninstall older kernel versions, freeing up space in the \/ boot partition. Problem Installing new\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Aug30-Kernel-Team-Summary.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Aug30-Kernel-Team-Summary.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Aug30-Kernel-Team-Summary.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Aug30-Kernel-Team-Summary.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Aug30-Kernel-Team-Summary.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":724,"url":"https:\/\/www.virtono.com\/community\/news-announcements\/how-to-protect-your-server-against-the-dirty-cow-linux-vulnerability\/","url_meta":{"origin":1341,"position":2},"title":"How To Protect Your Server Against the Dirty COW Linux Vulnerability","author":"Virtono","date":"October 25, 2016","format":false,"excerpt":"Introduction : On October 19, 2016, a privilege escalation vulnerability in the Linux kernel was disclosed. The bug is nicknamed Dirty COW because the underlying issue was a race condition in the way kernel handles copy-on-write (COW). Dirty COW has existed for a long time at least since 2007, with\u2026","rel":"","context":"In &quot;Announcements&quot;","block_context":{"text":"Announcements","link":"https:\/\/www.virtono.com\/community\/category\/news-announcements\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/IMG_2035.jpg?fit=1200%2C900&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/IMG_2035.jpg?fit=1200%2C900&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/IMG_2035.jpg?fit=1200%2C900&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/IMG_2035.jpg?fit=1200%2C900&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/07\/IMG_2035.jpg?fit=1200%2C900&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1256,"url":"https:\/\/www.virtono.com\/community\/internet-and-technology-news\/google-disassembles-usb-stack-of-the-linux-kernel\/","url_meta":{"origin":1341,"position":3},"title":"Google disassembles USB stack of the Linux kernel","author":"Daniel Draga","date":"November 9, 2017","format":false,"excerpt":"With a special fuzzer for kernel system calls from\u00a0Google\u00a0, extremely many bugs have been found in the USB stack of the\u00a0Linux kernel\u00a0.\u00a0Many of them are classified as critical vulnerabilities, which is true for all kernel bugs. The Syzkaller tool, created and developed with Google support, is intended to fuzzy operating\u2026","rel":"","context":"In &quot;IT News&quot;","block_context":{"text":"IT News","link":"https:\/\/www.virtono.com\/community\/category\/internet-and-technology-news\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/11\/google-linux.png?fit=1200%2C569&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/11\/google-linux.png?fit=1200%2C569&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/11\/google-linux.png?fit=1200%2C569&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/11\/google-linux.png?fit=1200%2C569&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/11\/google-linux.png?fit=1200%2C569&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":670,"url":"https:\/\/www.virtono.com\/community\/knowledgebase\/comparing-oss-centos-ubuntu-or-debian\/","url_meta":{"origin":1341,"position":4},"title":"Comparing OSs &#8212; CentOS, Ubuntu or Debian?","author":"Daniel Draga","date":"September 28, 2016","format":false,"excerpt":"CentOS \u009ewhich stands for Community Enterprise Operating System, is the result of a group of open source contributors and users working together to develop Linux solutions that are freely available to users who do not require a great deal of commercial support to achieve their goal. \u009eCentOS dedicated servers were\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/09\/centos-debian-ubuntu-06.png?fit=400%2C300&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1370,"url":"https:\/\/www.virtono.com\/community\/internet-and-technology-news\/how-dtrace-could-come-to-linux\/","url_meta":{"origin":1341,"position":5},"title":"How Dtrace could come to Linux","author":"Shreyash Sharma","date":"February 25, 2018","format":false,"excerpt":"Without much notice, Oracle has changed the license of Dtrace.\u00a0The tool adopted by Sun could theoretically be incorporated into the main branch of\u00a0Linux\u00a0.\u00a0This is probably not the case. Already half a year ago Oracle put the license of the kernel module for the analysis tool Dtrace under the GPLv2.\u00a0This is\u00a0what\u00a0Red\u2026","rel":"","context":"In &quot;IT News&quot;","block_context":{"text":"IT News","link":"https:\/\/www.virtono.com\/community\/category\/internet-and-technology-news\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/02\/bcc_tracing_tools_2016.png?fit=1200%2C840&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/02\/bcc_tracing_tools_2016.png?fit=1200%2C840&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/02\/bcc_tracing_tools_2016.png?fit=1200%2C840&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/02\/bcc_tracing_tools_2016.png?fit=1200%2C840&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/02\/bcc_tracing_tools_2016.png?fit=1200%2C840&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/comments?post=1341"}],"version-history":[{"count":2,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1341\/revisions"}],"predecessor-version":[{"id":1344,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1341\/revisions\/1344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media\/1342"}],"wp:attachment":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media?parent=1341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/categories?post=1341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/tags?post=1341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}