天天学习,好好向上!

一次误操作freetype库文件导致开机闪屏 lightdm无限重启 无法进入桌面的故障修复记录

起因:WPS office 11.1版本文档部分字体加粗后显示黑块

因为笔者使用的笔记本电脑是清华同方L860-T1,使用的是龙芯3A4000处理器,安装的是之前文章里提到的debian unstable.近半年来发现libreoffice在unstable的发行里,总是无法安装最新的libreoffice-common等4个包,致使一直处于非最新版本状态,就只好安装了wps官网下载的wps-office_11.1.0.11719_mips64el.deb,使用起来体验还不错,就是发现像仿宋_GB2312之类的字体,一旦加粗就变成里黑黑的一坨。只有将页面缩放到300%后才能正常显示,经过网上搜索后,发现一篇解决方法的文章Linux WPS 11.1.0.11704楷体、仿宋字体加粗后显示成一团黑,发现我的问题和他的一模一样,评论区里看到具体的解决方法:

在Ubuntu上搜索libfreetype库发现系统/usr/lib/x86_64-linux-gnu/libfreetype.so.6使用的库版本为ibfreetype.so.6.20.0。

而在snap目录中发现了其它版本的库,而wps会优先引用自己安装目录中的库,于是做了下尝试,使用snap目录中libfreetype.so.6.15.0版本和libfreetype.so.6.18.1分别进行了尝试,最终发现libfreetype.so.6.18.1可用。WPS终于恢复加粗字体的显示啦!

操作方法:

sudo cp /snap/gnome-42-2204/141/usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 /opt/kingsoft/wps-office/office6/libfreetype.so.6

因为笔者的本本是mips64el架构的处理器,搜索里一番发现在/usr/lib/mips64el-linux-gnuabi64目录下有个libfreetype.so.6.20.1

然后我就尝试了如下命令:

sudo cp '/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1'  '/opt/kingsoft/wps-office/office6/libfreetype.so.6'

发现不管用,而且系统还报告他们是同一个文件,我没在意,于是我又想把这个目录下的其他两个freetype库文件也给替换里试试,我先把libfreetype.so.6.6.2文件压缩备份到里用户目录中,然后分别替换了以下两个文件:

sudo cp '/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1'  '/opt/kingsoft/wps-office/office6/libfreetype.so.6.6.2'
sudo cp '/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1'  '/opt/kingsoft/wps-office/office6/libfreetype.so'

发现还是不管用,于是我就犯了一个巨大的错误,我没有去看这几个库文件的文件链接关系,直接把刚才压缩备份的libfreetype.so.6.6.2拷回里wps目录下,并替换了libfreetype.so.6.6.2 libfreetype.so libfreetype.so.6 三个文件。然后发现wps打不开了,我就尝试卸载wps重新安装,结果一输命令卸载wps,终端就闪退了。终端也打不开了,我想可能是系统有问题,就重启下兴许能解决,结果重启后进不去系统了。屏幕每隔3秒左右就闪烁一下,连Ctrl + Alt + F2组合键进入tty2都进不去。毁了!!也蒙了!!不知道到底出了什么问题??!!然后接下来就是痛苦的排错步骤了。

痛苦的排错过程

1.磁盘分区文件问题?

首先我怀疑是磁盘文件出了问题,然后用u盘和ventoy加载UOS的安装盘后,Ctrl + Alt + F2组合键进入tty2,后用fsck.ext4 -C 0 /dev/nvme0n1p3命令把几个分区都检查了一遍。重启,不行。

2./etc/fstab问题?

接下来尝试recovery mode,系统提示

can not open access to console the root account is locked

以为是问题线索,搜索出来一篇文章说可能是/etc/fstab文件的问题,里面有移动存储的记录,我再次u盘启动,挂载分区后,发现fstab文件没有问题,重启,不行。

3.显卡驱动的问题?

会不会是显卡驱动出了问题,导致进不去图形界面?我再次进入uos安装盘的tty2,准备chroot后看看apt的安装记录,看是否是更新了显卡驱动导致的。

先连接网络

sudo -i
nmcli dev wifi connect WIFI连接点名称 password WIFI密码

挂载必要位置后切换chroot

