Forum Linux.slackware Problème de compilation MPlayer

Posté par  .
Étiquettes : aucune
0
22
sept.
2005
Bonjour à tous,

Je viens d'installer la nouvelle Slack 10.2 (qui, au passage, est vraiment bien). Ayant un bi-processeurs il me faut donc un noyau SMP, donc quitte à recompiler un noyau autant prendre la dernière version (la 2.6.13.2). La compilation et l'install du noyau se fait sans soucis.

Arrivée à la compilation de MPlayer, la gros problème, gcc me sort des erreurs internes de type segmentation fault. Tout d'abord je me dis que ma RAM est foutue donc petit test (une heure quand même) avec Memtest -> deux pass et aucune erreur. La j'essai de compiler autre chose, je choisie wxWidgets (nécessaire à aMule) même problème (la compile de xdtv passe bien par contre). Enfin, ne sachant plus quoi faire je reboot ma Slack avec le noyau d'origine (le 2.4.31) et la miracle ça compile nickel.

Quelqu'un aurait-il une idée/solution à ce problème (je veux garder mon noyau 2.6.13.2)?
  • # Librairies du noyau ?

    Posté par  . Évalué à 1.

    Il y a peut être les fichiers include du noyau à recopier dans /usr/include/linux, mais le crash de gcc me semble un peu disproportionné.
    (n'oublie pas de sauvegarder les anciens fichiers au cas où ça ne serait pas ça :-)
    Ne pas oublier non plus de vérifier que le System.map et éventuellement le initrd ont bien été placés.

    Si ce n'est pas ça, il y a peut-être un pépin avec gcc et le SMP...
    Il faudrait plus de détails pour pouvoir avancer (64 bits ?)


    • [^] # Re: Librairies du noyau ?

      Posté par  . Évalué à 2.

      > Il y a peut être les fichiers include du noyau
      > à recopier dans /usr/include/linux,

      Surtout pas. on laisse dans ce répertoire les includes du noyau utilisées pour compiler la glibc !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      Slack
      • [^] # Re: Librairies du noyau ?

        Posté par  . Évalué à 1.

        whoups...
        ha ben si on peut plus être bourrin alors...

        Les headers dans /usr/include/linux sont liés à la glibc et pas au kernel ? ça a une certaine logique puisque le kernel ne donne pas de librairies mais a-t'on besoin de librairies pour interagir avec le kernel ? A quoi se linkent les modules quand on les compile séparement ?
        Tu aurais un lien vers de la doc là-dessus ? ça m'intéresse pas mal.
        bon, ça m'apprendra à l'ouvrir quand j'y comprends rien :-)

        • [^] # Librairies, modules

          Posté par  . Évalué à 2.

          Prenons les choses dans l'ordre de la construction d'un linux :
          - tu construis des outils (gcc, binutils, etc) pour construire des exécutables,
          - tu choisis un kernel (par exemple le 2.6.11) que tu désarchives (sans le compiler),
          - tu compiles une glibc avec les includes de ce kernel (la glibc doit savoir quels sont les paramètres attendus par le kernel) puis tu l'installes,
          - tu compiles tes exécutables avec la glic et tu les installes,
          - dès que tu compilés assez d'outils (gcc, binutils, etc), tu peux compiler ton noyau.

          Ensuite, tu peux remplacer le noyau 2.6.11 par une version 2.6.12 ou 2.6.13. Mais il ne faut surtout pas utiliser un noyau plus ancien : 2.6.10 ou série 2.4 interdits . La glibc ne le supporterait pas.
          En cas de mises à jour du noyau, il faut laisser dans /usr/include les include du noyau avec lesquels la glibc a été compilée.

          Si tu veux plus de détails, va voir www.linuxfromscratch.org/lfs/view


          Ne pas confondre les bibliothèques et les modules.
          * Un programme n'interagit jamais directement avec le noyau mais il fait appel à des bibliothèques de fonctions (ouvertures de fichiers, affichages, etc) qui font appel si nécessaire au noyau.
          * Un module est une partie du code du noyau qui est chargée en mémoire en cas de besoin. Cela permet de construire un noyau pouvant supporter un très grand nombres de périphériques différents et de charger en mémoire uniquement les pilotes des périphériques présents sur la machine.

          Une bonne doc : "Guide d'installation de Linux version 2.6.2" à l'adresse
          http://casteyde.christian.free.fr/(...)

          Slack
    • [^] # Re: Librairies du noyau ?

      Posté par  . Évalué à 1.

      > Il faudrait plus de détails pour pouvoir avancer (64 bits ?)

      Mes proc sont des Athlon MP 1800+ (donc pas 64bits) avec 512Mo de PC2100 et je n'ai rien de particulier dans mon matos.
  • # Installe les bons entêtes !

    Posté par  . Évalué à 2.

    BrainDeadBZH

    J'ai déja eu ces problèmes : il faut garder dans /usr/include les includes utilisées pour compiler la glibc et ne surtout pas les remplacer.

    Slackware 10.2 dispose de deux glibc. L'une, qui dispose du support de linuxthreads, a été compillée avec les includes du 2.4.31. L'autre, qui dispose du support de NPTL, a été compilée avec les includes du 2.6.13 . Par défaut, slackware utilise la deuxième mais installe les includes de la première.


    Première méthode : tu utilises la remarque dans le fichier
    linux-2.6.13/kernel-headers.WARNING
    du cd2 de la slack.

    Deuxième méthode : tu enlèves les includes du 2.4 et tu installes les includes du 2.6 (n'utilise plus de noyau 2.4 dans ce cas) ! Pour cela, logue toi en root dans un terminal texte et lance les commandes suivantes après avoir monté le cdrom 2 de la slack sur /mnt/cdrom :
    init 1
    removepkg kernel-headers-2.4.31
    installpkg /mnt/cdrom/linux-2.6.13/kernel-headers-2.6.13-i386-1.tgz
    removepkg alsa-driver # il faut aussi mettre à jour alsa
    installpkg /mnt/cdrom/linux-2.6.13/alsa-driver-1.0.9b_2.6.13-i486-1.tgz
    init 3 # ou init 4 pour retourner en graphique


    Slack
    • [^] # Re: Installe les bons entêtes !

      Posté par  . Évalué à 1.

      J'ai effectué la manip mais gcc crash toujours pareil.

      C'est la première fois que ça arrive. Sur ma Slack 10.1 j'avais mis un kernel 2.6.11 et la compilation ne posait pas de problème.
      • [^] # ?????????????????????

        Posté par  . Évalué à 1.

        Je viens de faire la mise à jour de mon système slackware-current vers 10.2 .
        Je n'ai pas eu de problème pour compiler les logiciels qui te posent problème.

        Mon système : athlon 1600 avec 256 Mo de RAM non SMP.

        Je ne vois pas ce qui peut provoquer ces segfaults. Voici quatre pistes pour y voir plus clair.

        * Peux-tu tester le noyau 2.6.13 fourni par le cd2 cd slack et compiler avec ?

        * Peux-tu renvoyer les extraits des fichiers
        /var/log/syslog
        /var/log/messages
        quand gcc segfault ?

        * Qu'affiche gcc au segfault ?

        * Peux-tu recompiler ton noyau sans SMP et compiler avec ?

        Slack
        • [^] # Re: ?????????????????????

          Posté par  . Évalué à 1.

          Bonjour,

          désolé pour le délai mais j'ai été beaucoup pris. Merci de vos réponse mais en fait je pense bien que c'est un problème hardware qui est à l'origine.

          En effet, en examinant /var/log/messages, voila ce qui met juste avant les segfaults :

          Oct 6 18:54:50 BrainDeadPC kernel: MCE: The hardware reports a non fatal, correctable incident occurred on CPU 1.
          Oct 6 18:54:50 BrainDeadPC kernel: Bank 1: d400000000000151

          Je pense donc que un de mes processeurs à pris un coup dans la gueule :-((. C'est la misère surtout que ce type de CPU est quasi introuvable (ou cher) et que je peux pas mettre deux CPU à freq. différentes. Mais bon cela sort du domaine de ce forum Slackware.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.