一. Basic Install
1. 系统启动方式
- 输入
ls /sys/firmware/efi/efivars
查看系统的启动方式 - 如果有输出,则为UEFI启动
2. 网络连接
ip link
查看网卡的名称等信息
有线网络
使用 dhcpcd
进行有线网络连接, 和激活无限网络dhcp功能
无线网络
- 使用
rfkill
(Radio Frequency Kill) 检查 wifi 是否被禁用
$ rfkill list
0: phy0: Wireless LAN
Soft blocked: yes // yes 为禁用, no 为未禁用(软件禁用)
Hard blocked: yes // yes 为禁用, no 为未禁用(硬件禁用)
- 如果被禁用使用
rfkill unblock wifi
取消禁用 - 使用
iwctl
进行无线网络连接
iwctl$ help
iwctl$ device list
iwctl$ station device(name) scan
iwctl$ station device(name) get-networks
iwctl$ station device(name) connect SSID(name)
- 使用
ping archlinux.org
检查网络是否可用
3. 设置系统时间 TODO
timedatectl set-ntp true
确保时钟正确, 正确则没有输出
- To check the service status, use
timedatectl status
4. 磁盘分区
磁盘规划
- EFI: 100M
- /: 100G 或者 一整块硬盘(如果是多硬盘的话)
- /home/{username}/Downloads: 剩下的空间 或 其他整块硬盘
- swap: 不设置 swap 分区
分区和格式化
lsblk
查看系统硬盘情况fdisk /dev/{disk}
用来进行磁盘分区
fdisk$ m # 查看帮助
fdisk$ g # 创建一个 GPT 分区,用来作为 EFI 分区
fdisk$ # ...
fdisk$ n # 用来创建其他分区
fdisk$ # ...
fdisk$ l # 查看支持的所有分区类型 ef(EFI 分区类型) 83(Linux 分区类型)
fdisk$ t # 来更改创建分区的分区类型
fdisk$ # NOTE: 将 GPT 分区改为 EFI 分区类型, 其余分区改为 Linux 分区类型
fdisk$ w # 保存退出
fdisk$ q # 取消修改退出
- 使用
mkfs.{format} /dev/{disk}
格式化磁盘
mkfs.vfat
格式化 EFI 分区mkfs.ext4
格式化其他分区- NOTE: 不适用 SWAP 分区
- 将根目录挂在到
/mnt
目录下, 将 EFI 分区挂载到/mnt/efi
其余目录挂在到/mnt/*
目录下
5. 系统下载与安装
- FIXME:
vim /etc/pacman.d/mirrorlist
设置安装源, 可以先使用国内的源,后面在去掉就行。Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
- 安装系统基本包
pacstrap /mnt base base-devel linux linux-headers linux-firmware man-db man-pages networkmanager vim bash-completion
-
base
-
base-devel
-
linux
-
linux-headers
-
linux-firmware
-
man-db
-
man-pages
-
networkmanager
-
vim
-
bash-completion
-
6. 生成系统自动挂载分区文件(fstab文件)
genfstab -L /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
检查写入是否正确
7. 将 root 目录由安装镜像系统切换到要安装的系统
arch-chroot /mnt
8. 时间区域设置
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 使用hwclock创建
/etc/adjtime
hwclock --systohc
9. 系统本地化设计
- 设置本地语言
vim /etc/locale.gen
找到文件中的en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
locale-gen
加载设置的语言项- 打开文件
vim /etc/locale.conf
并在里面输入一行LANG=en_US.UTF-8
- 设置主机名称
vim /etc/hostname
然后输入自己定义的主机名称(sakura
) - 设置本机地址
vim /etc/hosts
添加以下内容
127.0.0.1 localhost
::1 localhost
10. 设置 root 密码
passwd root
11. 安装 ucode
- intel-CPU
pacman -S intel-ucode
- AMD-CPU
pacman -S amd-ucode
12. bootloader
- Arch GRUB wiki
pacman -S grub efibootmgr
-
pacman -S os-prober
用来检查 windows 系统, 单系统可以不装 grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
vim /boot/grub/grub.cfg
修改GRUB_CMDLINE_LINUX_DEFAULT
变量中的参数- 去掉
quiet
log level
由 3 变为 5, 方便排错- 加入
nowatchdog
可以加快开机启动速度
- 去掉
-
grub-mkconfig -o /boot/grub/grub.cfg
- 基本系统安装完成
exit
umount -R /mnt
reboot
二. GUI
1. 创建一个普通用户
pacman -S sudo
useradd -m -g users -G wheel -s /bin/bash {username}
-m
创建用户的home目录-g
指定初始的用户组-G
指定扩展的用户组-s
指定默认的shell
- 设置密码
passwd {username}
- 设置
vim /etc/sudoers
去掉注释%wheel ALL=(ALL) ALL
2. X11
pacman -S xorg xorg-xinit xorg-xrandr
- Xorg arch wiki
- xorg is a package group
- xinit 可以手动的启动 Xorg display server。
- xorg-xrandr
pacman -S xf86-input-libinput
3. 声卡驱动
-
alsa-utils
配置复杂 -
pulseaudio
配置简单pulseaudio-bluetooth
pulseaudio-alsa
-
pipewire
新框架(使用有问题)pipewire-media-session
A very simple session managerwireplumber pipewire-pulse
pipewire-alsa pipewire-jack
一些前端配置工具 pamixer pulsemixer pavucontrol
4. 笔记本电源管理 TODO: 目前没有使用
tlp tlp-rdw
simply install it and forget itsudo systemctl enable tlp.service
sudo systemctl unmask systemd-rfkill.service
sudo systemctl unmask systemd-rfkill.socket
5. 下载 32 位的程序及添加 Chaotic-AUR(将AUR中的包编译成二进制下载)
修改 vim /etc/pacman.conf
, 取消注释
[multilib]
Include = /etc/pacman.d/mirrorlist
6. 设置 DNS
修改 vim /etc/resolv.conf
, 删除已有内容, 添加以下内容
nameserver 8.8.8.8
nameserver 2001:4860:4860::8888
nameserver 8.8.4.4
nameserver 2001:4860:4860::8844
chattr +i /etc/resolv.conf
防止该文件被重写chattr
可以设置文件的属性+i
为指定文件增加 i 属性,i 属性表示不可修改lsattr
可以查看一个文件的属性
7. 显卡驱动
- 显卡驱动文档
lspci -v | grep -A1 -e VGA -e 3D
验证显卡信息
Nvidia 显卡驱动
- NVIDIA
nvidia nvidia-settings lib32-nvidia-utils
双显卡
- NVIDIA Optimus
- 安装
mesa-demos
后,可使用glxinfo | grep "OpenGL renderer"
来查看当前使用的显卡。
Bumblebee
该方式是在通电情况下, 使用集成显卡进行显示管理, 而独立显卡进行复杂的渲染工作, 并将要显示的内容传送到集成显卡上进行显示, 当使用电池时将关闭独立显卡.
- 安装显卡驱动
- 安装bumblebee来管理独立显卡的使用
pacman -S bumblebee bbswitch
- 修改配置文件
/etc/bumblebee/bumblebee.conf
将Driver的值设置为nvidia
, 来让其使用nvidia驱动, 然后将PMMethod的值设置为bbswitch
让它使用bbswitch来管理显卡 - 将要使用Bumblebee的用户添加到bumblebee组中,
gpasswd -a username bumblebee
. - 并将bumblebeed服务设为开机启动,
systemctl enable bumblebeed
重启计算机. - 需要mesa-demos软件包, 使用
optirun glxgears -info
查看bumblebee是否正常工作, 如果有显示则代表正常工作.
当使用CUDA程序时可能bumblebee不会启动(如: python-pytorch)可以通过以下操作来进行使用CUDA程序:
- 使用
sudo tee /proc/acpi/bbswitch <<< ON
来启动nvidia - 使用
sudo rmmod nvidia nvidia_uvm nvidia_modeset
和sudo tee /proc/acpi/bbswitch <<< OFF
来关闭nvidia在使用完CUDA程序之后.
optimus-manager (recommended)
paru -S optimus-manager
sudo systemctl enable optimus-manager
- 设置optimus-manager在.xinitrc中使用
- optimus-manager-github
8. 安装字体和输入法
英文字体
-
ttf-linux-libertine ttf-dejavu ttf-ubuntu-font-family noto-fonts
中文字体
- Chinese fonts List
-
wqy-microhei
noto-fonts-cjk(Chinese, Japanese, Korean fonts)
等宽字体
- programming fonts review
-
adobe-source-code-pro-fonts
ttf-hack
ttf-monaspace-variable
图标字体
-
ttf-sourcecodepro-nerd
emoji 字体
-
noto-fonts-emoji
ttf-joypixels
Linux 本地化设置
- archlinux字体配置
en_US.UTF-8
和zh_CN.UTF-8
的区别, 程序的默认语言不同, 但字符集都是UTF-8, 可以显示的文字相同.locale.conf
文件命名格式<语言>_<地区名>.<字符编码名称>
和本地化有关的变量如下,优先级 LC_ALL > LC_*> LANG
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8" # 用于字符分类和字符串处理, 控制所有字符的处理方式, 包括字符编码, 字符是单字节还是多字节, 如何打印等
LC_NUMERIC="en_US.UTF-8" # 数字显示
LC_TIME="en_US.UTF-8" # 时间显示格式
LC_COLLATE="en_US.UTF-8" # 比较和排序习惯
LC_MONETARY="en_US.UTF-8" # 货币单位
LC_MESSAGES="en_US.UTF-8" # 用于控制程序输出时所使用的语言, 主要是提示信息, 错误信息, 状态信息, 标题, 标签, 按钮和菜单等
LC_PAPER="en_US.UTF-8" # 默认纸张尺寸大小
LC_NAME="en_US.UTF-8" # 姓名书写方式
LC_ADDRESS="en_US.UTF-8" # 地址书写方式
LC_TELEPHONE="en_US.UTF-8" # 电话号码书写方式
LC_MEASUREMENT="en_US.UTF-8" # 度量单位表达方式
LC_IDENTIFICATION="en_US.UTF-8" # 对 locale 自身包含信息的概述
LC_ALL=
安装输入法
-
fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki
- 将以下配置放入
~/.bashrc
中如果使用bash
。
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export INPUT_METHOD=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus
9. dwm
- 安装 dwm