![lxrandr 启动失败并抛出分段错误](https://linux22.com/image/921180/lxrandr%20%E5%90%AF%E5%8A%A8%E5%A4%B1%E8%B4%A5%E5%B9%B6%E6%8A%9B%E5%87%BA%E5%88%86%E6%AE%B5%E9%94%99%E8%AF%AF.png)
这是一个非常具体的场景,但是由于我没有在任何地方找到解决这个问题的线索,所以我认为记录我如何解决这个问题可能不是一个坏主意。
背景
- 操作系统: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)即可解决问题。