RT kernel + Xorg

Résolu
Bonjour,
J'ai la dernière debian (stretch), et j'ai téléchargé le noyau temps réel.
Problème lorsque je démarre ma machine dessus, le serveur X ne se lance pas. Il met comme erreur qu'il ne trouve pas d'ecran ou d'affichage.
J'ai une carte Nvidia, avec normalement le pilote NVIDIA.
Je ne comprend pas ce qu'il se passe merci.



--
Un peuple prêt à sacrifier un peu de liberté pour un peu de sécurité ne mérite ni l'une ni l'autre, et finit par perdre les deux.
Char Snipeur

7 réponses

  1. Modérateur
    Bonjour,

    Dans ton cas il faut choisir si tu veux utiliser le pilote propriétaire (nvidia) ou le pilote libre (nouveau). Si tu ne joues pas, nouveau devrait faire parfaitement l'affaire.

    nvidia

    Modifie
    /etc/apt/sources.list
    pour activer les dépôts
    non-free
    et
    contrib
    , par exemple à l'aide de nano :

    sudo nano /etc/apt/sources.list


    Exemple :

    deb http://ftp.fr.debian.org/debian/ stretch main contrib non-free
    deb https://www.debian.org/security/ stretch/updates main contrib non-free


    Ensuite lance :

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install nvidia-kernel-dkms xserver-xorg-video-nvidia


    (ou
    nvidia-legacy-304xx-kernel-dkms
    si ta carte est ancienne, voir
    aptitude show nvidia-kernel-dkms
    et
    aptitude show nvidia-legacy-304xx-kernel-dkms
    pour voir les cartes supportées).

    Puis redémarre pour tester.

    nouveau

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install xserver-xorg-video-nouveau


    Puis redémarre pour tester.

    Bonne chance
    0
    1. Contributeur
      Bonjour,
      merci de ta réponse. Je tenterai ça.
      Néanmoins, j'aimerai comprendre, lorsque je lance Debian avec le noyau normal, il n'y a pas de souci, le pilote nvidia est parfaitement installé. C'est uniquement lorsque je lance le noyau Real Time que le souci se produit.
      Donc, le paquet nvidia non-free est déjà installé. Il faut que je l'installe à nouveau, mais en ayant chargé sur le noyau RT ? Il ne va pas vouloir faire ça. Si ?
      Merci de ton aide.
      0
      1. Le driver propriétaire nvidia installe un module de kernel : dkms-nvidia
        Ton nouveau kernel ne l'a probablement pas. Tu peux vérifié ça en chargeant le driver graphique "nouveau" ou via une connexion ssh et en utilisant la commande lsmod | grep nvidia
        0
    2. Modérateur
      Bonjour,

      Normalement le fait d'installer
      nvidia-kernel-dkms
      construit le module pour tous les noyaux installés. Tu peux vérifier en cherchant
      nvidia.ko
      dans
      /lib/modules
      :

      find /lib/modules | grep nvidia.ko


      Mais comme je le disais, à moins que tu joues avec des "gros" jeux 3D (e.g. starcraft 2), je te conseille plutôt de désinstaller le pilote nvidia au profit du pilote nouveau.

      Tu peux également essayer de voir lequel est chargé avec
      lsmod
      .

      lsmod | grep nvidia
      lsmod | grep nouveau


      Si aucun n'est chargé, essaye d'en charger un avec modprobe et regarde les éventuels messages d'erreur. En root ou précédé de
      sudo
      :

      modprobe nvidia
      dmesg | tail


      ... puis relance le mode graphique :

      sudo service lightdm restart


      ... en admettant que tu utilises lightm. Si tu utilises un autre gestionnaire de connxion remplace
      lightdm
      par le tien, e.g.
      sddm
      ,
      xdm
      , etc. Si tu ne sais pas duquel il s'agit, tu peux retrouver cette information avec
      ls /etc/init.d/*dm
      .

      Bonne chance
      0
      1. Contributeur
        Merci à vous deux, je comprend un peu mieux le problème maintenant.
        Je fais des jeux, donc, Nvidia.
        Reste à voir si je peux l'installer sur le noyau RT. Sinon, ça sera nouveau, mais j'aimerai garder le pilote NVIDIA sur le noyau classique. Mais est-ce facilement faisable d'utiliser un xorg.conf ou l'autre en fonction du noyau ?
        0
        1. Modérateur
          Bonjour,

          Le plus simple serait de virer nvidia.ko du dossier /lib/modules qui correspond au kernel pour lequel il plante. Ensuite il y a jeu et jeu. Essaye déjà de voir si le résultat n'est pas acceptable avec nouveau.

          Dernière chose, demande-toi si tu as vraiment besoin d'un noyau temps réel. Normalement un tel noyau n'est utile que pour des besoins très spécifiques.

          Bonne chance
          0
          1. Contributeur
            Oui j'ai besoin du noyau RT pour avoir une faible latence. Je branche ma basse à l'ordinateur, sans noyau RT j'ai quelques XRUN pour une latence de 20ms (c'est déjà bien). Avec le noyau RT, aucun XRUN...

            Dans l'idéal, j'aimerai pouvoir booter sur mon noyau classique avec le pilote NVIDIA
            Et booter sur le noyau RT avec un pilote qui me permet une résolution HD (en tout cas, supérieure au 640*480 du VESA), que ça soit NVIDIA, nouveau ou autre.
            0
          2. Modérateur
            Ok effectivement rt est requis dans ce genre de cas. Nouveau permet d'avoir une résolution digne de ce nom. Reste à déterminer si tu as vraiment besoin du pilote nvidia. À quel genre de jeux joues-tu ?
            0
        2. Contributeur
          Salut.
          J'ai enfin un peu de temps et de courage à me recoller à ça.
          Alors, il n'y a pas autant de nvidia dans le noyau rt que dans le noyau normal dans le résultat de "find /lib/module |grep nvidia".
          Du coup j'ai essayé de recompiler avec
          dkms -k 4.9.0-6-rt-amd64 -m nvidia-current -v 375.85 build

          https://groups.google.com/forum/#!homeredirforum/#!topic/linux.debian.bugs.dist/3kHakZ1ste4
          Mais il me demande des linux-headers, que j'ai installé.
          Depuis il y a la même chose pour les deux noyaux dans /lib/module.
          le modprobe nvidia semble fonctionner.
          J'ai reussi à lancer startx en root. Reste à régler le problème de se connecter en user...
          1
          1. Modérateur
            Bonjour,

            Sous debian il n'y a même aucun
            nvidia.ko
            de base dans
            /lib/modules
            : c'est un module propriétaire, que tu installes traditionnellement avec :
            sudo apt-get install xserver-xorg-video-nvidia
            .

            Tout le nécessaire à la compilation de
            nvidia.ko
            est installé automatiquement. Cela inclue notamment le paquet
            nvidia-kernel-dkms
            ). Comme tout modules, celui-ci requiert le compilateur et les headers qui correspondent au noyau que tu es en train d'utiliser (paquet
            linux-headers-$(uname -r)
            , etc...) qui sont également automatiquement installés par dépendance de paquets.

            De nos jours, il n'y a de plus rien à configurer au niveau de xorg pour que celui-ci sache quel pilote utiliser. Par défaut, il tentera d'utiliser
            nvidia
            , le cas échéant il se rabattra sur
            nouveau
            , et sinon sur un pilote encore plus basique (e.g;
            vesa
            ). La seule exception à cette règle est si tu as deux cartes graphiques (e.g. une carte nvidia pour la performance et une carte intel pour la performance), dans ce cas un utilitaire comme
            bumblebee
            peut être intéressant, mais laissons ça de côté pour le moment.

            Une fois que tout ceci est fait, le serveur graphique devrait démarrer normalement. Il ne faut pas lancer de session grpahique en root comme tu l'as fait. C'est très mauvais d'un point de vue sécurité, et ça me surprend même qu'il t'ait laissé faire. Si ton pilote nvidia est installé, ton gestionnaire de connexion graphique (e.g. sddm, lightdm, etc...) devrait se lancer correctement (En root :
            service sddm restart
            ). Si celui-ci s'affiche, c'est que tout est ok concernant le pilote. Le cas échéant il faudrait regarder les éventuelles erreurs dans
            /var/log/Xorg.0.log
            , par exemple avec la commande
            grep EE /var/log/Xorg.0.log
            .

            Ensuite il ne reste plus qu'à t'identifier avec ton utlisateur normal depuis ton gestionnaire de connexion graphique...

            Bonne chance
            0