创建安装介质

工具:rufus
环境:windows
archlinux官网安装即可,推荐使用qBittorrent,下载速度会比直链快,毕竟是开源软件(去镜像站下载也可以)

安装

保持安装u盘不用拔出,重启进入bios设置u盘启动优先
再次重启就是arch安装u盘的界面了

Q:但是我的archlinux安装盘在不断重启啊
A:小问题,在grub选择页面按 e 然后在 linux 那一行的最后加上nomodeset来设置内核不加载容易出错的内核模块

一切顺利的话就会看到红色的archiso 接着我们输入:

archinstall  

注意:archinstall 仅支持 UEFI 系统

按照安装脚本给出的提示即可,这里提一些值得注意的

  • ssd固态硬盘用户建议使用brtfs文件系统
  • 时区手动输入的话是Asia/Shanghai
  • 要让你的系统支持休眠/睡眠的话就要让zram的大小>=物理内存

安装完成后他会询问你是否要立即重启,此时你安装的如果是nvidia的闭源驱动,我们不要立刻重启
/etc/modprobe.d/下面新建.conf结尾的配置文件屏蔽内核中自带的nouveau开源驱动
操作如下:

cd /etc/modprobe.d/  
nano blacklist.conf #系统只识别.conf的文件,所以文件名随意  

添加内容如下:

 blacklist nouveau  
 blacklist lbm-nouveau  
 options nouveau modeset=0  

即可重启

配置

amdgpu核芯显卡+nvidia私有驱动(非独显直连)配置混合模式

并不需要bumblebee/optimus-manager/nvidia-xrun这种切换工具
根据PRIME-Archwiki英文页面的说法

先识别集成GPU BusID 得到以下结果

lspci | grep -i VGA
-----------------------------------------
01:00.0 VGA compatible controller: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] (rev a1)
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne (rev c5)

然后编辑/etc/X11/xorg.conf

/etc/X11/xorg.conf
-----------------------------------------
Section "ServerLayout"
        Identifier "layout"
        Screen 0 "amdgpu"
        Inactive "nvidia"
        Option "AllowNVIDIAGPUScreens"
EndSection

Section "Device"
        Identifier "nvidia"
        Driver "nvidia"
EndSection

Section "Screen"
        Identifier "nvidia"
        Device "nvidia"
EndSection

Section "Device"
        Identifier "amdgpu"
        Driver "modesetting"
        BusID "PCI:6:0:0"
EndSection

Section "Screen"
        Identifier "amdgpu"
        Device "amdgpu"
EndSection

lightdm黑屏 在其他显示器显示

等我装完重启进入桌面后通过运行nvidia-setting报错发现我的RTX 3060并没有工作
bing搜索得解决办法 于是使用nvidia-xconfig配置/etc/X11/xorg.conf
遂重启,然后这个archlinux怎么又双叒黑屏寄了
我一开始还以为是amdgpu+nvidia的显卡配置问题
后来才发现是lightdm这玩意压根就不支持多显示屏(我使用xfce4桌面,默认使用lightdm作为登录管理器),这就导致了我的登录界面在一颗虚空显示屏上面

解决方法:如何强制多个显示器为LightDM设置正确的分辨率?
我的方法:垃圾lightdm狗都不用 遂卸载lightdm 每天使用startx启动桌面

apu加nvidia用户在双屏的时候只有单屏显示

这个东西我看了半天xorg的英文文档和archlinux的Amdgpu页面 搞得我快一口老血吐出来

按照archwiki的说法要创建/etc/X11/xorg.conf.d/20-amdgpu.conf添加如下内容:

 Section "Device"  
     Identifier "AMD"  
     Driver "amdgpu"  
 EndSection

我也给arcwiki在nvidia页面贡献了此次issue

安装输入法

我选择fcitx 毕竟这个项目的名字意思都是中文输入法
安装fcitx5:

sudo pacman -Sy fcitx5 fcitx5-chinese-addons fcitx5-configtool fcitx5-gtk fcitx5-rime fcitx5-qt

配置过程参见archwiki_fcitx5

安装yay以及timeshift备份管理软件

安装yay

sudo pacman -Sy archlinuxcn-mirrorlist
sudo pacman -Sy yay

yay安装时如果报错就尝试
原理见GnuPG-2.1 与 pacman 密钥环

pacman -Syu haveged
systemctl start haveged
systemctl enable haveged

rm -fr /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux
pacman-key --populate archlinuxcn

安装timeshift备份工具
timeshift比windows那羸弱的系统还原点高到不知道哪里去了
rsync对比更改文件建立镜像就可以一键回滚,再也不用担心系统滚挂重装的烦恼了

yay -S timeshift

更换内核

linux-zen内核是g胖支持的,对steam上的wine游戏经过了特殊的优化

sudo pacman -S linux-zen linux-zen-headers

