春天,又到了程序员和ArchLinux交尾的时间。
原因是这样的,因为傻逼Win11各种奇奇怪怪的Bug、卡顿并且在移动办公过程中耗电量惊人,所以不得不把原本装在移动硬盘里的学习版Arch给迁移到内置硬盘内。还有就是,一些开发程序在Linux下的兼容性要远好于Windows,所以干脆装双系统当生产力了,然后让Win11成为 “SteamOS”。
此文章主要面向Y9000X安装Archlinux, 涉及到Y9000X的一些特殊适配问题,但是基本上通用。 主要还是方便我下次炸了,重装系统,看看怎么适配的。
引导U盘用的是Ventory,不再赘述。
基本系统安装 首先,进入我们亲爱的archiso内,进行系统的初始化配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 步骤1 - 当我们启动电源时,BIOS(基本输入/输出系统)或UEFI(统一可扩展固件接口)固件从非易失性存储器加载,并执行POST(上电自检)。 步骤2 - BIOS/UEFI检测连接到系统的设备,包括CPU、RAM和存储。 步骤3 - 选择一个启动设备以从中引导操作系统。这可以是硬盘、网络服务器或光盘驱动器。 步骤4 - BIOS/UEFI运行引导加载程序(GRUB),该加载程序提供一个菜单,用于选择操作系统或内核功能。 步骤5 - 内核准备好后,我们现在切换到用户空间。内核启动systemd作为第一个用户空间进程,它管理进程和服务,探测所有剩余的硬件,挂载文件系统,并运行桌面环境。 步骤6 - systemd默认在系统引导时激活默认的.target单元。其他分析单元也会被执行。 步骤7 - 系统运行一系列启动脚本并配置环境。 步骤8 - 用户被呈现出登录窗口。系统现在已经准备就绪。 内容转自知乎,找不到原文链接了,十分抱歉。
从上述说明我们可以得出,由于BIOS/UEFI等是已经完备的,我们只需要提供bootloader、OS系统内核入口即可。
综上所述,我们安装系统所做的任务实际上只是制作一个bootloader及OS系统内核入口。
磁盘分区 一切的一切追究还是存储在磁盘上,我们需要先从磁盘的分区开始操作。没有磁盘操作,我们无法存储重要的bootloader和内核文件。
这里我比较喜欢的工具是 cfdisk。
通过 lsblk
查看磁盘情况
1 2 3 4 5 6 7 8 9 10 11 12 13 ❯ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 260M 0 part ├─nvme0n1p2 259:2 0 16M 0 part ├─nvme0n1p3 259:3 0 200G 0 part ├─nvme0n1p4 259:4 0 274.7G 0 part └─nvme0n1p5 259:5 0 2G 0 part nvme1n1 259:6 0 953.9G 0 disk ├─nvme1n1p1 259:7 0 16M 0 part ├─nvme1n1p2 259:8 0 390.7G 0 part ├─nvme1n1p3 259:9 0 4G 0 part └─nvme1n1p4 259:10 0 559G 0 part
选择某一个待安装磁盘进行安装
分区不需要关注在哪个盘,只需要关注能够挂载哪些分区即可。
分区需求:
boot分区 (1-2GB,无特殊需求则留一些就行,type为UFEI System)
其他分区(除了根目录其他都可选)
上述的boot分区即是bootloader的存放位置,且其中也会放入内核文件,作为os的内核加载入口;根分区则为你要存放系统文件还有用户文件的地方(可以再单独创建一个home分区)。具体不再赘述,每个人有自己的分配喜好。
分区格式化
boot分区需要格式化为 exFAT 格式,其他的可以自行选择,我选择的是Btrfs支持快照,性能强大。
分区挂载 想要持久性地存储肯定是需要储存在硬盘上的,我们需要挂载上我们刚刚分配的分区,并将系统写入硬盘内。
挂载不再赘述,需要注意分区的类型的影响,尤其是btrfs需要挂载子卷的情况。
根分区挂载在 /mnt,boot分区挂载在 /mnt/boot。
GRUB2的安装–安装bootloader
还是先 pacman -Syu 下(可以提前还源); 可以选择先测速以下:
1 reflactor --sort rate -c China -l 200 --verbose --save /etc/pacman.d/mirrorlist
安装grub2到boot分区:
1 grub-install --efi-directory=/mnt/boot --target=x86_64-efi --bootloader-id=想叫啥叫啥
系统内核及相关配置 此时生成同等重要的操作系统核心文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # 下次联网用 pacstrap /mnt networkmanager# 系统重要库 pacstrap /mnt base linux linux-firmware base-devel grub# intel微码(可选) pacstrap /mnt intel-ucode# 切换到 /mnt 下 arch-chroot /mnt# 添加你的用户到sudo (wheel)组 useradd -m -G whell xxx# 别忘了设置密码 passwd# 本地化配置,这里我按照英文来,不然可能会出现中文路径等,我懒得管 vim /etc/locale.gen #取消en_US.UTF-8的注释 echo 'LANG=en_US.UTF-8' > /etc/locale.conf# 修改主机名 nano /etc/hostname# 生成引导配置文件,让grub可以找到你的内核入口 grub-mkconfig -o /boot/grub/grub.cfg exit# 生成自动挂载文件 genfstab -U /mnt > /mnt/etc/fstab
桌面环境配置 操作完上述步骤后,就可以重启进入系统了。但是伟大的arch用户是需要自己安装桌面环境的。
此文章使用的是kde+wayland,环境为mux方案下的intel+nvidia混显笔记本。
首先,安装intel的核显驱动,我们暂且搁置傻逼nvidia驱动,把他放在兼容性问题部分介绍;
1 sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
然后,安装plasma环境;
1 2 3 4 5 6 7 pacman -Syu pacman -S plasma-meta #安装完整的plasma pacman -S plasma-workspace xdg-desktop-portal# N卡用户需要额外安装egl-wayland,xdg-desktop-portal包是为了如obs此类工具录制屏幕使用 # xdg-desktop-portal包组提供了不同环境下使用的软件包 # 例如kde用户可选择xdg-desktop-portal-kde包 systemctl enable sddm
然后就可以进入桌面了,其他配置不再赘述。
需要注意的是fcitx5输入法安装后,可以从系统设置里添加激活,然后在特定文件内写入传统的输入法配置信息,这样子才能在控制台等地方调出输入法。
Y9000X兼容性问题 声音问题 先安装一些声音固件相关的模块。
1 sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf
然后即使你通过alsa手动开启了扬声器,仍然会发现有声音输出但是扬声器没有声音。
去Arch Forum可以看到有人发表了相关的问题,是因为Y9000X在声音输出与扬声器间有一个功放模块,这个功放模块应该是与杜比音效相关的,如果没有相关的驱动,功放模块无法运作,导致没有实际的声音输出。
得益于有位老哥手动从这个功放模块的开源库做了一个dkms版的补丁,现在可以爽用了。
可以使用yay一键安装这个aur包,其他方式自行搜索这个包。
1 yay -S legion-y9000x-2022-iah7-sound-fix-dkms
MUX方案支持问题(混显/独显) 1 2 # 驱动不再赘述,自行选择开源还是闭源的,需要注意zen等自定内核,需要使用dkms版本(一定要安装对应的headers) yay -S optimus-manager
具体的情况可以看我之前的Blog,目前的问题是独显模式下,无法进入桌面吗,但是仍然可以启动其他应用程序。主要还是Optimus-Manger识别不到核显,就直接崩了。
等完美解决了再续写。linux-wechat-qt
睡眠后,GPU进入深度睡眠状态无法唤醒 设置一定时间后进入睡眠状态,可能会导致NVIDIA GPU进入深度睡眠状态,从而无法唤醒,进入SDDM的登陆界面后,会直接卡住,也无法进入TTY,只能进行长按电源强制关机。
调出系统日志后,可以看到类似这种语句:
1 drm error failed to read dpcd register 0x60
这个问题在2022年已经有人讨论过了,他们给出的解决方案是去更新以下bios,最新的bios可能修复了这个问题,但是我的bios已经是最新的了。
我发现,我没有在内核参数中增加 ibt=off
可能是这个问题。
1 2 3 摘自Arch Wiki-Nvidia页 Note: 470xx and older drivers may not function correctly on Linux 5.18 (or later) on systems with Intel CPUs 11th Gen and newer[dead link 2024-07-30 ⓘ] due an incompatibility with Indirect Branch Tracking. You can disable it by setting the ibt=off kernel parameter from the boot loader. Be aware, this security feature is responsible for mitigating a class of exploit techniques.
工具配置 Office可以用LibreOffice或者去官网下载OnlyOffice的app image。OnlyOffice是只负责兼容Ubuntu的,其他系统不进行兼容配置,在arch下是无法过编译的,因为各种配置问题,所以还是老老实实app image吧。
1 2 3 4 # clash yay -S clash-verge-rev# 备份软件 yay -S timeshift
其他软件不再赘述,qq用linuxqq,wechat用wechat-uos-qt。
后记 在这场Arch安装+完全配置竞速中,我取得了一天的好成绩。
一次grub install后忘记grub-mkconfig了,一次忘记mount boot了,一次忘记下载联网工具了,一次忘记设置用户密码了。
我是Arch低手😭😭😭。