{"id":1710,"date":"2023-10-08T17:05:37","date_gmt":"2023-10-08T15:05:37","guid":{"rendered":"https:\/\/pila.fr\/wordpress\/?p=1710"},"modified":"2023-10-09T15:11:10","modified_gmt":"2023-10-09T13:11:10","slug":"linux-mint-compiler-un-noyau-patche","status":"publish","type":"post","link":"https:\/\/pila.fr\/wordpress\/archives\/1710","title":{"rendered":"Linux Mint : Compiler un noyau patch\u00e9"},"content":{"rendered":"\n<p>Il existe beaucoup de documentation sur la fa\u00e7on de compiler un noyau Ubuntu \/ Linux Mint \u00e0 partir des sources, mais il s&rsquo;av\u00e8re que la plupart sont incompl\u00e8tes et\/ou obsol\u00e8tes. L&rsquo;utilisation d&rsquo;une m\u00e9thode inadapt\u00e9e n&rsquo;est d\u00e9celable qu&rsquo;apr\u00e8s plusieurs heures de compilation, d\u00e9couvrir la bonne m\u00e9thode par t\u00e2tonnement peut s&rsquo;av\u00e9rer particuli\u00e8rement frustrant.<\/p>\n\n\n\n<p>Voici la bonne m\u00e9thode (<a href=\"https:\/\/askubuntu.com\/questions\/1435591\/correct-way-to-build-kernel-with-hardware-support-fix-patches-ubuntu-22-04-lts\">source en anglais<\/a>), \u00e9dit\u00e9e par mes soins pour \u00e9viter de d\u00e9rouler toute la proc\u00e9dure en super-utilisateur (root), car cela n&rsquo;est pas n\u00e9cessaire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Activer les d\u00e9p\u00f4ts de sources.<\/h2>\n\n\n\n<p>Depuis le menu Mint, lancer le logiciel \u00ab\u00a0Sources de logiciels\u00a0\u00bb, et activer \u00ab\u00a0D\u00e9p\u00f4ts de code source\u00a0\u00bb. <\/p>\n\n\n\n<p>Cliquer ensuite sur \u00ab\u00a0Valider\u00a0\u00bb pour mettre a jour le cache.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"547\" src=\"https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/2023\/10\/Mint_Activer_Depots_Code_Source.png\" alt=\"\" class=\"wp-image-1712\" srcset=\"https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/2023\/10\/Mint_Activer_Depots_Code_Source.png 800w, https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/2023\/10\/Mint_Activer_Depots_Code_Source-300x205.png 300w, https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/2023\/10\/Mint_Activer_Depots_Code_Source-768x525.png 768w, https:\/\/pila.fr\/wordpress\/wp-content\/uploads\/2023\/10\/Mint_Activer_Depots_Code_Source-750x513.png 750w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">2. Installer les outils de compilation<\/h2>\n\n\n\n<p>Ex\u00e9cuter en console les commandes suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt build-dep linux linux-image-$(uname -r)\n\nsudo apt install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm build-essential libncurses5-dev gcc bc dwarves<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. R\u00e9cup\u00e9rer le code source du noyau<\/h2>\n\n\n\n<p>Le code source du noyau Linux est disponible sur le site http:\/\/kernel.org, mais ce qui nous int\u00e9resse ici est le noyau patch\u00e9 par Ubuntu, qui est utilis\u00e9 par Linux Mint. T\u00e9l\u00e9chargeons les sources dans un dossier cr\u00e9\u00e9 \u00e0 cette fin :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir linux-src\ncd linux-src\napt source linux-image-unsigned-$(uname -r)<\/code><\/pre>\n\n\n\n<p>Pla\u00e7ons-nous dans le dossier t\u00e9l\u00e9charg\u00e9, et donnons les permissions d\u2019ex\u00e9cutions au scripts :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd linux-hwe-6.2-6.2.0  # A mettre \u00e0 jour avec le nom de votre noyau\nchmod a+x debian\/scripts\/*\nchmod a+x -R .\/scripts<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Appliquer vos patches<\/h2>\n\n\n\n<p>En ex\u00e9cutant, pour chaque patch, la commande suivante <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>patch -p1 &lt;CHEMIN_DU_FICHIER_PATCH&gt;.patch<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. Copier la configuration<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>cp \/boot\/config-$(uname -r) .\/.config\n\n# update config for new kernel\nmake oldconfig<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6. Lancer la compilation<\/h2>\n\n\n\n<p>En ex\u00e9cutant la commande suivante : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>make -j16 deb-pkg LOCALVERSION=-custom<\/code><\/pre>\n\n\n\n<p>L&rsquo;argument \u00ab\u00a0-j16\u00a0\u00bb permet de s\u00e9lectionner le nombre de t\u00e2ches ex\u00e9cut\u00e9es en parall\u00e8le, une valeur plus \u00e9lev\u00e9e n\u00e9cessitant plus de ressources mat\u00e9rielles (RAM notamment). La valeur id\u00e9al correspond g\u00e9n\u00e9ralement au nombre de thread ex\u00e9cutables en parall\u00e8le sur le syst\u00e8me (par exemple 4 dans le cas d&rsquo;un processeur 2 core \/ 4 threads).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Installer le nouveau noyau<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># change to parent dir\ncd ..\n\ndpkg -i *.deb\n\nupdate-grub<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. D\u00e9marrer sur le nouveau noyau<\/h2>\n\n\n\n<p>Le nouveau noyau est maintenant disponible  au d\u00e9marrage, dans le menu du chargeur d&rsquo;amor\u00e7age Grub. Attention, ce n&rsquo;est pas forc\u00e9ment le choix par d\u00e9faut ! Il est reconnaissable a son pr\u00e9fixe \u00ab\u00a0custom\u00a0\u00bb.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il existe beaucoup de documentation sur la fa\u00e7on de compiler un noyau Ubuntu \/ Linux Mint \u00e0 partir des sources, mais il s&rsquo;av\u00e8re que la plupart sont incompl\u00e8tes et\/ou obsol\u00e8tes. L&rsquo;utilisation d&rsquo;une m\u00e9thode inadapt\u00e9e n&rsquo;est d\u00e9celable qu&rsquo;apr\u00e8s plusieurs heures de compilation, d\u00e9couvrir la bonne m\u00e9thode par t\u00e2tonnement peut s&rsquo;av\u00e9rer particuli\u00e8rement frustrant. Voici la bonne m\u00e9thode &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/pila.fr\/wordpress\/archives\/1710\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69],"tags":[],"class_list":["post-1710","post","type-post","status-publish","format-standard","hentry","category-linux-2","item-wrap"],"_links":{"self":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/comments?post=1710"}],"version-history":[{"count":8,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1710\/revisions"}],"predecessor-version":[{"id":1720,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/posts\/1710\/revisions\/1720"}],"wp:attachment":[{"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/media?parent=1710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/categories?post=1710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pila.fr\/wordpress\/wp-json\/wp\/v2\/tags?post=1710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}