内核名-headers这种包一定要装哦 不然定制内核的模块编译不进去的

DKMS,即 Dynamic Kernel Module System。可以使内核变更(如升级)后自动编译模块,适配新内核。

要注意使用非默认内核时部分包是不支持的需要安装dkms包
比如:
nvidia是针对默认内核的,定制内核需要安装nvidia-dkms
virtualbox-host是针对默认内核的,定制内核需要安装virtualbox-host-dkms

如果你直接换内核而不换nvidia驱动的话你在启动图形界面的时候就会发现:

xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)

(就像我一样

挂起后无法唤醒

在这里千辛万苦找到的解决办法
创建/etc/modprobe.d/添加如下内容即可:
blacklist nvidia-uvm

2022.02.04更新
经过论坛询问,解决挂起后无法唤醒的要看nvidia的文档,详见这里

    sudo systemctl enable nvidia-suspend.service

    sudo systemctl enable nvidia-hibernate.service

    sudo systemctl enable nvidia-resume.service

2022.02.06更新 我是amd笔记本,这样的休眠黑屏的bug大概率是5.15之前的linux内核bug 现在已经修复,不用管了

dwm使用配置

我懒得折腾直接使用默认官方配置

窗口管理器:dwm  
终端:st,tilda  
应用启动器:dmenu  
系统托盘:trayer  
    托盘应用:nm-applet(网络管理器)
            pasystray(声音管理器)  
            blueman-applet(蓝牙)  
            fcitx5(输入法)
            cfw(魔法上网)  

KVM虚拟机折腾

# 检测宿主机cpu是否支持虚拟化,如果flags里有vmx 或者svm就说明支持VT
grep -E "(vmx|svm)" --color=always /proc/cpuinfo

# 检查内核的KVM和VirtIO模块是否可用
zgrep KVM /proc/config.gz
zgrep VIRTIO /proc/config.gz 

# 查看内核模块是否装载
lsmod | grep kvm 
lsmod | grep virtio

# 手动加载内核模块
sudo modprobe virtio

# 当前用户加入组kvm
sudo usermod -a -G kvm YOURSUSERNAME

# 安装qemu以及图形化客户端
sudo pacman -S qemu libvirt ovmf virt-manager

# 为kvm开启网络支持
sudo pacman -S ebtables dnsmasq bridge-utils openbsd-netcat

# 启动服务
sudo systemctl enable libvirtd
sudo systemctl start libvirtd

sudo systemctl enable virtlogd
sudo systemctl start virtlogd
  • 注意事项
    每次启动虚拟机的时候都要手动启动虚拟机的网络,很麻烦
    我们在virt-manager里面右键QEMU/KVM,点击虚拟网络自动启动这一行勾选引导时

安装windows11的时候要做的工作

overview里面选择带有secboot的固件来支持windows11需要的安全启动
接着安装swtpm软件包(详见各发行版的包名)然后增加TPM设备,选择EmulatedTIS2.0

为kvm里的win10安装驱动

首先:

sudo pacman -S virtio-win

然后安装好win10后进入计算机找到已经挂载的磁盘,运行最下面的驱动安装程序即可,安装好就能体验到自动调整窗口大小和kvm的丝滑了

接下来为kvm添加文件拖拽共享功能

csdn上的各种不靠谱还互相抄,我在ubuntu论坛找到了
要下载spice驱动随后重启虚拟机即可完美实现拖放和剪贴板共享

gnome NVIDIA使用wayland

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"

sudo nano /etc/mkinitcpio.conf

MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

运行
sudo mkinitcpio -P
sudo update-grubsudo grub-mkconfig -o /boot/grub/grub.cfg

其次要看 /etc/gdm/custom.conf 里面 WaylandEnable=false 是不是被注释掉的(默认应该是)

最可能的是 udev 规则,GDM 带了一个 /usr/lib/udev/rules.d/61-gdm.rules 文件,里面有这么几行:

# disable Wayland on Hi1710 chipsets
ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"
# disable Wayland when using the proprietary nvidia driver
DRIVER=="nvidia", RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"
# disable Wayland if modesetting is disabled
IMPORT{cmdline}="nomodeset", RUN+="/usr/lib/gdm-runtime-config set daemon WaylandEnable false"

第二行表示如果检测到 NVIDIA 闭源驱动就关闭 Wayland,第三行则是如果没开启 Kernel Mode Setting 也关掉 Wayland。

我猜大部分用户都没有第一行的设备,所以我建议直接 ln -s /dev/null /etc/udev/rules.d/61-gdm.rules 屏蔽掉这个文件。

参考资料

arch简明指南
archlinux wiki
NVIDIA (简体中文)
GRUB (简体中文) - ArchWiki
mkinitcpio (简体中文) - ArchWiki
Kernel (简体中文) - ArchWiki
xinit (简体中文) - ArchWiki Xorg (简体中文) - ArchWiki