| | 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 
| | |
| |
| 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 | | | | | 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 | | | | | 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 | | | | | 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 | | | | | 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 | | | |
| | 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
|
|