Ubuntu Kernel Upgrade breaks 微信

yalikesis's avatarPosted by

在腾讯 Drop 了网页版微信之后,Wine 就成为了为数不多在 Linux 上运行微信的办法。GitHub 有直接 Docker 封装的 DoChat project1,也可自己本地直接通过 Wine 安装微信。ArchLinux 的朋友亲测 DoChat 可以运行,DoChat 在 Ubuntu 20.04 的运行问题可见 DoChat Issue #802

我在此使用了 Ferrolho 在 18.04 下的微信安装指南3,但在过去三个月的过程中有两次微信 mystically 拒绝被启动。由于微信通过 .desktop 文件被启动,没有直接可被观测的 debug console output。在本次重装微信的过程中注意到了一下这些 Error Log,助我一窥真相

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 210
Current serial number in output stream: 209

数个 Stack Overflow QA 指向由于 libGL.so* 指向 ambiguous so 文件导致驱动 lookup 失败。使用 ldconfig 获得显卡驱动信息

$ sudo ldconfig -p | grep -i gl.so
     libGL.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libGL.so.1
     libGL.so.1 (libc6,x86-64) => /lib/libGL.so.1
     libGL.so.1 (libc6) => /lib/i386-linux-gnu/libGL.so.1
     libGL.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libGL.so

可见 libGL.so.1 (libc6,x86-64) => /lib/libGL.so.1 指向不同的对象文件 (namely /lib/libGL.so.1),删除之后重新初始化 ldconfig 即可解决此问题。

$ sudo rm /etc/ld.so.cache
$ sudo ldconfig

重新启动微信安装程序即可。

但故事还没有结束 :))))) Graphics Driver 指向的诱因应当是前几日被迫重装 Nvidia Graphics Driver 导致,而 Ubuntu 恰巧三天前进行了 Kernel Upgrade,break 了 Nvidia Graphics Driver. 翻看 Ubuntu Kernel Upgrade History,在十月中也有一次更新,大体上与上次微信崩溃时间线重合。

Soooooooo

Leave a comment