[Discussion] Recompilation de son kernel

.Mes vmlinuz et system.map sont plus gros d’un poil, mais le initrd.img passe de 4.3Mo à 2.6.

Je sais pas, ça à l’air bon :slightly_smiling:

Ah non, le lecteur/graveur n’est pas reconnu! :smiling_imp:

Je me disais aussi!

Je referais ça demain alors…

merci à vous de votre patience, bonne soirée! :smiley:

Ca commence plus a devenir du support qu’un complément pour le tutos si vous pouviez basculer le reste de la discussion dans support :wink:

[quote=“Ashgenesis”]Ca commence plus a devenir du support qu’un complément pour le tutos si vous pouviez basculer le reste de la discussion dans support :wink:[/quote]ouais. c’est vrai ça.

[quote=“Ashgenesis”]Ca commence plus a devenir du support qu’un complément pour le tutos si vous pouviez basculer le reste de la discussion dans support :wink:[/quote]+1 aussi car pour des pov gars comme moi qui cherchent une erreur de config, ils se noient ds ce tuto.
Mon erreur est trouvée mais je pense que tu peux couper un peu Ash, ça n’en sera que mieux pour ce tuto.

il faut recompiler le tuto :laughing:

Je pense garder ce fil en tant que fil de discussion et en refaire un complet et verrouillé comme Matt l’a fait pour les sources.list

[quote=“Ashgenesis”]Je pense garder ce fil en tant que fil de discussion et en refaire un complet et verrouillé comme Matt l’a fait pour les sources.list[/quote]Les grands esprits se rencontrent, c’est ce que je viens de te proposer de faire ds FI.
Pense aussi de mettre la date de màj ds le titre, comme vient de le faire le Matt … heu !

Petite info, pour compiler un noyau sans être root, parceque c’est po biennnn.

make-kpkg --rootcmd fakeroot --append-to-version "customXX" --initrd buildpackage

et voilou. :smiley:

j’ai un petit problème j’aurai besoin du noyaux 2.6.19
pour la raison qui a été poster ici.
http://forum.debian-fr.org/viewtopic.php?p=86267#86267

Donc je suis en stable je fait comment pour pas pomper sure kernel.org ? :astonished:

Ben c’est l’un des seuls problème du 2.6.19 étant donné que etch était en train d’etre stabilisé ils ont du oublier de patcher le kernel 2.6.19 dans ce cas tu peux prendres celles de kernel.org et tu les patchs toi meme.

Sinon le plus simple tu prends les sources du 2.6.20

ok mai les patch son ou ?

bon finalment j’ai modifier le sources.list pour juste prendre le noyaux 2.6.22 et sa a marché :slightly_smiling:

Merci pour ta réponse

Je m’interesse de plus en plus à xen et à la virtualisation donc. Mais comme j’utilise mon propre noyau 2.6.22 je ne sais pas si je peux installer linux-headers-2.6.22-1-vserver-amd64 ou linux-image-2.6.22-1-vserver-amd64.
Si je doit pas les installer comment je les crée?

quand tu crées tes noyaux xen, tu fais un kernel_headers en même temps que le make-kpkg kernel_image, peut être ?

linux-headers-2.6.22-1-vserver-amd64 et linux-header-2.6.22-1-amd64 sont identiques?
(c’est le vserver qui me chagrine)

Hello
Simple question,i l y a un moyen de savoir ce qui est vraiment charger par le noyaux.

Pour les modules c’est simple un lsmod suffis. On à le nom du module, il suffis de ne pas les enlever dans un make xconfig. mai pour le reste je ne vois pas trop comment on si prend ?

dans ton /boot tu as un fichier avec toute la configuration de la compilation de ton noyau, tu peux voir dedans ce qui est en dur , et ce qui est en module.
Le fichier s’appelle “config-<ton_noyau>”

oui mai bon sa je sai , mai ce que je veux dire c’est ce qu’il utilise vraiment , car c’est pas parce que c’est en dure que c’est focément utiliser , ou je me fait un film :confused:

Yop je e suis fait un script pour le faire donc:

#!/bin/sh
#Script produit par panthere noire 

#Principe du script: le configurer,le lancer puis patienter.

#Répertoire : /kernel/source ici cela contient le tar des sources /kernel étant le répertoire principale

#Répertoire: /kernel/source/intel_00X sera crée et contiendra les sources décompresser

#Note: il faut pouvoir utiliser xconfig et dans la mesure du possible osd_cat,donc a installer.

#Astuces: Pour les sources dédier une partition pour la compilation sa a fortement tendance a fragmenter le disque.

