笔记本是二手的,配置为:
i5-8350U,16 GB RAM,512 GB SSD
装完 Arch 后依次安装了 KDE、dwm 和 lightdm,运行均卡顿,且容易崩溃。
于是尝试了其他 Linux 发行版,卡顿崩溃的问题仍在。
之前在一台台式上也装过包含 Arch 在内的各种发行版,流畅运行桌面环境,还是 Win 10 双系统。机子的配置:
i3-8100,16 GB RAM,128 GB SSD + 2 TB HDD,GTX 1050 Ti
Linux 下并没有安装过 Nvidia 显卡的相关驱动,按道理来说也是用的集显,各项都应该不如笔记本。
已查阅过 Arch Wiki 上的 ThinkPad T480s 条目,未能找到有效解决办法。
卡顿崩溃是周期性的,或许是内存溢出了?
依云:
来几个具体的崩溃描述。
运行桌面环境时通常先黑屏较长一段时间,此时光标仍可自由移动。之后桌面完全显示,尚可使用。
一段时间后桌面和鼠标都失去响应,Ctrl + Alt + F2 也无法切换 tty。
之后就是未响应—运行—未响应—运行的循环,或者彻底崩溃,通过电源键才能关机。
渲染也会出现撕裂画面的现象。
依云
(lilydjwg)
March 8, 2023, 2:52pm
4
重启之后看看系统日志呢?journalctl -b -1 -n 1000 这样子
抱歉,我仍是个刚入门 Linux 的新手,暂且看不明白系统日志,请见谅。
一千多行的文本直接发在论坛不大现实,只好放在 Github 上面了,暂时没有想到别的替代方法。
https://github.com/vialektik/TemporaryFiles/blob/main/journalctl_output.txt
第 754 行或许就是崩溃的开始?
这个不是问题,谁也不是天生就会的,多看就懂了,
正确的做法。
我简单看了一下,问题表现还是比较明显的,就是intel的显卡驱动i915出现了问题,我这里看到的最早报告error在log的687行,
Mar 09 00:39:28 prts kernel: i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
Mar 09 00:39:28 prts kernel: i915 0000:00:02.0: [drm] sddm-greeter[579] context reset due to GPU hang
Mar 09 00:39:28 prts kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85df9cff, in sddm-greeter [579]
Mar 09 00:39:28 prts kernel: i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
Mar 09 00:39:28 prts kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85dffffb
Mar 09 00:39:29 prts kernel: i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
Mar 09 00:39:29 prts kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85dffffb
Mar 09 00:39:30 prts kernel: i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out
Mar 09 00:39:30 prts kernel: i915 0000:00:02.0: [drm] ERROR rcs0 reset request timed out: {request: 00000001, RESET_CTL: 00000001}
Mar 09 00:39:30 prts kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:9edeffef, in QSGRenderThread [597]
Mar 09 00:39:40 prts kernel: Asynchronous wait on fence 0000:00:02.0:QSGRenderThread[597]:c timed out (hint:intel_atomic_commit_ready [i915])
这部分应该是开源的代码,如果你要深入研究的话甚至可以找到intel_atomic_commit_ready 这个函数(问题发生在QSGRenderThread这个线程)
如果不想深入研究的话,就把在上面的错误中找关键词丢到google里面搜索看有没有别人也遇到过类似问题,以及有没有现成的解决方案。
一个比较拼运气的做法,因为上面的error来自内核显卡驱动程序部分,可以多换几种内核看会不会好(例如linux-zen/linux-lts等),尤其注意内核的版本,不同大版本之间差异还是很大的
另外,可以描述一下你的硬件显卡型号等,增加信息可以加快问题的检索和排查
我用 intel i915 GPU hang on QSGRenderThread 这个关键词在google搜到了许多相关的信息,应该是已知问题, 在这个页面的最后有人说更新内核会好,https://bugzilla.redhat.com/show_bug.cgi?id=2027040
最后实在不行你也可以试试用关键词去问问最近大火的chatgpt /误
依云
(lilydjwg)
March 9, 2023, 3:10am
7
是显卡驱动 i915 的问题。好多 GPU hang。
我也不知道怎么办,网上也没找到完全相同的症状。可以考虑给 i915 报个 bug 。
依云
(lilydjwg)
March 9, 2023, 3:13am
8
回复完才发现 matrikslee 已经回复了啊。不过这个看上去不是已知问题,因为那个是 5.15 版本的,现在都 6.2 啦。
跟这台机子已经死磕了大半天,由于不会在原有 Arch 的基础上更改内核,于是采用了最笨的方法——重装,然而无济于事。
顺带一提,机子的 ISP 屏幕出了点问题,已经联系过商家准备退换,所以这几天会选择在台式上临时装个双系统。
目前看来,唯一的解决方案就是提 bug 了。英语能力勉勉强强还说得过去,尽量不麻烦各位,避免做个伸手党。
其实关于arch系统的常用操作,wiki上都有,建议你可以看看, wiki主页是 https://wiki.archlinuxcn.org/
关于内核的wiki页面
https://wiki.archlinuxcn.org/wiki/内核
对于普通用户而言,换内核就是换linux-xxx软件包,最基本的是官方提供的 linux 软件包,官方的教程默认用户会安装这个包
对于wiki上的右上角有‘AUR’字样的软件包,默认无法通过pacman安装,需要用aur helper例如yay/paru(这两个是官方仓库的软件,可以通过pacman安装)等
在安装了新的linux内核软件包之后,需要配置你的引导加载程序让它在启动的时候使用新的内核,参考wiki的这个页面
https://wiki.archlinuxcn.org/wiki/Arch_的启动流程#引导加载程序
依云
(lilydjwg)
March 9, 2023, 9:47am
11
yay 和 paru 不是官方仓库的软件,是 [archlinuxcn] 的。
起初我的确阅读了 Arch Wiki 上的相关条目,但实际操作中遇到了各式各样的问题,内核编译起来也得花上不少时间,于是打算之后再具体学习。
相比之下,重新安装 Arch 对我来说效率更高一些 (前后安装了将近十遍,指令都快背完了)。
此外我发现我做了一个相当愚蠢的决定,那就是没有在保存 Xorg 日志文件的情况下把系统换回了 Win 10,并将机子和配件放进包裹后准备寄给商家退换,这几天应该是提不了 bug 了……
久违地更新一波帖子:
今天下午拿到了退换后的机子,给它装上 Arch + KDE 后完美运行!看来这段时间内问题已经被开发者给解决了。
一波折腾下来,发自内心地感慨道 Arch 的 Wiki 和用户社区真是强大,让新人省走了不少弯路。
感谢依云和 matrikslee 的热心解答,谢谢你们在我手足无措的时候给予了帮助!