# méthode classique compilation noyau, kernel mini

**URL:** <https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730 "2016-02-20T22:23:14Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![dchost99](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/fbc32d/32.png) [@dchost99](https://www.debian-fr.org/u/dchost99)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/1 "2016-02-20T22:23:14Z")

</div>

Voici un exemple de configuration kernel, version mini, taille de l’image BzImage en dessous de 10 Mo  
avec boot kernel en 3 secondes

```auto

```

(wget dernier kernel depuis [kernel.org](http://kernel.org)) ou `apt-get install kernel-source-* # utilisez la dernière version`

`nano /etc/kernel-pkg.conf # entrez votre nom et adresse électronique
cd /usr/src # dossier où va se faire la compilation
tar --bzip2 -xvf kernel-source-"la version"
cd kernel-source-"la version" # si c'est votre source du noyau
        `

```auto

```

Désactiver tout du menuconfig puis réactiver juste les options ci-dessous,  
en rouge, à adapter selon votre matériel.  
Le plus important c’est le chipset ide(sata) qui gère votre disque dur système  
(lspci, regardez le nom du chipset sur la carte mère, doc constructeur, google:selon la réf de la carte mère …)  
sans la machine ne démarre pas “KERNEL PANIC”

General setup -\>  
[ul] Local version "le\_nouveau\_nom\_kernel"  
Kernel compression bzip ou lzma (lzma plus rapide avec un fichier plus petit ?)  
System V IPC  
Optimize for size  
Configure standard kernel …[/ul]

Enable Modules \* (+ module unloading si besoin de modules)

Enable Block Layer \*

Processor type  
[ul] Processor family (p3, p4, Athlon …) + Symetric multi si multi-core + APIC IO APIC  
Generic 86  
Enable KSM (sauvegarde mémoire, binaire identique en mémoire ne se pas re-chargées)  
MTRR (vga en pci ou agp)  
/dev/cpu/_/msr (xorg)  
Enable X86 for reboot (reboot)  
/dev/cpu/_/msr (Xorg)[/ul]

Power ACPI  
[ul]Power Management …  
Acpi   
Button  
Cpu scaling (logiciels comme cpufreq?, vitesse et refroidissement géré par le matériel )[/ul]

Bus Option  
[ul]PCI \*[/ul]

Executable …  
[ul]ELF[/ul]

Network …  
Networking Option  
[ul] Packet Socket (sans, pas de Xorg)  
Unix Socket (sans, pas de Xorg)  
TCP/IP  
IPV6 [/ul]

```
[b]Wireless[/b]
	[ul]cfg80211
	enable power safe (ath5 ? power safe)
	cfg80211 extensions
	Wireless sysfs
	Generic IEEE 802.11
	Ministrel[/ul]

```

Device Driver  
Block device \*

```
[b]ATA/ATAPI/MFM[/b] (si IDE)
	[ul]Generic ATA/ATAPI
	ATA disk
	[color=#FF0000][b]CHOIX CHIPSET IDE (VIA, GEODE, PROMISE, INTEL ….)[/b][/color]

```

[/ul]  
SCSI  
[ul]SCSI disk support (USB storage)  
SCSI generic[/ul]

```
[b]SERIAL ATA[/b] [color=#FF0000](si SATA[/color])
	 [ul]ATA ACPI (mise en veille dd?)
                  AHCI Advanced Host Controller Interfac 
                  ATA SFF 
                  Generic ATA
                  + [color=#FF0000][b]chipset (PIIX, Intel PATA SCH ....)[/b][/color][/ul]

```

[/list]  
Network  
[ul]Ethernet 10/100  
VOTRE CARTE NETWORK (VIA,INTEL,HP …)  
Wireless  
VOTRE WIFI (Atheros, Broadcom …)[/ul]

```
[b]Input device[/b] (pas besoin si clavier et souris usb)si non keyboard AT + Mice PS2 
	[ul]Touchscreen (pour EEEPC EETI touch)
		Hardwae I/O 
			Serial
			PS2 Library (EETI)
			Raw access (EETI)[/ul]

[b]Character Device[/b]
	[ul]Vitrual terminal
	Enable character
	Support for console 
	Unix 98 PTY
	support multiple instance (xterm ...)
	Legacy PTY + Maximum number 256 (xterm ...)[/ul]
     
    [b]Graphics support[/b]                 
            [ul]/dev/agpgart (si agp si non PCI express dans BUS OPTION)
            Direct Rendering Support (xorg 4.0 et plus) [color=#FF0000]pilotes de la carte[/color]
            Console Display Driver
            [list]VGA text console
            Frame buffer console support[/ul][/list:u]
    [b]I2C[/b]
       [ul]Support I2C du bus/chipset (intel ...)[/ul]

[b]Sound Card[/b][ul]
	 Advanced Linux Sound A
		[color=#FF0000]PCI (LA CARTE SON ESS,INTEL ….)[/color] 

```

[/ul]  
HID   
[ul]USB Human Interface FULL HID[/ul]

```
[b]USB support[/b]
	[ul]USB announce new devices
	USB filesystem
	EHCI Enhanced Host Controller Interface Specification
	OHCI Open Host Controller Interface
	UHCI Universal Host Controller Interface
	USB mass storage[/ul]
     DMA 

```

File System  
Second extended EXT2  
[ul]Ext2 extended  
Ext2 POSIX (+ ext3/4 si besoin)  
Enable POSIX file locking (fichier LOCK)  
Dnotify (notification changement kernel\<-\>FS)  
Inotify (notification changement kernel\<-\>FS)  
Inotify support for userspace[/ul]  
CDROM + ISO 9660 si besoin  
DOS/FAT  
[ul]VFAT  
NTFS  
NTFS write[/ul]  
Pseudo file system  
[ul]/proc  
Sysctl (paramétrage noyau, max open file, ipv6 …)  
Sysfs (udev)  
Virtual memory SHM (tmpfs)[/ul]  
Native language  
[ul]437 US (langage natif)  
NLS UTF-8 (gestion caractères NTF8, déconseillé pour vfat[/ul]

Kernel hacking  
[ul]Early printk (boot msg)[/ul]

Cryptographic API  
[ul]Hardware crypto (wifi AES ?)[/ul]

make-kpkg kernel\_image modules\_image  
cd …  
dpkg -i linux-imageXXXX.deb  
update-grub

Vous pouvez maintenant ajouter les options rarement utilisé (irda, serial rs232) en module

---

<div class="post-metadata">

**Author:** ![The\_Koala\_Avenger](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/d2c977/32.png) [@The\_Koala\_Avenger](https://www.debian-fr.org/u/The_Koala_Avenger)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/2 "2016-02-20T22:23:23Z")

</div>

Merci beaucoup ! Comment on connaît le chipset ide/sata/ata ?

---

<div class="post-metadata">

**Author:** ![BenJi](https://www.debian-fr.org/user_avatar/www.debian-fr.org/benji/32/3592_2.png) [@BenJi](https://www.debian-fr.org/u/BenJi)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/3 "2016-02-20T22:23:26Z")

</div>

> [@](#):
>
> …
> 
> ```auto
> cp /boot/config-2.4.18-386 .config # récupérez la configuration actuelle  
> ```
> 
> …
> 
> ```auto
> 
> ```
> 
> Désactiver tout du menuconfig puis réactiver juste les options ci-dessous,  
> en rouge, à adapter selon votre matériel. Le plus important le chipset ide(sata) qui gère votre disque dur système (lspci, regarder le nom du chipset sur la carte mère, doc constructeur …)

Pourquoi récupérer un ancien fichier de config (d’un noyau 2.4 d’ailleurs… si c’est pour tout refaire après ?

De plus il me semble qu’il est déconseillé de compiler dans /usr/src…

---

<div class="post-metadata">

**Author:** ![dchost99](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/fbc32d/32.png) [@dchost99](https://www.debian-fr.org/u/dchost99)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/4 "2016-02-20T22:23:27Z")

</div>

très juste surtout que je conseille de tt désactiver. ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit")

```auto
De plus il me semble qu'il est déconseillé de compiler dans /usr/src... 
```

enfin pour réponse j’ai juste copier les commandes sur la doc officiel  
[debian.org/doc/manuals/refer … el.fr.html](http://www.debian.org/doc/manuals/reference/ch-kernel.fr.html)  
pour ne pas réécrire tt les commande. 😃

C’est vraiment un kernel mini (pas à l’extrême non plus), mais  
pas fakeroot  
j’ai désactivé les timers,  
SMP (pas de multi)  
hyperthreading (pour un p4 c’est peut-être utile… 😆 )  
ipv6  
…

Le but c’est de partir sur une base mini et ajouter que ce qui est utile.  
Les corrections sont bienvenues ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![dchost99](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/fbc32d/32.png) [@dchost99](https://www.debian-fr.org/u/dchost99)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/5 "2016-02-20T22:23:27Z")

</div>

> [@](#):
>
> Merci beaucoup ! Comment on connaît le chipset ide/sata/ata ?

difficile a dire

lscpi  
lsmod  
doc constructeur de la carte mère  
visuellement sur la carte mère si il n’y a pas de ventirad, sur les plus grandes puces  
(exemple sur ma carte mère: VIA VT82C686B, dans le kernel chipset = VIA 82XX… )

en général tu tape la réf de la carte mère dans google et tu as rapidement l’info …

---

<div class="post-metadata">

**Author:** ![seb-ksl](https://www.debian-fr.org/user_avatar/www.debian-fr.org/seb-ksl/32/2946_2.png) [@seb-ksl](https://www.debian-fr.org/u/seb-ksl)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/6 "2016-02-20T22:23:29Z")

</div>

J’en suis à la 2ème compil, la deuxième fois j’ai rajouté des modules potentiels pour l’ATA, mais je reste sur cette erreur :

```auto

```

Je comprends le message en substance, mais de quel réglage ça peut venir ?

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/7 "2016-02-20T22:23:36Z")

</div>

Pour connaître les modules à utiliser, on peut utiliser :

```auto

```

pour voir les noms des modules qui correspondent au matériel

ou le site de kmuto : [kmuto.jp/debian/hcl/](http://kmuto.jp/debian/hcl/)

Les pilotes du disque dur doivent être en dur (y), pas en module (m).

---

<div class="post-metadata">

**Author:** ![dchost99](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/fbc32d/32.png) [@dchost99](https://www.debian-fr.org/u/dchost99)\
**Post date:** [Février 20, 2016, 10:23 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/8 "2016-02-20T22:23:42Z")

</div>

make localmodconfig ( pour une config généré selon les modules en local )

---

<div class="post-metadata">

**Author:** ![dchost99](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/fbc32d/32.png) [@dchost99](https://www.debian-fr.org/u/dchost99)\
**Post date:** [Février 20, 2016, 10:25 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/9 "2016-02-20T22:25:49Z")

</div>

ok  
compiz testé avec un démarrage d’un bureau “cube” vide, sans desktop et xterm souple, en 11 secondes …

---

<div class="post-metadata">

**Author:** ![zx26](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zx26](https://www.debian-fr.org/u/zx26)\
**Post date:** [Février 20, 2016, 10:25 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/10 "2016-02-20T22:25:55Z")

</div>

Ajouter kernel\_headers? Ça peut toujours servir…

---

<div class="post-metadata">

**Author:** ![dchost99](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/fbc32d/32.png) [@dchost99](https://www.debian-fr.org/u/dchost99)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/11 "2016-02-20T22:26:02Z")

</div>

> [@](#):
>
> Ajouter kernel\_headers? Ça peut toujours servir…

pour la compile des pilotes graphique?  
j’ai testé compiz avec le pilote i915 intégré au kernel

---

<div class="post-metadata">

**Author:** ![zx26](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/e99b99/32.png) [@zx26](https://www.debian-fr.org/u/zx26)\
**Post date:** [Février 20, 2016, 10:26 UTC](https://www.debian-fr.org/t/methode-classique-compilation-noyau-kernel-mini/26730/12 "2016-02-20T22:26:34Z")

</div>

oui! entre autre… Surtout qu’on peut toujours créer le paquet et le garder sous le coude au cas ou, sans l’installer.
