記一次arch滾掛後,更換lts內核

##背景 由於arch的滾動升級模式,天天pacman -Syu已是一種習慣了(雖然我是使用yay的),升級過程當中會連內核一塊兒升級,但不會馬上生效,一般要等到下次重啓時纔會生效。 由於此前使用的是有一點激進的linux內核,而不是linux-lts,因此在國慶節前的某一次不知名的升級中,就出了岔子,然而當時什麼都沒發現,節後回到公司才發現開機後屏幕不亮了🤣html

##調查過程 雖然背景中提到了是由於內核的緣由,但在剛發現屏幕不亮時是不知道緣由的,只知道屏是黑的,鼠標鍵盤沒有反應,慌做一團。 好在平時會使用ssh遠程辦公,拿出surface檢查了一下發現還能連上,略微放心。 冷靜下來後開始按順序排查,首先排除了硬件線路問題。 而後用journalctl查了一下各個服務啓動的日誌,看起來一切正常。 嘗試禁用sddm,再重啓試圖進入字符界面,依然失敗,看來不是gui的問題,也不是哪一個服務啓動的問題。 以後使用dmesg查看kernel日誌,在日誌中發現了一行驅動掛掉的信息:linux

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

如今發現是驅動問題了,然而怎麼解決並不知道,詢問了其餘用arch的前輩後,獲得了換成lts內核的建議,總之先試試……ssh

##更換內核操做步驟ui

  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 rootflags=subvol=@root

改成日誌

## 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 rootflags=subvol=@root

4.修改/boot/loader/loader.conf 中的default 爲 arch-lts 5.rebootcode

這些編輯能夠直接用root權限操做,不須要額外配置文件權限htm

##至於之後…… 總之如今問題解決了,以後我大概會長期使用lts版本了吧,反正平常工做用的電腦,穩一點比較重要。 另外……感受本身好像得到了一個成就,我終於把本身的arch滾掛了一次(雖然不是什麼大問題)blog

原文出處:https://www.cnblogs.com/Eden-cola/p/11638615.htmlit

相關文章
相關標籤/搜索