mkdir /mnt/deb
mount /dev/nvme0n1p3 /mnt/deb
mount /dev/nvme0n1p4 /mnt/deb/home
mount /dev/nvme0n1p2 /mnt/deb/boot
mkdir -p /mnt/deb/boot/efi
mount /dev/nvme0n1p1 /mnt/deb/boot/efi
mount --bind /dev /mnt/deb/dev
mount -t devpts devpts /mnt/deb/dev/pts
mount -t proc proc /mnt/deb/proc
mount -t sysfs sysfs /mnt/deb/sys
mount -t tmpfs tmpfs /mnt/deb/tmp
chroot /mnt/deb /bin/bash

进入系统后,apt update命令发现无法解析服务器IP。又是一顿搜索,发现是chroot后,挂载的系统里/etc/resolv.conf文件不会自动更新,需要用nano /etc/resolv.conf命令修改下内容

nameserver 路由器IP

Ctrl + O保存,Ctrl + X关闭即可。

查看apt更新日志

less /var/log/apt/history.log

仔细翻找后,发现真的最近更新了mesa驱动,然后就用apt install <package-name>=<version>命令逐一装回了旧版本。重启,还是不行。

4.lightdm的问题?

继续上述步骤进入chroot环境后,查看lightdm的日志,发现每3秒重启一次,期间还报了plymouth的错误。搜了搜,又继续以下尝试:

apt remove --purge lightdm plymouth

重启后不闪屏了,可以正常进入tty模式了!好的,也算有进展。重新apt命令安装lightdm和plymouth,重启,还是不行。

再卸载lightdm和plymouth,然后又尝试卸载了task-mate-desktop,task-xfce-desktop,用如下命令清理了所有的不需要包和残余配置文件

sudo apt autoremove --purge
sudo apt remove --purge $(dpkg -l | grep "^rc" | awk '{print $2}')

重新安装task-mate-desktop重启,还是不行。

5.换个桌面环境?

进入chroot,卸载lightdm后,尝试安装了task-kde-desktop。重启,这次终于不闪屏了,但是进不去登陆界面,黑屏里只有一个鼠标在。可以用组合键进入tty2。
继续搜索这个现象,得到如下排错提示:

systemctl --user restart plasma-plasmashell.service
systemctl --user status plasma-plasmashell.service
journalctl --user -xeu plasma-plasmashell.service

最后,终于在journalctl --user -xeu plasma-plasmashell.service这个命令反馈的错误FT_Get_Var_Blend_Coordinates关键字,提示说是freetype库太旧了。这时我才恍然大悟,原来就是我误操作的freetype库导致的问题啊,于是

sudo apt reinstall libfreetype6

重新安装了freetype库,卸载kde环境,重新安装mate环境,重启,终于进桌面啦!!!

还有小毛病??

桌面是进去了,但是又开始报面板小组件异常,是否重新加载的问题。搜了搜,有人新建用户后,拷贝配置文件可以解决,新建用户,注销登陆,还是不行。继续搜,终于有个大佬说是缺少了dconf-editor包导致的,好吧,到处卸载包,卸多了!!!下面的命令安装后,果然好了!!

sudo apt install dconf-editor

原因复盘

实际上我没有意识到,覆盖libfreetype.so.6文件就等于覆盖/usr/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1文件,直接导致了系统freetype库版本过低,出现了以上问题。

lrwxrwxrwx  1 xmanweb xmanweb        20  2月29日 11:10  libfreetype.so -> libfreetype.so.6.6.2
lrwxrwxrwx  1 root    root           54  5月27日 18:04  libfreetype.so.6 -> /usr/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1
-rwxr-xr-x  1 xmanweb xmanweb   2668421  2月29日 11:10  libfreetype.so.6.6.2

以后可不敢乱替换文件了!!!!

那WPS的问题还没解决啊!?

我想了想从Kylin Repository Content里下载带sn的版本更高的wps试试,下载了wps-office_11.8.2.1132.AK.preload.sw.withsn_mips64el.deb,安装上后,发现即使WPS目录里的库文件还是老样子,但是字体加粗黑块的问题居然解决了!?可是这个版本只有180天的试用期啊。继续搜索,在吾爱破解论坛上找了序列号,成功激活!!哈哈

694BF-YUDBG-EAR69-BPRGB-ATQXH

添加新评论