![从 20.04 更新至 22.10 - Xorg 崩溃,怀疑是 displaylink 驱动程序问题](https://linux22.com/image/1191346/%E4%BB%8E%2020.04%20%E6%9B%B4%E6%96%B0%E8%87%B3%2022.10%20-%20Xorg%20%E5%B4%A9%E6%BA%83%EF%BC%8C%E6%80%80%E7%96%91%E6%98%AF%20displaylink%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E9%97%AE%E9%A2%98.png)
我昨晚干了一件蠢事,在深夜更新了我的笔记本电脑,所以这一切都是我的错。我更新了 ubuntu 并重新启动,却发现 Xserver 无法启动。它声称这是由于日志中的分段错误造成的,但在屏幕上的跟踪中显示“evdi”(显示链接)。现在我知道这些 displaylink 驱动程序名声不好,过去也给我带来了一些麻烦,所以我运行了“displaylink-installer uninstall”,系统立即启动了 Xserver。完美的。
然而,我将来确实需要使用外接显示器。
startx 打印屏幕跟踪:
X.Org X Server 1.21.1.4
X Protocol Version 11, Revision 0
Current Operating System: Linux desktop Name 5.19.0-26-generic #27-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 23 20:44:15 UTC 2022 x86_64
[...]
xorg-server 2:21.1.4-2ubuntu1.2 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.40.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/desktopUser/.local/share/xorg/Xorg.0.log", Time: Fri Dec 9 16:51:46 2022
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
xf86EnableIO: failed to enable I/O ports 0000-03ff (Operation not permitted)
MESA-LOADER: failed to open evdi: /usr/lib/dri/evdi_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load driver: evdi
kmsro: driver missing
(EE)
(EE) Backtrace:
(EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x13d) [0x55d66aa7bbdd]
(EE) 1: /lib/x86_64-linux-gnu/libc.so.6 (__sigaction+0x50) [0x7f30b5c3bcf0]
(EE) unw_get_proc_name failed: no unwind info found [-10]
(EE) 2: /lib64/ld-linux-x86-64.so.2 (?+0x0) [0x7f30b635524d]
(EE) 3: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_exception+0x7a) [0x7f30b5d6d79a]
(EE) 4: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_error+0x33) [0x7f30b5d6d853]
(EE) 5: /lib/x86_64-linux-gnu/libc.so.6 (dlerror+0x29f) [0x7f30b5c8b93f]
(EE) 6: /lib/x86_64-linux-gnu/libc.so.6 (dlclose+0x36) [0x7f30b5c8b696]
(EE) 7: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (nouveau_drm_screen_create+0x1d6c88) [0x7f30b4159ad8]
(EE) 8: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (nouveau_drm_screen_create+0x1d6143) [0x7f30b4158f93]
(EE) unw_get_proc_name failed: no unwind info found [-10]
(EE) 9: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (?+0x0) [0x7f30b36aca36]
(EE) 10: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0x668ddb) [0x7f30b3d159fb]
(EE) 11: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0x668d2c) [0x7f30b3d1594c]
(EE) 12: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0x1c10) [0x7f30b36ae830]
(EE) 13: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0xa3b5) [0x7f30b36b6fd5]
(EE) 14: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_format_get_name+0x1a66) [0x7f30b5489df6]
(EE) 15: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_format_get_name+0x1b50) [0x7f30b5489ee0]
(EE) 16: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_format_get_name+0x1e28) [0x7f30b548a1b8]
(EE) unw_get_proc_name failed: no unwind info found [-10]
(EE) 17: /lib/x86_64-linux-gnu/libgbm.so.1 (?+0x0) [0x7f30b54879c0]
(EE) unw_get_proc_name failed: no unwind info found [-10]
(EE) 18: /lib/x86_64-linux-gnu/libgbm.so.1 (?+0x0) [0x7f30b5487b54]
(EE) 19: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_create_device+0x4f) [0x7f30b5487c9f]
(EE) 20: /usr/lib/xorg/modules/libglamoregl.so (glamor_egl_init+0x65) [0x7f30b549ed15]
(EE) unw_get_proc_name failed: no unwind info found [-10]
(EE) 21: /usr/lib/xorg/modules/drivers/modesetting_drv.so (?+0x0) [0x7f30b54d97f3]
(EE) 22: /usr/lib/xorg/Xorg (InitOutput+0xb8b) [0x55d66a948a7b]
(EE) 23: /usr/lib/xorg/Xorg (InitFonts+0x1ce) [0x55d66a908d2e]
(EE) 24: /lib/x86_64-linux-gnu/libc.so.6 (__libc_init_first+0x90) [0x7f30b5c23510]
(EE) 25: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0x89) [0x7f30b5c235c9]
(EE) 26: /usr/lib/xorg/Xorg (_start+0x25) [0x55d66a8f2045]
(EE)
(EE) Segmentation fault at address 0x337
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/home/desktopUser/.local/share/xorg/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Xorg.0.log 的最后一部分:
[ 2144.254] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[ 2144.254] (==) modeset(0): DPI set to (96, 96)
[ 2144.254] (II) Loading sub module "fb"
[ 2144.254] (II) LoadModule: "fb"
[ 2144.254] (II) Module "fb" already built-in
[ 2144.254] (==) modeset(G0): Depth 24, (==) framebuffer bpp 32
[ 2144.254] (==) modeset(G0): RGB weight 888
[ 2144.254] (==) modeset(G0): Default visual is TrueColor
[ 2144.254] (II) Loading sub module "glamoregl"
[ 2144.254] (II) LoadModule: "glamoregl"
[ 2144.254] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[ 2144.254] (II) Module glamoregl: vendor="X.Org Foundation"
[ 2144.254] compiled for 1.21.1.4, module version = 1.0.1
[ 2144.254] ABI class: X.Org ANSI C Emulation, version 0.4
[ 2144.258] (EE)
[ 2144.258] (EE) Backtrace:
[ 2144.258] (EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x13d) [0x55bb5d4e1bdd]
[ 2144.258] (EE) 1: /lib/x86_64-linux-gnu/libc.so.6 (__sigaction+0x50) [0x7fa11ea3bcf0]
[ 2144.258] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 2144.258] (EE) 2: /lib64/ld-linux-x86-64.so.2 (?+0x0) [0x7fa11f19c24d]
[ 2144.258] (EE) 3: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_exception+0x7a) [0x7fa11eb6d79a]
[ 2144.259] (EE) 4: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_error+0x33) [0x7fa11eb6d853]
[ 2144.259] (EE) 5: /lib/x86_64-linux-gnu/libc.so.6 (dlerror+0x29f) [0x7fa11ea8b93f]
[ 2144.259] (EE) 6: /lib/x86_64-linux-gnu/libc.so.6 (dlclose+0x36) [0x7fa11ea8b696]
[ 2144.259] (EE) 7: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (nouveau_drm_screen_create+0x1d6c88) [0x7fa11cf59ad8]
[ 2144.259] (EE) 8: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (nouveau_drm_screen_create+0x1d6143) [0x7fa11cf58f93]
[ 2144.259] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 2144.260] (EE) 9: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (?+0x0) [0x7fa11c4aca36]
[ 2144.260] (EE) 10: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0x668ddb) [0x7fa11cb159fb]
[ 2144.260] (EE) 11: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0x668d2c) [0x7fa11cb1594c]
[ 2144.260] (EE) 12: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0x1c10) [0x7fa11c4ae830]
[ 2144.260] (EE) 13: /usr/lib/x86_64-linux-gnu/dri/iris_dri.so (__driDriverGetExtensions_d3d12+0xa3b5) [0x7fa11c4b6fd5]
[ 2144.260] (EE) 14: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_format_get_name+0x1a66) [0x7fa11e2cfdf6]
[ 2144.260] (EE) 15: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_format_get_name+0x1b50) [0x7fa11e2cfee0]
[ 2144.260] (EE) 16: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_format_get_name+0x1e28) [0x7fa11e2d01b8]
[ 2144.260] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 2144.260] (EE) 17: /lib/x86_64-linux-gnu/libgbm.so.1 (?+0x0) [0x7fa11e2cd9c0]
[ 2144.261] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 2144.261] (EE) 18: /lib/x86_64-linux-gnu/libgbm.so.1 (?+0x0) [0x7fa11e2cdb54]
[ 2144.261] (EE) 19: /lib/x86_64-linux-gnu/libgbm.so.1 (gbm_create_device+0x4f) [0x7fa11e2cdc9f]
[ 2144.261] (EE) 20: /usr/lib/xorg/modules/libglamoregl.so (glamor_egl_init+0x65) [0x7fa11e2e4d15]
[ 2144.261] (EE) unw_get_proc_name failed: no unwind info found [-10]
[ 2144.261] (EE) 21: /usr/lib/xorg/modules/drivers/modesetting_drv.so (?+0x0) [0x7fa11e31f7f3]
[ 2144.261] (EE) 22: /usr/lib/xorg/Xorg (InitOutput+0xb8b) [0x55bb5d3aea7b]
[ 2144.261] (EE) 23: /usr/lib/xorg/Xorg (InitFonts+0x1ce) [0x55bb5d36ed2e]
[ 2144.261] (EE) 24: /lib/x86_64-linux-gnu/libc.so.6 (__libc_init_first+0x90) [0x7fa11ea23510]
[ 2144.262] (EE) 25: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0x89) [0x7fa11ea235c9]
[ 2144.262] (EE) 26: /usr/lib/xorg/Xorg (_start+0x25) [0x55bb5d358045]
[ 2144.262] (EE)
[ 2144.262] (EE) Segmentation fault at address 0x337
[ 2144.262] (EE)
Fatal server error:
[ 2144.262] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 2144.262] (EE)
[ 2144.262] (EE)
Please consult the The X.Org Foundation support
我认为第二条跟踪有点误导,因为卸载 evdi 后它又开始工作了。有谁知道有什么修复方法可以让 displaylink 驱动程序与 Ubuntu 22 兼容吗?
提前致谢,很高兴回答问题,如果我同时找到解决方案,我会为其他人更新解决方案。
Ubuntu 版本:22.10
显示链接:displaylink-driver-5.6.1-59.184
答案1
自从我的 22.04 LTS 系统上次更新以来,我遇到了类似的问题。
更新后,由于同样的 xorg 崩溃,我无法再登录。我意识到 displaylink 驱动程序可能是罪魁祸首,因为我通过安装通用 6.2 内核解决了该问题,然后我就可以访问我的系统了。
显然,新内核不支持 displaylink。然后我尝试了这里建议的步骤:https://code.berrydejager.com/Fix-DisplayLink_drivers-linux-kernel-6/。驱动程序安装没有问题,但又出现了同样的问题,xorg 在登录时崩溃。清除 evdi 和 display-link 驱动程序解决了这个问题。
然后,我从旧的 5.19 内核中清除了不再起作用的 display-link 驱动程序,和以前一样,xorg 现在也可以在旧内核上顺利启动。
不确定问题是出自驱动程序本身还是出自 evdi 模块(无法访问 synaptic 中的版本历史记录,因此很难知道它是否最近更新过)