méthode classique compilation noyau, kernel mini

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

(wget dernier kernel depuis 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

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

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

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…

très juste surtout que je conseille de tt désactiver. :017

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
pour ne pas réécrire tt les commande. :smiley:

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… :laughing: )
ipv6

Le but c’est de partir sur une base mini et ajouter que ce qui est utile.
Les corrections sont bienvenues :mrgreen:

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 …

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 :

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

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

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

ou le site de kmuto : kmuto.jp/debian/hcl/

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

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

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

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

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