# Fonction pour éviter de jouer avec screen et ps et grep :)
startcompil()
{
#================================== variable a changement fréquant ==============================================
	#News version. (il suffi d'incrémenter de 1 exeemple unamevertion="-custom-001")
	unamevertion="-custom-001"
	#News répertoire. 
	newpath="source/intel_001"
	#Ancienne configuration (cette foit le but est de garder a -1 l'incrémentation)
	oldconf="/kernel/source/intel_000/linux-source-2.6.22/.config"  
#============================ variable secondaire
	#Répertoire principale
	source="/kernel/"
	#nom du fichier sources
	filesources="linux-source-2.6.22.tar.bz2"
	#Repertoire cree une foit dé-taré
	taredfiles="linux-source-2.6.22"
	#Note: ne log pas toute la compilation mai seulement certaine étape
	Log="/kernel/$newpath/Log_Installation.txt"
#================================================================================================================
	(
		#Décompretion des sources
		cd $source 
		echo "Dé-tar en cours" 
		tar xvf $source$filesources 
		cp $oldconf $source$taredfiles
		echo "fin du détar" 
		mkdir $source$newpath 
		echo "déplacement des fichier" 
		mv $source$taredfiles $sorce$newpath 
		cd  $souce$newpath/$taredfiles 
#==================================== Configuration par l'administrateur ========================================
		make oldconfig 
		make xconfig 
#================================================================================================================
		echo "compile en cours"
		echo "compile en cours" `date` >> "$Log"
		Startcompile=`date`
		cd $source$newpath/$taredfiles
		echo $source$newpath/$taredfiles
		nice -n 19 make-kpkg --us --uc --append-to-version $unamevertion --initrd buildpackage  
		echo "compile en terminée"
		echo "la compilation a commencer a $Startcompile et c'est terminer a " `date` >> "$Log"
	)
#================================================================================================================
# 2 eme processus lancer automatiquement après la fin le premier (pas indipensable)
#================================================================================================================
	(

		cd $source$newpath
		UBX=`pidof /usr/bin/X`
		if [ -n "$UBX" ] ;then
			echo -e "\n ********************************* instalation des paquets en cours********************************" | osd_cat -A center -p top -f -bitstream-*-*-r-*-*-25-*-*-*-*-*-*-* -d 10
		fi
		InstallImage=`find $source$newpath -iname linux-image*.deb`
		echo "installation des paquets $InstallImage" `date` >> "$Log"
		dpkg -i $InstallImage
		UBX=`pidof /usr/bin/X`
		if [ -n "$UBX" ] ;then
			echo -e "\n ********************************* instalation des paquets en cours********************************" | osd_cat -A center -p top -f -bitstream-*-*-r-*-*-25-*-*-*-*-*-*-* -d 10
		fi
		InstallHeader=`find $source$newpath -iname linux-h*.deb`
		echo "installation des paquets $InstallHeader" `date` >> "$Log"
		dpkg -i $InstallHeader
		UBX=`pidof /usr/bin/X`
		if [ -n "$UBX" ] ;then
			echo -e "\n ********************************* instalation des paquets en cours********************************" | osd_cat -A center -p top -f -bitstream-*-*-r-*-*-25-*-*-*-*-*-*-* -d 10
		fi
		InstallSources=`find $source$newpath -iname linux-s*.deb`
		echo "installation des paquets $InstallSources" `date` >> "$Log"
		dpkg -i $InstallSources
		UBX=`pidof /usr/bin/X`
		if [ -n "$UBX" ] ;then
			echo -e "\n ********************************* La compilation est terminée *********************************" | osd_cat -A center -p middle -f -bitstream-*-*-r-*-*-25-*-*-*-*-*-*-* -d 30
		fi
		echo "installation terminée" `date` >> "$Log"
	)
}
#démarrage avec la fonction
startcompil
exit 0 

Vous serez donc informer si vous êtes sou X pour la fin de la compilation. même dans un jeux 8)
vous pouvez le lancer de la manière suivante si vous voulez un log de la compilation

cd /kernel/source
nice -n 18 screen -LdmS GAZ '/kernel/script_root/kernel_compil.sh'

Attention :
1.- Inconvénient, pour que les paquets s’installe automatiquement, On est obliger de compiler en root :smt012 d’ou l’absence de fakroot ! Si quelqu’un a une idée je suis preneur :slightly_smiling:

2.- Ne supprimer pas les paquet .deb des sources si aptitude déconne il va vous demander de ré-installer avant de supprimer. Si je le dit c’est que ça met arriver

Conseil pour les débutants: Apprener d’abords a vous familiariser avec les commande de base aux moins: cp ,chown, chmod,rm,apt-get , dpkg, tar,ps,grep
Avant de jouer avec vôtre noyaux.

Sympa ton script j’ai juste parcouru rapidement, mais j’ai déjà quelques remarques. Visiblement tu ne connais pas la règle des 80 caractères :smiley: C’est pas systématique, c’est une vieille règle, je le reconnais, mais ça à l’avantage d’éviter des longues lignes de codes illisibles.

Pourquoi n’as-tu pas mis la config dans un fichier de conf à part, que tu appel par la suite dans ton script?

Ta variable $unamevertion je l’aurais appelé $unameversion. Essaye de refactoriser ton code pour pouvoir prendre des paramètres en comptes ça permet d’éviter de configurer un fichier de conf avec finalement peu de variables à changer comme ça tu les passes directement en paramètre et c’est finis.
J’avais déjà fait un script un peu moins évolué ashgenesis.debian-fr.net

Une fois refactorisé, j’ajouterais ton script à mon tutos avec ton accord bien sur :wink: Et si tu as d’autres choses à faire rajouter sur la recompilation de kernel n’hésite pas à me contacter.