VIA KM400 /dev/dri/card0 丢失

VIA KM400 /dev/dri/card0 丢失

几天以来,在运行 Ubuntu 18.04 的搭载 VIA KM400 集成显卡的 Athlon 2600+ 上,X 无法再启动。

这可能是由某些 Ubuntu 软件包的更新触发的,但我当然不能确定。我能确定的是,我完全没有更改 X 配置。

在 X 开始出现故障之前,以下软件包进行了更新:

Start-Date: 2020-11-05  07:58:29
Commandline: apt-get upgrade
Upgrade: libc6-dbg:i386 (2.27-3ubuntu1.2, 2.27-3ubuntu1.3), libc6-dev:i386 (2.27-3ubuntu1.2, 2.27-3ubuntu1.3), libsystemd0:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), libc6:i386 (2.27-3ubuntu1.2, 2.27-3ubuntu1.3), udev:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), locales:i386 (2.27-3ubuntu1.2, 2.27-3ubuntu1.3), libudev1:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), libc-bin:i386 (2.27-3ubuntu1.2, 2.27-3ubuntu1.3), libudev-dev:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), systemd-sysv:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), libpam-systemd:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), systemd:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), libnss-systemd:i386 (237-3ubuntu10.42, 237-3ubuntu10.43), libc-dev-bin:i386 (2.27-3ubuntu1.2, 2.27-3ubuntu1.3), multiarch-support:i386 (2.27-3ubuntu1.2, 2.27-3ubuntu1.3)
End-Date: 2020-11-05  08:01:15

以下是我迄今为止发现的情况:

/dev/fb0 在启动时创建:

[    1.745867] vesafb: mode is 640x480x32, linelength=2560, pages=0
[    1.745869] vesafb: scrolling: redraw
[    1.745872] vesafb: Truecolor: size=0:8:8:8, shift=0:16:8:0
[    1.745916] vesafb: framebuffer at 0xe4000000, mapped to 0x(ptrval), using 1216k, total 1216k
[    1.746088] fbcon: Deferring console take-over
[    1.746090] fb0: VESA VGA frame buffer device

ls -lrt /dev/fb*
crw-rw---- 1 root video 29, 0 Nov  8 09:49 /dev/fb0

但 uvesafb 报告错误 -22:

[ 7223.306413] uvesafb: , , , OEM: VIA KM400
[ 7223.306608] uvesafb: Getting mode info block for mode 0x101 failed (eax=0x14f, err=0)
[ 7223.306775] uvesafb: Getting mode info block for mode 0x102 failed (eax=0x14f, err=0)
[ 7223.306942] uvesafb: Getting mode info block for mode 0x103 failed (eax=0x14f, err=0)
[ 7223.307113] uvesafb: Getting mode info block for mode 0x105 failed (eax=0x14f, err=0)
[ 7223.307286] uvesafb: Getting mode info block for mode 0x107 failed (eax=0x14f, err=0)
[ 7223.307463] uvesafb: Getting mode info block for mode 0x108 failed (eax=0x14f, err=0)
[ 7223.307644] uvesafb: Getting mode info block for mode 0x109 failed (eax=0x14f, err=0)
[ 7223.307830] uvesafb: Getting mode info block for mode 0x10a failed (eax=0x14f, err=0)
[ 7223.308019] uvesafb: Getting mode info block for mode 0x10b failed (eax=0x14f, err=0)
[ 7223.308212] uvesafb: Getting mode info block for mode 0x10c failed (eax=0x14f, err=0)
[ 7223.308409] uvesafb: Getting mode info block for mode 0x111 failed (eax=0x14f, err=0)
[ 7223.308609] uvesafb: Getting mode info block for mode 0x112 failed (eax=0x14f, err=0)
[ 7223.311860] uvesafb: Getting mode info block for mode 0x114 failed (eax=0x14f, err=0)
[ 7223.312090] uvesafb: Getting mode info block for mode 0x115 failed (eax=0x14f, err=0)
[ 7223.314343] uvesafb: Getting mode info block for mode 0x117 failed (eax=0x14f, err=0)
[ 7223.314577] uvesafb: Getting mode info block for mode 0x118 failed (eax=0x14f, err=0)
[ 7223.314799] uvesafb: Getting mode info block for mode 0x11a failed (eax=0x14f, err=0)
[ 7223.315027] uvesafb: Getting mode info block for mode 0x11b failed (eax=0x14f, err=0)
[ 7223.315256] uvesafb: Getting mode info block for mode 0x120 failed (eax=0x14f, err=0)
[ 7223.323299] uvesafb: Getting mode info block for mode 0x122 failed (eax=0x14f, err=0)
[ 7223.323557] uvesafb: Getting mode info block for mode 0x124 failed (eax=0x14f, err=0)
[ 7223.323800] uvesafb: Getting mode info block for mode 0x171 failed (eax=0x14f, err=0)
[ 7223.324045] uvesafb: Getting mode info block for mode 0x173 failed (eax=0x14f, err=0)
[ 7223.324294] uvesafb: Getting mode info block for mode 0x175 failed (eax=0x14f, err=0)
[ 7223.324548] uvesafb: Getting mode info block for mode 0x17c failed (eax=0x14f, err=0)
[ 7223.324805] uvesafb: Getting mode info block for mode 0x17e failed (eax=0x14f, err=0)
[ 7223.333703] uvesafb: Getting mode info block for mode 0x17f failed (eax=0x14f, err=0)
[ 7223.333710] uvesafb: vbe_init() failed with -22
[ 7223.336539] uvesafb: probe of uvesafb.0 failed with error -22

但 uvesafb 模块已加载并且 v86d 正在运行:

lsmod | grep uvesafb
uvesafb                28672  0

ps aux | grep v86d
root       186  0.0  0.0   3568   932 ?        Ss   09:49   0:00 /sbin/v86d

但没有创建/dev/dri/card0:

ls -lrt /dev/dri*
ls: cannot access '/dev/dri*': No such file or directory

X 在通过 lighdm 激活时不断崩溃。在我所有其他装有可正常工作的 X 的计算机上,都有一个 /dev/dri/card0 文件。

你知道是什么原因导致 uvesafb 无法正确识别视频模式吗?这可能与 grub 有关吗?

谢谢。

答案1

该问题不是由于缺少 而引起的/dev/dri/card0

这是由于 systemd 更新至版本 237-3ubuntu10.43 后出现内存限制问题所致。

可可https://bugs.launchpad.net/ubuntu/+source/unity-greeter/+bug/1662244/ 评论 14、17 和 18

我添加了以下两行

* soft memlock 262144
* hard memlock 262144

现在/etc/security/limits.conflightdm 和 X 重新开始

相关内容