几天以来,在运行 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.conf
lightdm 和 X 重新开始