我的 2018 款魔法书锐龙版对 linux 的兼容性极差。
- deepin v15(注:2018 款魔法书均预装 windows,2019 才有 deepin pro)直接调不了背光。
- opensuse tumbleweed 运行中卡死,只能强制重启。
- ubuntu 同上。
- kde neon、kubuntu、manjaro、archlinux 同上。
最近才在华为论坛上找到办法,作者则是在 archwiki 上看到的。不过作者打字水平不太好,文内有多处错误,我搞了之后大致如下:
/etc/mkinitcpio.conf
……
MODULES=(amdgpu radeon)
……
据 wiki 说在 modules 里面按顺序填上 amdgpu radeon 即可解决。不过在此之前我按华为论坛上作者的办法(只填 amdgpu)问题依旧。我如此修改以后问题出现的频率有所减少,但依旧存在。
同时,通过经验我还发现,电脑卡死的现象与过热存在一定的相关性。因此,我安装了 tlp 和 tlpui-git(为 tlp 开发的一个 GUI),并将各项设置调为“优先节能(power)”,目前过热的现象大大减少,卡死的现象暂未出现。(在此以后卡死现象依旧存在——5.16 修订)
不过我觉得大概还是治标不治本。这篇文章会经常更新。
修订于 2020 年 5 月 15 日
经过多方查找如 bugzilla、manjaro forum,我决定:
- 修改内核参数
/etc/default/grub
……
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ……"
改为“noacpi nosplash idle=nomwait irqpoll ……”
……
然后 sudo grub-mkconfig -o /boot/grub/grub.cfg
- 禁用 C6 状态
$ yay zenstates-git
# vim /etc/modules-load.d/modules.conf(可能是新文件)加入如下单词:“msr”。
# vim /etc/systemd/system/disable_c6.service (新文件)
内容如下:
[Unit]
Description=Ryzen Disable C6
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=basic.target
[Service]
Type=oneshot
ExecStart=/usr/bin/zenstates --c6-disable
[Install]
WantedBy=basic.target
然后
# systemctl enable disable_c6.service
最后重启。
这是我病急乱投医综合三四个回答的结果。修改后,目前暂时一切正常。
修订于 2020 年 5 月 16 日
然而并没有。
于是我把 kde 的混成器设置从 OpenGL3.1 改成了 2.0,现在暂时没事了。
然后还有吧友提供了另一个方案
(/etc/default/grub):
acpi_osi=\"Windows 2015\" reboot=kbd ivrs_ioapic[32]=00:14.0 amd_iommu=on idle=nomwait amdgpu.vm_fragment_size=9 initrd=/boot/amd-ucode.img
然后 grub-mkconfig -o /boot/grub/grub.cfg
修订于 2020 年 5 月 25 日
然而还是有问题!!!!!!!
然后我又找到了一个内核参数,使用方法同上,加入 /etc/default/grub
里然后 grub-mkconfig -o /boot/grub/grub.cfg
吧:
amdgpu.noretry=0
这博文在我高中毕业换电脑以前(2020.7.8 以前)不会停更,因为我现在本子上只装了 arch,所以我一定会和这错误死磕到底!!!特地格了 win10,就为了逼自己干掉你!!!
修订于 2020 年 5 月 27 日
卡死现象仍未得到解决,然而频率以及致命性(下文谈)已有所下降。
我发现卡死有两种:
- 完全地卡死,鼠标动不了,键盘无响应,只能强制重启。
- 图像卡死,但可切换至 tty,在 tty 下
ps -ax | grep kwin
可发现 kwin 处于僵尸(Z)状态,直接 kill pid 无效(SIGTERM),需要 kill -s 9(SIGKILL)才可以。这之后切换回图形界面,发现其它一切正常,可在图形界面的终端下再次启动 kwin_x11。
其中 1.错误已不再发生。
修订于 2020 年 5 月 28 日
自 5 月 28 日至目前为止,两种现象均未发生,可以认为,我解决了问题。个人认为比较关键的两点是
- 禁用 C6 / idle=nomwait
- 将混成器从 OpenGL3.1 调成 2.0
修订于 2020 年 6 月 7 日
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于