加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

记一次arch滚挂后,更换lts内核

发布时间:2020-12-14 00:17:53 所属栏目:Linux 来源:网络整理
导读:背景 因为arch的滚动升级模式,每天pacman -Syu已经是一种习惯了(虽然我是使用yay的),升级过程中会连内核一起升级,但不会立刻生效,通常要等到下次重启时才会生效。 因为此前使用的是有一点激进的linux内核,而不是linux-lts,所以在国庆节前的某一次不

背景

因为arch的滚动升级模式,每天pacman -Syu已经是一种习惯了(虽然我是使用yay的),升级过程中会连内核一起升级,但不会立刻生效,通常要等到下次重启时才会生效。
因为此前使用的是有一点激进的linux内核,而不是linux-lts,所以在国庆节前的某一次不知名的升级中,就出了岔子,然而当时什么都没发现,节后回到公司才发现开机后屏幕不亮了??

调查过程

虽然背景中提到了是因为内核的原因,但在刚发现屏幕不亮时是不知道原因的,只知道屏是黑的,鼠标键盘没有反应,慌作一团。
好在平时会使用ssh远程办公,拿出surface检查了一下发现还能连上,略微放心。
冷静下来后开始按顺序排查,首先排除了硬件线路问题。
然后用journalctl查了一下各个服务启动的日志,看起来一切正常。
尝试禁用sddm,再重启试图进入字符界面,依然失败,看来不是gui的问题,也不是哪个服务启动的问题。
之后使用dmesg查看kernel日志,在日志中发现了一行驱动挂掉的信息:

[    3.507498] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x30c/0x350 [drm]

现在发现是驱动问题了,然而怎么解决并不知道,询问了其他用arch的前辈后,得到了换成lts内核的建议,总之先试试……

更换内核操作步骤

  1. 安装linux-lts 和 linux-lts-headers 这两个包,直接pacman即可
  2. 在/boot/loaders/entries里面,复制出arch.conf的文件到arch-lts.conf(也可能叫linux.conf,名字不重要)
  3. 编辑刚刚复制出来的arch-lts.conf,把其中的内核指向修改为lts版本
## This is just an example config file.
## Please edit the paths and kernel parameters according to your system.

title   Arch Linux
linux   /vmlinuz-linux
#initrd  /intel-ucode.img
initrd  /initramfs-linux.img
options root=/dev/nvme0n1p2 rw add_efi_memmap [email?protected]

改为

## This is just an example config file.
## Please edit the paths and kernel parameters according to your system.

title   Arch Linux
linux   /vmlinuz-linux-lts
#initrd  /intel-ucode.img
initrd  /initramfs-linux-lts.img
options root=/dev/nvme0n1p2 rw add_efi_memmap [email?protected]

4.修改/boot/loader/loader.conf 中的default 为 arch-lts
5.reboot

这些编辑可以直接用root权限操作,不需要额外配置文件权限

至于以后……

总之现在问题解决了,之后我大概会长期使用lts版本了吧,反正日常工作用的电脑,稳一点比较重要。 另外……感觉自己好像获得了一个成就,我终于把自己的arch滚挂了一次(虽然不是什么大问题)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读