从 20.04 更新至 22.10 - Xorg 崩溃,怀疑是 displaylink 驱动程序问题

从 20.04 更新至 22.10 - Xorg 崩溃,怀疑是 displaylink 驱动程序问题

我昨晚干了一件蠢事,在深夜更新了我的笔记本电脑,所以这一切都是我的错。我更新了 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 中的版本历史记录,因此很难知道它是否最近更新过)

相关内容