# How-to : patch kernel qui boost les performances

**URL:** <https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 12:07 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548 "2016-02-21T00:07:22Z")\
**Posts on this page:** 13\
**Page:** 2

<div class="post-metadata">

**Author:** ![i\_M](https://www.debian-fr.org/user_avatar/www.debian-fr.org/i_m/32/3004_2.png) [@i\_M](https://www.debian-fr.org/u/i_M)\
**Post date:** [Février 21, 2016, 12:08 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/21 "2016-02-21T00:08:35Z")

</div>

[quote=“Berillions”][quote=“i M@N”]  
Tu peux expliquer ce que tu as fait pour le compiler stp?  
Et d’abord il sert à quoi exactement le linux-kbuild?  
[/quote]

Le linux-kbuild est un paquet d’une centaine de ko nécessaire à l’installation des kernel-headers (linux-headers-2.6.36-trunk-686 par exemple).

Sans ce kbuild, impossible d’installer les headers donc impossible de compiler sur le noyau fraichement crée/installé ou d’installer les drivers propriétaires.

Pour créer un kbuild -\> [http://www.isalo.org/wiki.debian-fr/index.php/Compiler\_linux-kbuild](http://www.isalo.org/wiki.debian-fr/index.php/Compiler_linux-kbuild)[/quote]  
OK … mais alors explique-moi stp comment j’ai pu installer ~/linux-headers-2.6.36-20101119-10.00.Custom\_i386.deb généré après la compilation comme décrite plus haut?  
Ensuite explique-moi stp pourquoi j’ai pu installer le driver Nvidia propriétaire (96.43.19) avec un :

`sudo sh /usr/src/NVIDIA-96.43.19.run -K -k 2.6.36-20101119 -s -n 2>1 > /dev/null
`

Par ailleurs êtes-vous sûr d’avoir besoin de ce linux-kbuild quand on compile un kernel depuis les sources de [kernel.org](http://kernel.org)?  
Parce que des kbuilds j’en ai en pagaille dans mon paquet headers :

`iman@debian:~$ find /usr/src/linux-headers-2.6.36-20101119/ -iname *kbuild
/usr/src/linux-headers-2.6.36-20101119/include/video/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/sound/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/scsi/fc/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/scsi/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/drm/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/asm-generic/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/xen/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/mtd/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/netfilter_ipv4/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/hdlc/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/spi/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/usb/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/nfsd/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/netfilter_bridge/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/dvb/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/tc_act/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/can/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/netfilter/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/sunrpc/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/wimax/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/isdn/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/tc_ematch/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/netfilter_arp/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/netfilter_ipv6/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/byteorder/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/linux/raid/Kbuild
/usr/src/linux-headers-2.6.36-20101119/include/rdma/Kbuild
/usr/src/linux-headers-2.6.36-20101119/arch/x86/include/asm/Kbuild
`

Et aucun si je fais :

```auto

```

Puisqu’il est là :

`iman@debian:~$ find /usr/src/linux-kbuild-2.6.32/ -iname *kbuild
/usr/src/linux-kbuild-2.6.32/Kbuild`

@+…

---

<div class="post-metadata">

**Author:** ![lol](https://www.debian-fr.org/user_avatar/www.debian-fr.org/lol/32/15629_2.png) [@lol](https://www.debian-fr.org/u/lol)\
**Post date:** [Février 21, 2016, 12:08 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/22 "2016-02-21T00:08:35Z")

</div>

J’avoue être perplexe.

Il y a peu il n’était pas possible d’installer linux-header-2.6.35 sans linux-kbuild-2.6.35

> [@](#):
>
> Autres paquets associés à linux-headers-2.6.35-trunk-amd64
> 
> - dépendances   
> dep: gcc-4.4  
> Compilateur C du projet GNU  
> dep: linux-headers-2.6.35-trunk-common (= 2.6.35-1~experimental.2)  
> Common header files for Linux 2.6.35-trunk  
> dep: linux-kbuild-2.6.35  
> Paquet indisponible

Mais ce n’était pas un header compilé… C’était celui de dépôts.

---

<div class="post-metadata">

**Author:** ![i\_M](https://www.debian-fr.org/user_avatar/www.debian-fr.org/i_m/32/3004_2.png) [@i\_M](https://www.debian-fr.org/u/i_M)\
**Post date:** [Février 21, 2016, 12:08 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/23 "2016-02-21T00:08:36Z")

</div>

reuh …

c’est bien ce qu’il me semble , en compilant un kernel avec les sources de [kernel.org](http://kernel.org) pas besoin de compiler un linux-kbuild

Sinon y’a une autre façon de profiter de l’autogroup sans avoir à patcher et compiler :  
[http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html](http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html)

ajouter dans /etc/rc.local juste avant le exit 0 :

`mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent`

ajouter dans .bashrc :

`if ["$PS1"] ; then  
   mkdir -m 0700 /dev/cgroup/cpu/user/$$ > /dev/null 2>&1
   echo $$ > /dev/cgroup/cpu/user/$$/tasks
   echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi`

créer le fichier /usr/local/sbin/cgroup\_clean et y placer :

`#!/bin/sh
#rmdir /dev/cgroup/cpu/$*
##pour ne pas que /dev/cgroup/cpu/user soit effacé lorsque tous les terminaux sont fermés
["$1" != "/user"] && rmdir /dev/cgroup/cpu/$1`

rendre exécutable /usr/local/sbin/cgroup\_clean :

```auto

```

Puis exécuter /etc/rc.local :

```auto

```

recharger .bashrc :

```auto

```

@+…

---

<div class="post-metadata">

**Author:** ![Arthur](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/958977/32.png) [@Arthur](https://www.debian-fr.org/u/Arthur)\
**Post date:** [Février 21, 2016, 12:08 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/24 "2016-02-21T00:08:41Z")

</div>

Merci, je vais tester ça sur mes Atom (fabriqués en Savoie) ce week-end.

Mais en 2.6.36, puces vidéo intel oblige…

---

<div class="post-metadata">

**Author:** ![i\_M](https://www.debian-fr.org/user_avatar/www.debian-fr.org/i_m/32/3004_2.png) [@i\_M](https://www.debian-fr.org/u/i_M)\
**Post date:** [Février 21, 2016, 12:08 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/25 "2016-02-21T00:08:44Z")

</div>

Hello.

Toujours à la recherche de la bonne compil de ce 2.6.36 je me rends comte que le montage automatique des périphériques usb ne se fait plus!  
Donc je tente sans le && yes “” | make localmodconfig et me contente d’un && yes “” | make oldconfig  
Comme j’ai déjà patché et compilé hier je fais juste (`uname -r` = 2.6.32-5-686) :

`cd linux-2.6.36
cp /boot/config-`uname -r` .config && yes "" | make oldconfig
make menuconfig # set CONFIG_SCHED_AUTOGROUP=y in ~/linux-2.6.36/.config
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-`date +%Y%m%d` kernel-image kernel-headers
cd
sudo dpkg -i linux-*.deb
`

Pour ceux qui veulent la procédure entière :

`##git/tar ... c'est vous qui voyez!
#git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.36.y.git linux-2.6.36
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2
#tar -xvf linux-2.6.36.tar.bz2
cd linux-2.6.36
patch -p1 < ../autogroup-2.6.36.patch
cp /boot/config-`uname -r` .config && yes "" | make oldconfig
make menuconfig # set CONFIG_SCHED_AUTOGROUP=y in ~/linux-2.6.36/.config
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-`date +%Y%m%d` kernel-image kernel-headers
cd
sudo dpkg -i linux-*.deb
`

@+…

---

<div class="post-metadata">

**Author:** ![Knucky](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/71e660/32.png) [@Knucky](https://www.debian-fr.org/u/Knucky)\
**Post date:** [Février 21, 2016, 12:09 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/26 "2016-02-21T00:09:20Z")

</div>

[quote=“i M@N”]Hello.

Toujours à la recherche de la bonne compil de ce 2.6.36 je me rends comte que le montage automatique des périphériques usb ne se fait plus!  
[/quote]  
[size=50](Bah, hier j’ai eu un kernel panic parce qu’ils ont changé l’emplacement et le nom de mon pilote ATA dans la liste ![:snooty:](https://www.debian-fr.org/uploads/default/original/1X/7733f25880e690d75c39aa9a7c7798ed563873e1.gif "Snooty") )[/size]

Si t’as bien coché USB Mass Storage et autres (bref, l’USB marche), alors il te manque peut être le support inotify ![:think:](https://www.debian-fr.org/uploads/default/original/1X/98cae0704aea0201d04f151843e80a3ecd391eca.gif "Think") :

```auto
grep NOTIFY .config  
CONFIG_FSNOTIFY=y
# CONFIG_DNOTIFY is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
```

---

<div class="post-metadata">

**Author:** ![i\_M](https://www.debian-fr.org/user_avatar/www.debian-fr.org/i_m/32/3004_2.png) [@i\_M](https://www.debian-fr.org/u/i_M)\
**Post date:** [Février 21, 2016, 12:09 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/27 "2016-02-21T00:09:21Z")

</div>

reuh …

wé … apparement le fait de faire le make localmodconfig n’a pas pris en compte le module usb\_storage (peut-être parce qu’il n’était pas actif lors de la configuration, je n’avais aucun disque usb branché)  
Donc comme j’explique juste avant en faisant juste un make oldconfig j’obtiens un kernel un peu plus gros de quelques megas mais au moins tout fonctionne et je peux le mettre direct sur le MSi Wind, pas besoin de recompiler spécialement pour lui. : )

Sur le 2.6.32-5-686 :

[quote]iman@debian:~$ cat mod-2.6.32-5-686.txt | grep usb  
usb\_storage 30541 1  
usbcore 98377 4 usb\_storage,uhci\_hcd,ehci\_hcd  
scsi\_mod 101401 6 usb\_storage,firewire\_sbp2,sg,sr\_mod,sd\_mod,libata  
nls\_base 4541 5 nls\_utf8,nls\_cp437,vfat,fat,usbcore[/quote]  
sur le 2.6.36-20101120 :

[quote]iman@debian:~$ lsmod | grep usb  
usb\_storage 29995 0  
scsi\_mod 127168 4 sd\_mod,usb\_storage,firewire\_sbp2,libata  
usbcore 94238 4 usb\_storage,uhci\_hcd,ehci\_hcd  
nls\_base 4521 9 hfsplus,hfs,ntfs,jfs,nls\_utf8,nls\_cp437,vfat,fat,usbcore[/quote]

@+…  
[config.txt](https://www.debian-fr.org/uploads/default/original/1X/550508bb5ec9f47d44ec9bfa0152f92a9e134e57.txt) (120 KB)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:09 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/28 "2016-02-21T00:09:21Z")

</div>

Vous savez que ce patch a très peu de chances d’être realesé un jour ? C’est quelque chose qui n’a pas sa place dans le noyau, il vaut mieux que ce soit mis en place en userland. Systemd, le futur système d’init qui va carburer et détruire tout ses concurrents au passage, gère déjà ça (un cgroup par processus fils qu’il crée je crois).

---

<div class="post-metadata">

**Author:** ![i\_M](https://www.debian-fr.org/user_avatar/www.debian-fr.org/i_m/32/3004_2.png) [@i\_M](https://www.debian-fr.org/u/i_M)\
**Post date:** [Février 21, 2016, 12:09 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/29 "2016-02-21T00:09:21Z")

</div>

reuh …

oui, c’est ce qu’explique Pinaraf ici [http://linuxfr.org/comments/1183330.html#1183330](http://linuxfr.org/comments/1183330.html#1183330)  
Néanmoins [systemd](http://packages.debian.org/experimental/systemd) bien que prometteur est dans les dépôts experimental.

J’explique aussi ici [http://www.debian-fr.org/how-to-patch-kernel-qui-boost-les-performances-t30651.html#p308917](http://www.debian-fr.org/how-to-patch-kernel-qui-boost-les-performances-t30651.html#p308917) qu’on peut faire la même chose en userspace sans avoir à patcher le noyau.

Le but de ce fil c’était surtout de tenter ce patch pour voir. : )

@+…

---

<div class="post-metadata">

**Author:** ![cyphaw](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/9e8a1a/32.png) [@cyphaw](https://www.debian-fr.org/u/cyphaw)\
**Post date:** [Février 21, 2016, 12:12 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/30 "2016-02-21T00:12:49Z")

</div>

Bonjour, je déterre un peu le topic, vu que je suis en train de tenter une compilation. Pour l’instant, j’en suis à make oldconfig (je n’ai pas fait le make localmodconfig) et je vois que ce qui est préconisé est de faire un yes"" |make oldconfig

Je voudrais être sur, cette commande fait répondre “Yes” à toutes les questions ou fait elle répondre “choix par défaut” ?  
Parce qu’en fait pas mal de choix par défaut sont en fait “Non” ou “Module”. La je tente en y allant à l’entrée sur chaque question, mais j’aimerais avoir plus d’infos sur cette commande.

Merci.

---

<div class="post-metadata">

**Author:** ![i\_M](https://www.debian-fr.org/user_avatar/www.debian-fr.org/i_m/32/3004_2.png) [@i\_M](https://www.debian-fr.org/u/i_M)\
**Post date:** [Février 21, 2016, 12:13 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/31 "2016-02-21T00:13:53Z")

</div>

Hello.

[quote]NOM  
yes - Afficher indéfiniment une chaîne de caractères jusqu’à ce que le  
processus soit tué.

SYNOPSIS  
yes [CHA NE]…  
yes OPTION

DESCRIPTION  
Répéter indéfiniment toutes les CHAÎNEs indiquées ou « y » si aucun  
paramètre n’est fourni.  
[/quote]

Donc à priori ça répond par defaut aux nouveaux paramètres qui n’étaient pas dans l’ancienne config. Si quelqu’un peut confirmer …

@+…

---

<div class="post-metadata">

**Author:** ![cyphaw](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/9e8a1a/32.png) [@cyphaw](https://www.debian-fr.org/u/cyphaw)\
**Post date:** [Février 21, 2016, 12:14 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/32 "2016-02-21T00:14:00Z")

</div>

La commande yes, j’avais pas fais gaffe, j’avais lu de travers et interprété ça comme “réponds yes à toutes les questions”.

Après avoir lu le man et vu que yes “” n’imprime donc rien, j’aurais tendance à confirmer.

---

<div class="post-metadata">

**Author:** ![Emralegna](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/e36b37/32.png) [@Emralegna](https://www.debian-fr.org/u/Emralegna)\
**Post date:** [Février 21, 2016, 12:14 UTC](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548/33 "2016-02-21T00:14:36Z")

</div>

Salut salut,

J’ai une question de débutant : si on met à jour les sources par un git pull, doit-on repatcher, tout retélécharger pour patcher, ou ne rien faire du tout ?

Merci.

[Page précédente](https://www.debian-fr.org/t/how-to-patch-kernel-qui-boost-les-performances/29548.md?page=1)
