lxrandr 启动失败并抛出分段错误

lxrandr 启动失败并抛出分段错误

这是一个非常具体的场景,但是由于我没有在任何地方找到解决这个问题的线索,所以我认为记录我如何解决这个问题可能不是一个坏主意。

背景

  • 操作系统:Ubuntu 18.04,使用 Kiwi builder 部署(相当简约的构建,因为目标是拥有尽可能轻量的系统)
  • 显示管理器:lightdm
  • 窗口管理器:Openbox

症状

尝试从 Openbox 应用程序菜单启动 lxrandr 无效。尝试从终端窗口启动 lxrandr 会打印:

    Segmentation fault

没有其他问题 - 没有核心转储,没有其他错误,dmesg 或任何系统日志中都没有任何内容。xrandr 本身运行良好,XRandR 的其他可视化前端(例如 arandr)也运行良好。重新安装 lxrandr 并没有解决问题 - 尽管显然缺少了某些东西,因此人们会期望将缺少的部分作为依赖项进行安装。

答案1

故障排除

无奈之下,我尝试使用 gdb 进行调试,但是没有得到任何有用的信息:

    $ 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

解决方案

使用另一个 Ubuntu 18.04 安装,其中 lxrandr 工作正常,我设法确定缺少的软件包是 X.Org X 服务器显示驱动程序。如果您不确定要使用哪个驱动程序,您可以简单地运行:

    apt install xserver-xorg-video-all

就我而言 - 因为它是一个虚拟机 - 运行它就足够了:

    apt install xserver-xorg-video-vmware

然后重新启动(或重新启动 X)即可解决问题。

相关内容