Linux.debian : [KERNEL] ou sont les i586 et les K6-II
Posté par narmataru () le 22 juillet 2004
Bonjour,
Je viens d'installer la Debian-Sarge. Pour l'instant j'ai le kernel 2.6.6-1-386. Cependant j'ai un AMD K6-II 3D-now 350 et je pense que mon noyau ne dois pas être très optimisé pour mon processeur. Or, dans la liste des package Debian, il y a bien les kernels pour 686 et K7 mais aucun pour k6 ni au pire 586.
Comment celà se fait-il ? Pourtant il me semble que ce type de processeur décuple ses performances si on utilise les instructions MMX (c'est flagrant lorsque l'on passe de ogle à ogle-mmx pour la lecture des dvd).
J'aurais donc voulu savoir s'il y avait un package .deb pour ce type de processeur quelque part ? Sinon, est-ce que si je recompile mon noyau, ce dernier sera alors optimisé pour mon architecture ? ou bien existe-t-il un quelconque moyen pour qu'il le soit ?
merci :)
Je viens d'installer la Debian-Sarge. Pour l'instant j'ai le kernel 2.6.6-1-386. Cependant j'ai un AMD K6-II 3D-now 350 et je pense que mon noyau ne dois pas être très optimisé pour mon processeur. Or, dans la liste des package Debian, il y a bien les kernels pour 686 et K7 mais aucun pour k6 ni au pire 586.
Comment celà se fait-il ? Pourtant il me semble que ce type de processeur décuple ses performances si on utilise les instructions MMX (c'est flagrant lorsque l'on passe de ogle à ogle-mmx pour la lecture des dvd).
J'aurais donc voulu savoir s'il y avait un package .deb pour ce type de processeur quelque part ? Sinon, est-ce que si je recompile mon noyau, ce dernier sera alors optimisé pour mon architecture ? ou bien existe-t-il un quelconque moyen pour qu'il le soit ?
merci :)
> Lire le message (10 commentaires, moyenne: 1,2).
Vous avez demandé le commentaire #451155.



recompile
Si tu es persuadé que les performances vont être "décuplées", tu peux télécharger les sources, récupérer le fichier de config de ton noyau actuel dans /boot, make gconfig, charger la config et cocher le proc qui te convient, sauvegarder et recompiler avec
#make-kpkg --revision <rev_name> clean kernel-image
puis:
#dpkg -i kernel-image-2.6machin
[^]Re: recompile
Donc c'est bien ça :)
Si je recompile le noyau en récupérant les source sur kernel.org, et que je le compile en lui précisant le type de mon processeur, il sera optimisé pour ce dernier.
Bon ben je n'ai plus qu'a retrousser mes manche et à aller le compiler :)
merci fantomaxe
Mais c'est quand même bizarre que les noyau 2.4.x avait des packages pour K6 alors que les 2.6.x n'en ont pas ??
[^]Re: recompile
Je pense qu'il faut aussi optimiser les applications avec un truc du genre:
export CFLAGS="-march i586 -O6 -mcpu i586"
Je ne suis pas un spécialiste de l'optimisation de compilation, mais en cherchant un peu tu devrais trouver ce genre de how-to:
http://re.a.la/howtos/compiling/(...)
[^]Re: recompile
J'oubliais, installe les sources debian, par exemple http://packages.debian.org/testing/devel/kernel-source-2.6.6(...)
sinon tu vas avoir des problèmes si tu utilise initrd (debian utilise un patch cramfs un poeu difficile à trouver)
[^]Re: recompile
Je pense qu'il est hasardeux de dépasser -O3 pour GCC, la stabilité du résultat n'est pas garenti. Pourquoi utiliser -mcpu=i586, alors que si l'on cherche vraiment à faire de l'optimisation, cela serait plutôt march=i586.
[^]Re: recompile
Il me semble que si tu regardes la doc de gcc, tu verras que -march=i586 implique automatiquement -mcpu=i586
[^]Re: recompile
Ces options seront sélectionnable dans l'interface de compilation du noyau ou il faut que je créé des variable d'environemment ?
(dsl je n'y connait pas grand chose en compilation C/C++ et je n'ai encore jamais compiler mon noyau....)
N'y a t il pas une optimisation pour AMD-K6II qui possède le jeux d'instruction mmx plutot qu'une optimisation 586 générique ?
merci en tout cas pour réponses :)
[^]Re: recompile
Voilà la méthode à utiliser. Je ne garantie pas le fonctionnement final, notamment sur le initrd qui doit être généré, il faut certains paquets que je ne connais pas tout à fait. Sinon la ligne d'option CFLAGS est la ligne conseillée pour compiler en optimisé pour un K6-II.
$ su -
<enter root passwd>
root$ apt-get update
root$ apt-get install fakeroot kernel-package cramfsprogs initrd-tools module-init-tools kernel-source-2.6.7 kernel-image-2.6.7-386
root$ exit
$ cd /usr/src/
$ tar jxf kernel-source-2.6.7.tar.bz2
$ cd kernel-source-2.6.7
$ cp /boot/config-2.6.7-1-386 .config
$ export CFLAGS=-march=pentium-mmx -O3 -pipe -fomit-frame-pointer
$ fakeroot make-kpkg --append-to-version k6 --config menuconfig --initrd --bzimage kernel_headers kernel_image
Tu devrais assez rapidement avoir un menu qui s'affiche en mode console (menuconfig). Là il va falloir bidouiller un peu pour trouver les options de config. qui vont bien avec ton processeur. C'est là qu'il faut aller « Processor Type and features > Processor Family » et sélectionner « K6/K6-II/K6-III ».
Une fois ceci fait, il "suffit" de faire « exit » jusqu'à ce que qu'il te demande « do you wish to save your new kernel configuration ? » et où il faut bien entendu répondre « yes » ^^
À partir de là, il faut laisser la machine tourner toute seule pendant... hum... longtemps. Vu la vitesse de ton processeur et le fait que l'on compile un énorme noyau made in debian, ça va prendre beaucoup de temps. Après ça va dépendre de ta mémoire aussi...
Au final tu vas te retrouver avec deux jolis paquets debian dans /usr/src/. Il suffit de les installer :
$ su -
<enter root passwd>
root$ cd /usr/src
root$ dpkg -i kernel*.deb
Enfin, un petit coup de nettoyage et ça devrait être bon :
$ cd /usr/src/kernel-source-2.6.7
$ make clean
$ su -
<enter root passwd>
root$ apt-get --purge remove kernel-source-2.6.7
root$ exit
Normalement le noyau s'est de lui-même intégré à Grub / Lilo et donc il doit être possible de booter dessus. Sinon faut modifier sa config. Grub / Lilo à la mano.
Voilà, ça devrait (normalement) marcher correctement.
[^]Re: recompile
merci beaucoup :)
j'essayerai cette semaine ....
[^]Re: recompile
On peut même améliorer avec :
$ export CHOST="i586-pc-linux-gnu"
Il existe une page qui répertorie toutes les meilleures options à choisire pour GCC en fct° de son proc. et de son syst. mais je ne sais plus où elle est. J'aijuste noté ce qu'il me fallait pour mon K7 et mon K6-II...