> Tous les forumsLinux

 patcher le noyauSujet résolu
Statut du sujet : RESOLU Imprimer
 Taras_Boulba
  Posté le 22/05/2008 @ 18:06  
 Astucien

1009 Messages

salut,
je voudrais patcher mon noyau pour activer la protection du disque (HDAPS ) sur mon thinkpad.
je suis ce tuto: http://www.thinkwiki.org/wiki/How_to_protect_the_harddisk_through_APS

mais je n'arrive pas à le patcher, suis pas certain de faire les bonnes manip.
voilà ce que je fais

j'ai téléchargé le paquet linux-source-2.6.24, j'ai décompressé linux-source-2.6.24.tar.bz2 dans le répertoire /usr/src
j'ai suivi ces deux liens où je peux avoir deux patchs (un fix et le patch en fait ):
le fix: http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2008-February/042226.html
le patch proprement dit: http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1094

j'ai enregistré les lignes de commandes jointes aux messages dans des fichiers que j'ai nommé:
fix_hdaps_protect.18-11-2007.patch
hdaps_protect.18-11-2007.patch

ensuite j'ai copié ces fichiers dans le nouveau répertoire /usr/src/linux-source-2.6.24
et là j'ai tapé la commande:
# patch -p1 < fix_hdaps_protect.18-11-2007.patch
patching file drivers/ata/libata-scsi.c
Hunk #2 succeeded at 3120 with fuzz 1.
#

puis:
# patch -p1 < hdaps_protect.18-11-2007.patch
patching file Documentation/block/disk-protection.txt
patching file block/ll_rw_blk.c
Hunk #5 succeeded at 4218 (offset -23 lines).
Hunk #6 succeeded at 4240 (offset -23 lines).
Hunk #7 succeeded at 4248 (offset -23 lines).
patching file drivers/ata/libata-scsi.c
Hunk #1 succeeded at 856 (offset 3 lines).
Hunk #2 succeeded at 909 (offset 1 line).
patching file drivers/ide/ide-disk.c
Hunk #1 succeeded at 675 (offset -26 lines).
Hunk #2 succeeded at 1082 (offset -29 lines).
patching file drivers/ide/ide-io.c
Hunk #1 succeeded at 1271 (offset 1 line).
Hunk #2 succeeded at 1779 (offset 1 line).
patching file drivers/scsi/scsi_lib.c
patching file include/linux/ata.h
Hunk #1 succeeded at 395 (offset 15 lines).
patching file include/linux/blkdev.h
patching file include/linux/ide.h
#

puis:
# make clean
#

mais ensuite:
# make
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/kxgettext.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf -s arch/x86/Kconfig
***
*** You have not yet configured your kernel!
*** (missing kernel .config file)
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] Erreur 1
make[1]: *** [silentoldconfig] Erreur 2
make: *** Pas de règle pour fabriquer la cible « include/config/auto.conf », nécessaire pour « include/config/kernel.release ». Arrêt.
#

là j'arrive dans des contrées inexplorées et je sais pas quoi faire pour "configure my kernel"... make oldconfig, make menuconfig ou make xconfig comme suggérés?

merci à vous

 Afficher le profil de Taras_Boulba Envoyer un message privé à Taras_Boulba
 
 
Publicité
 Taras_Boulba  Posté le 22/05/2008 à 18:41  
Astucien

1009 Messages

bon ben finalement j'ai fait un make oldconfig après avoir copié le fichier /boot/config-2.6.24 dans /usr/src/linux-source-2.6.24
j'ai lancé make et ça tourne...

je marque pas résolu, j'attends la suite...



Modifié par Taras_Boulba le 22/05/2008 20:55
Afficher le profil de Taras_Boulba Voir la configuration de Taras_BoulbaEnvoyer un message privé à Taras_Boulba
 Revenir en haut de la page
 Taras_Boulba  Posté le 22/05/2008 à 20:55  
Astucien

1009 Messages
voilà, la première question arrive... une fois make et make modules_install terminés, comment je fais pour booter sur ce kernel patché svp?

Modifié par Taras_Boulba le 22/05/2008 21:07
Afficher le profil de Taras_Boulba Voir la configuration de Taras_BoulbaEnvoyer un message privé à Taras_Boulba
 Revenir en haut de la page
 Logicien  Posté le 23/05/2008 à 00:49  
Astucien


2361 Messages

Salut,

il est bien important de créer un lien symbolique entre ton noyau linux-2.6.24 et linux:

# cd /usr/src

# rm -fr linux (si nécessaire)

# ln -s linux-2.6.24 linux

Pour patcher ton noyau, ce n'est pas obligatoire de mettre le patch dans la racine des sources du noyau Linux. Tu peux appliquer le patch depuis son chemin complet:

# cd /usr/src/linux

# patch -p1 < /chemin/vers/le.patch

ou

# cat /chemin/vers/le.patch | patch -p1

Pour t'éviter des erreurs, applique, si tu dois le faire, les patchs officiels du noyau Linux venant de www.kernel.org avant les patchs de tiers partis. Les patchs que j'applique ne me donne pas de 'Hunk' en général. Il s'appliquent sans commentaires. Ce n'est peut-être pas fatal. Après avoir copié le fichier de configuration dans /usr/src/linux/.config, moi je fais un 'make menuconfig' et revoit la configuration afin de prendre des décisions face aux nouvautés. Puis je sauve, suivi du 'make' et 'make modules_install'. Pour jouir de mon nouveau noyau:

# cp System.map /boot/System.map-2.6.24

# cp .config /boot/config-2.6.24

# cp arch/i386/boot/bzImage /boot/2.6.24

# cd /boot

# ln -fs System.map-2.6.24 System.map

# ln -fs config-2.6.24 config

