我的 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
然后sudo grub-mkconfig -o /boot/grub/grub.cfg
修订于 2020 年 5 月 26 日
然而还是有问题!!!!!!!
然后我又找到了一个内核参数,使用方法同上,加入 /etc/default/grub
里然后 grub-mkconfig -o /boot/grub/grub.cfg
吧:
amdgpu.noretry=0
修订于 2020 年 5 月 27 日
目前问题再未复现。可认为已经得到彻底解决。加上笔记本即将卖出,本文宣布完结。
几个关键点:
- 设置 idle=nomwait 或禁用 C6 。
- 将混成器由 OpenGL3.1 改为 2.0。
修订于 2020 年 6 月 12 日