我昨天进行了升级,其中有一些 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,问题就解决了。