# ln -fs 2.6.24 vmlinuz

Puis il faut éditer /boot/grub/menu.lst pour ajouter une entrée à ce nouveau noyau avec les bons paramètres. En général, si tout le nécessaire au bon démarrage est compilé en dur dans le noyau, il n'y a pas de besoin d'initrd, sauf si tu veux avoir un bootsplash. Si ton fichier /usr/src/linux/.config vient de la configuration d'un noyau générique de distribution, tout le nécessaire n'est probablement pas en dur et un initrd est probablement nécessaire. C'est le moment idéal pour personnaliser ta configuration afin de n'avoir un initrd que pour le bootsplash. Il faut aussi s'assurer que les modules qui doivent être pré-chargés le soient et enlever les modules qui n'y sont plus du pré-chargement. Toutes les distributions ne s'adaptent pas (facilement) à un noyau personnalisé. Exemple: /dev/hdx versus /dev/sdx quand le noyau utilise le sous-système SCSI avec des périphériques PATA. Il faut vérifier /etc/fstab. Certains noyaux de distributions le font et d'autres non. Moi je ne le fais pas.



Modifié par Logicien le 23/05/2008 01:30
Afficher le profil de Logicien Voir la configuration de LogicienEnvoyer un message privé à Logicien
 Revenir en haut de la page
 Taras_Boulba  Posté le 23/05/2008 à 13:21  
Astucien

1009 Messages
salut logicien,
merci pour tes longues et précieuses explications. je suis au boulot là, donc je ne vais pas pouvoir donner suite avant demain.

par contre je peux déjà te dire que je n'ai pas créé de lien symbolique entre le noyau et linux
est ce que c'est rédibitoire? je dois tout recommencer (les patchs et les make ) en commençant pas créer le lien ou je peux le créer maintenant?

je voulais savoir aussi, les tutos et toi, vous parlez du répertoire /usr/src/linux, or chez moi, une fois le tar.bz2 des sources décompressé, le répertoire créé est /usr/src/linux-source-2.6.24. rassure moi, ça n'a pas d'importance le nom de ce répertoire ou il faut le renommer linux tout court?

pour les patchs que j'utilise, je n'ai pas le choix en fait, c'est des patchs maintenus par la petite communauté de linuxiens qui gravite autour des thinkpad d'ibm (maintenant lenovo ). j'ai été voir sur www.kernel.org et je n'ai pas trouvé ces patchs.

sinon, je n'ai pas fait un make menuconfig mais juste un make oldconfig avec l'ancien fichier de configuration parce que je ne change pas de version de kernel, je reste au 2.6.24 mais avec les deux patchs en plus pour activer le hdaps. je n'ai donc pas de nouvelles fonctionnalités et du coup il ne m'a pas semblé opportun de faire un make menuconfig. ai je eu tort?

pour finir, oui mon fichier de configuration vient d'un kernel générique et je voudrais savoir si je peux reprendre le /boot/initrd.img de mon noyau actuel (donc non patché ) ou si je dois généré un nouveau initrd? et si oui, je le fais avec mkinitrd ou avec yaird?
pour les modules, vu que je reprends la configuration de l'ancien noyau, je pensais que ça me chargerait ce qui se charge actuellement, ce n'est pas le cas?
ok pour fstab et grub, je vérifierais ça, mais je connais bien donc ça ne devrait pas me poser de problème.

d'avance merci pour tes réponses à cette nouvelle série de questions... ;o)
a+

Modifié par Taras_Boulba le 23/05/2008 13:36
Afficher le profil de Taras_Boulba Voir la configuration de Taras_BoulbaEnvoyer un message privé à Taras_Boulba
 Revenir en haut de la page
 Logicien  Posté le 23/05/2008 à 14:13  
Astucien


2361 Messages

Avant de poursuivre, je tiens à préciser que si mes explications sont longues, c'est souvent parce-que le sujet à couvrir l'exige. Sinon, je préfère être bref !

Le lien /usr/src/linux a pour but de dire aux programmes que tu compiles quelles sources du noyau Linux utiliser. Tu peux le faire maintenant, ça n'a pas d'influence sur la

compilation de ton noyau. Ça te permet de savoir sur quelle version des sources tu travailles, ce que le renommage du répertoire racine des sources en linux va t'enlever. Par

contre, ce sera 'ln -s linux-source-2.6.24 linux' plutôt que 'ln -s linux-2.6.24 linux'. Comme les patchs que tu appliques ne te font pas changer de version du noyau, tu n'es pas

obligé, pour te comprendre, de renommer le répertoire linux-source-2.6.24. Par expérience, j'ai eu des erreurs quand j'ai patché le noyau avec les patchs de tiers partis en

premier suivi de patchs officiels. Mais dans ton cas, ça ne s'applique pas. Le 'make oldconfig' propose plus explicitement d'activer ou pas les nouvautés que le 'make menuconfig'

ou 'make xconfig'. Par contre, tu es en mode texte à 100%. C'est une question de goût. Un seul est nécessaire pour configurer le noyau. Toutefois, n'oublie pas d'activer le hdaps

avec 'make oldconfig'. Ce n'est peut-être pas fait par défaut par le patch. Oui je pense que tu peux utiliser ton initrd actuel avec ton nouveau noyau, vu qu'il est

presqu'identique à l'actuel. De même, les modules préchargés resteront les mêmes, sauf peut-être si ton patch crée des modules, auquel cas tu devras possiblement avoir à les

préchargées avec les autres. Ton /etc/fstab restera adapté à ton nouveau noyau.



Modifié par Logicien le 23/05/2008 14:25
Afficher le profil de Logicien Voir la configuration de LogicienEnvoyer un message privé à Logicien
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsLinux

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page