web-dev-qa-db-fra.com

lxrandr omet de lancer et jette une faute de segmentation

Cela a été un scénario assez spécifique, mais depuis que je n'ai trouvé nulle part une seule idée de la façon de résoudre ce problème, je pensais que ce n'est probablement pas une mauvaise idée de documenter comment je l'ai résolu.

arrière-plan

  • OS: Ubuntu 18.04, déployé avec Kiwi Builder (une construction plutôt minimaliste comme objectif était d'avoir un système léger)
  • Directeur d'affichage: LightDM
  • Windows Manager: Openbox

Symptôme

Tentative de lancement de LXRandr à partir du menu Applications Openbox ne donne aucun effet. Essayez de lancer LXRandr des tirages de la fenêtre Terminal:

    Segmentation fault

Rien d'autre - Pas de vidage de noyau, pas d'autres erreurs, rien dans DMESG ou des journaux système. Xrandr lui-même fonctionne très bien, d'autres fronçons visuels pour XRandr (par exemple, Arandr) ont également fonctionné également. La réinstallation de LXRandr n'a pas corrigé le problème - même s'il manquait clairement quelque chose, il serait donc possible que cela s'attendait à ce que le bit manquant soit installé comme une dépendance.

2
mps

Dépannage

En tant que acte de désespoir, j'ai essayé de déboguer avec GDB, mais je n'ai pas réussi à obtenir quelque chose d'utile de cela:

    $ gdb lxrandr
    [..]
    Reading symbols from lxrandr...Reading symbols from /usr/lib/debug/.build-id/2d/cfbc3d5bd314c17b42e61b059377536fe93831.debug...done.
    done.

    (gdb) run       
    Starting program: /usr/bin/lxrandr 
    [Thread debugging using libthread_db enabled]
    Using Host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

    Program received signal SIGSEGV, Segmentation fault.
    main (argc=1, argv=0x7fffffffe8c8) at lxrandr.c:783
    783 lxrandr.c: No such file or directory.

    (gdb) bt
    #0  0x00005555555574a2 in main (argc=1, argv=0x7fffffffe8c8) at lxrandr.c:783

solution

En utilisant une autre installation de Ubuntu 18.04 où LxRandr a fonctionné sans aucun problème, j'ai réussi à identifier le package manquant pour être pilote d'affichage du serveur X.org X. Si vous n'êtes pas sûr, quel pilote utiliser peut-il peut simplement exécuter:

    apt install xserver-xorg-video-all

Dans mon cas - puisque c'était une machine virtuelle - il suffisait de courir:

    apt install xserver-xorg-video-vmware

puis redémarrez (ou redémarrez X) pour résoudre le problème.

1
mps