X 服务器在昨晚更新后崩溃

X 服务器在昨晚更新后崩溃

我昨天进行了升级,其中有一些 plymouth 软件包(不确定这是否与这些软件包有关,但我认为那些是唯一的“图形”软件包。)今天早上,当我将我的 Dell XPS 13 (9370) 连接到我的 TB 16 扩展坞并启动时,X 一直崩溃。如果我拔下扩展坞,X 可以正常启动,并且在登录屏幕出现后我就可以连接扩展坞。以下是 X 崩溃日志:

 6.629] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[     6.629] (II) xfree86: Adding drm device (/dev/dri/card0)
[     6.641] (II) no primary bus or device found
[     6.641]    falling back to /sys/devices/pci0000:00/0000:00:02.0/drm/card0
[     6.641] (II) LoadModule: "glx"
[     6.641] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     6.644] (II) Module glx: vendor="X.Org Foundation"
[     6.644]    compiled for 1.19.5, module version = 1.0.0
[     6.644]    ABI class: X.Org Server Extension, version 10.0
[     6.644] (==) Matched modesetting as autoconfigured driver 0
[     6.644] (==) Matched fbdev as autoconfigured driver 1
[     6.644] (==) Matched vesa as autoconfigured driver 2
[     6.644] (==) Assigned the driver to the xf86ConfigLayout
[     6.644] (II) LoadModule: "modesetting"
[     6.644] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[     6.644] (II) Module modesetting: vendor="X.Org Foundation"
[     6.644]    compiled for 1.19.5, module version = 1.19.5
[     6.644]    Module class: X.Org Video Driver
[     6.644]    ABI class: X.Org Video Driver, version 23.0
[     6.644] (II) LoadModule: "fbdev"
[     6.644] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[     6.644] (II) Module fbdev: vendor="X.Org Foundation"
[     6.644]    compiled for 1.19.3, module version = 0.4.4
[     6.644]    Module class: X.Org Video Driver
[     6.644]    ABI class: X.Org Video Driver, version 23.0
[     6.644] (II) LoadModule: "vesa"
[     6.644] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[     6.644] (II) Module vesa: vendor="X.Org Foundation"
[     6.644]    compiled for 1.19.3, module version = 2.3.4
[     6.644]    Module class: X.Org Video Driver
[     6.644]    ABI class: X.Org Video Driver, version 23.0
[     6.644] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[     6.644] (II) FBDEV: driver for framebuffer: fbdev
[     6.644] (II) VESA: driver for VESA chipsets: vesa
[     6.656] (II) modeset(0): using drv /dev/dri/card0
[     6.656] (WW) Falling back to old probe method for fbdev
[     6.656] (II) Loading sub module "fbdevhw"
[     6.656] (II) LoadModule: "fbdevhw"
[     6.656] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[     6.656] (II) Module fbdevhw: vendor="X.Org Foundation"
[     6.656]    compiled for 1.19.5, module version = 0.0.2
[     6.656]    ABI class: X.Org Video Driver, version 23.0
[     6.656] (WW) Falling back to old probe method for vesa
[     6.656] (EE) 
[     6.656] (EE) Backtrace:
[     6.656] (EE) 0: /usr/lib/xorg/Xorg (xorg_backtrace+0x4e)         [0x561db17fce1e]
[     6.656] (EE) 1: /usr/lib/xorg/Xorg (0x561db164b000+0x1b5b89) [0x561db1800b89]
[     6.656] (EE) 2: /lib/x86_64-linux-gnu/libpthread.so.0 (0x7fcd18c01000+0x11390) [0x7fcd18c12390]
[     6.656] (EE) 3: /usr/lib/x86_64-linux-gnu/libpciaccess.so.0 (pci_device_next+0x118) [0x7fcd1a259a38]
[     6.656] (EE) 4: /usr/lib/x86_64-linux-gnu/libpciaccess.so.0 (pci_device_find_by_slot+0x3b) [0x7fcd1a259abb]
[     6.656] (EE) 5: /usr/lib/x86_64-linux-gnu/libpciaccess.so.0 (pci_device_vgaarb_init+0xaf) [0x7fcd1a25b7af]
[     6.656] (EE) 6: /usr/lib/xorg/Xorg (0x561db164b000+0xb17a9) [0x561db16fc7a9]
[     6.656] (EE) 7: /usr/lib/xorg/Xorg (xf86BusConfig+0x62) [0x561db16d5e62]
[     6.656] (EE) 8: /usr/lib/xorg/Xorg (InitOutput+0xa13) [0x561db16e3f83]
[     6.656] (EE) 9: /usr/lib/xorg/Xorg (0x561db164b000+0x581a6) [0x561db16a31a6]
[     6.656] (EE) 10: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf0) [0x7fcd18857830]
[     6.656] (EE) 11: /usr/lib/xorg/Xorg (_start+0x29) [0x561db168d329]
[     6.656] (EE) 
[     6.656] (EE) Segmentation fault at address 0x0
[     6.656] (EE) 
Fatal server error:
[     6.656] (EE) Caught signal 11 (Segmentation fault). Server aborting
[     6.656] (EE) 
[     6.656] (EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
for help. 
[     6.656] (EE) Please also check the log file at "/var/log/Xorg.0.log"    for additional information.
[     6.656] (EE) 
[     6.708] (EE) Server terminated with error (1). Closing log file.

我目前有一个解决方法,但如果有人能提示如何解决这个问题,我将不胜感激。但也许我需要一个或两个改进版本的包?

问候,

北大青鸟

答案1

如下面引用的堆栈跟踪所示,库中有一个空指针取消引用libpciaccess.so.0

[     6.656] (EE) 3: /usr/lib/x86_64-linux-gnu/libpciaccess.so.0 (pci_device_next+0x118) [0x7fcd1a259a38]
...
[     6.656] (EE) Segmentation fault at address 0x0

使用apt-file search libpciaccess.so.0,可以位于包中的库libpciaccess0,在 Ubuntu 16.04 中,它返回以下信息aptitude show libpciaccess0

Package: libpciaccess0
State: installed
Automatically installed: yes
Multi-Arch: same
Version: 0.13.4-1
Priority: optional
Section: libs
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 63.5 k
Depends: libc6 (>= 2.7), zlib1g (>= 1:1.1.4)
Suggests: pciutils
Description: Generic PCI access library for X
 Provides functionality for X to access the PCI bus and devices in a
 platform-independent way.

然而,在 Ubuntu 20.04 中,该库较新,但具有相同的依赖性,如下所示:

Package: libpciaccess0
Version: 0.16-0ubuntu1
State: installed
Automatically installed: yes
Multi-Arch: same
Priority: optional
Section: libs
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 62.5 k
Depends: libc6 (>= 2.7), zlib1g (>= 1:1.1.4)
Suggests: pciutils
Breaks: libpciaccess0:i386 (!= 0.16-0ubuntu1)
Replaces: libpciaccess0:i386 (< 0.16-0ubuntu1)
Description: Generic PCI access library for X
 Provides functionality for X to access the PCI bus and devices in a
 platform-independent way.

因此,解决问题的方法是简单地安装 Ubuntu 20.04 提供的软件包,如下所示,即可解决问题:

  • 在 Ubuntu 20.04 中,下载软件包:aptitude download libpciaccess.so.0
  • 将获取的文件复制libpciaccess0_0.16-0ubuntu1_amd64.deb到Ubuntu 16.04。
  • 在 Ubuntu 16.04 中,安装该包:sudo dpkg -i libpciaccess0_0.16-0ubuntu1_amd64.deb
  • 重新启动 Ubuntu 16.04,问题就解决了。

相关内容