两个月前我开始使用 Arch Linux,对这个简洁并可以高度定制的系统非常喜爱,不过当时忘记记下安装和配置的过程。今天不小心把 pacman 搞坏了,想着重新装一遍 Arch Linux,顺便把用到的配置记下来,这样以后换机器或者再次重装系统就不用回忆半天了。
顺便夸赞一句 Arch Linux Wiki,感觉是我见过的最棒的 wiki。基本上遇到的 90% 的问题可以在 wiki 里找到解决方案,剩下 9.99% 的问题可以在 Arch Linux Forum 里找到解决方案,Arch Linux 社区真的非常良好!
Arch Linux 的安装
安装过程基本上和 官方文档 中描述的过程一样,不再赘述。记下几个附加的点。
sudo
Arch Linux 没有携带 sudo,需要通过 pacman -S sudo 安装。
完成安装后,编辑 /etc/sudoers 文件,把 %wheel ALL=(ALL) ALL 前的注释去掉。这样属于 wheel 用户组的用户就可以使用 sudo 操作了(使用前需要输入密码)。wheel 似乎是 Unix 类系统管理员用户组的传统名字,这里大概是方向盘的意思吧...
grub
Arch Linux 也不会自动安装 boot loader,需要用户自行选择喜欢的 boot loader 进行安装。我选择了 grub,通过 pacman -S grub 安装。
grub-install 命令的使用可以参考 Arch Linux Wiki 中的 grub 页面。
可能会出现 efibootmgr not found 的问题,通过 pacman -S efibootmgr 安装即可。
DNS 服务器
安装过程中如果需要配置 DNS 服务器,可以在 /etc/resolv.conf 里配置。
配置内容一般为一行 nameserver <dns 服务器 ip 地址> 。
图形界面
X-Server
使用 pacman -S xorg xorg-xinit 安装 X-Server 图形服务器。
i3
我个人不喜欢那些很重的桌面系统,还是 i3 窗口管理器比较符合我的口味。使用 pacman -S i3 安装。
我在 github 上开了一个 repo 存放配置文件。
终端
我使用 urxvt 终端,通过 pacman -S rxvt-unicode 安装。配置文件也在 repo 里。
想让 urxvt 变得半透明,需要 xcompmgr,通过 pacman -S xcompmgr 安装。
dmenu
安装 dmenu 之后,就可以使用 <super> + D 打开 dmenu,输入命令名称即可在新窗口执行该命令。
通过 pacman -S dmenu 安装。
字体
配置文件中使用了文泉驿微米黑(wqy-microhei)、Consolas 和 font-awesome 三种字体。其中文泉驿微米黑是中文字体,Consolas 是英文字体,font-awesome 用来显示 i3status 里的图标。
wqy-microhei 直接通过 pacman -S wqy-microhei 安装;
Consolas 有一个 AUR(AUR 的安装见 Arch Linux Wiki AUR 页面,或者见本文最底部):https://aur.archlinux.org/packages/consolas-font/
font-awesome 也有一个 AUR。注意 font-awesome5 对空格的处理有问题,建议安装 font-awesome4:https://aur.archlinux.org/packages/ttf-font-awesome-4/
ibus
使用 pacman -S ibus-pinyin 安装中文输入法。
PulseAudio
在声音方面我使用 PulseAudio 声音服务器。通过 pacman -S pulseaudio 安装。i3 的配置文件中设置了通过键盘上的音量键,利用 pactl 调整音量的功能。
屏幕亮度
我自己写了一个 脚本 控制屏幕亮度。i3 的配置文件中设置了通过键盘上的屏幕亮度键,利用这个脚本调整屏幕亮度的功能。
壁纸
使用 feh 指定壁纸图片,通过 pacman -S feh 安装。i3 的配置文件中设置了 i3 启动后自动设置壁纸图片。
截图
使用 scrot 进行截图,通过 pacman -S scrot 安装。
i3 的配置文件中设置了截图的快捷键(PrintScreen 键截全屏,<mod> + p 截一个区域,<mod> + shift + p 截当前窗口)。
截取的图片保存在 ~/Pictures 目录。
图片浏览
gpicview 是一个简单的图片浏览器,通过 pacman -S gpicview 安装。
独显兼容
nvidia-xrun
Nvidia 显卡对 Linux 操作系统的支持都相对比较糟(我的独立显卡是 GTX 1050 比较新,支持更糟),要想用上 Nvidia Optimus(英伟达擎天柱,用来切换 Intel 的集显和 Nvidia 的独显)不太容易。难怪 Linus 对 Nvidia 破口大骂。
好在 Arch Linux 下有一个非常好的解决方案:nvidia-xrun。
为了防止奇怪的冲突,建议在安装 nvidia-xrun 之前,先禁止 nvidia 驱动和 nouveau(一种开源的,尝试兼容 nvidia 显卡的驱动)的开机启动。在 /etc/modprobe.d 中添加 no-nvidia.conf 文件,文件内容为:
1 blacklist nvidia 2 blacklist nvidia_drm 3 blacklist nouveau
nvidia-xrun 也有一个 AUR:https://aur.archlinux.org/packages/nvidia-xrun/
完成以上操作后,开机时独显是不会启用的,普通的 startx 开启图形界面也只是用集显。需要通过 nvidia-xrun 开启图形界面才会启用独显。它需要 .nvidia-xinitrc 配置文件,也在我的 repo 里。
外接屏幕
我笔记本上的 HDMI 输出口是直接接到独显上的,所以只启用集显无法外接屏幕。要启用外接屏幕,可以选择插着屏幕的情况下 nvidia-xrun ;或者用 nvidia-xrun 进入图形界面后,再通过 xrandr --auto 命令自动检测并启用外接屏幕。外接屏幕内容的调整可参考 man xrandr
网络
iw
使用 iw 控制无线网卡,通过 pacman -S iw 安装。
对于无密码的无线网络,我写了一个 脚本,根据 SSID 自动选择信号最强的 AP 进行连接。
FQ
https://wiki.archlinux.org/index.php/Shadowsocks_(简体中文)
其它
禁止 beep
默认情况下,终端里进行错误输入会发出很大一声 beep,这个好像是主板上的硬件直接发出来的,所以调声音没用。在 /etc/modprobe.d 中加入 no-beep.conf 文件,内容为:
1 blacklist pcspkr
禁掉该模块就不会发出 beep 的声音了。
省电
不做其它处理的话,Linux 耗电比 Wndows 快很多,因为 Linux 下对省电做的优化比较少。
laptop_mode 工具就是一个很好的省电工具,有一个 AUR:https://aur.archlinux.org/packages/laptop-mode-tools/
默认情况下,插着电的时候 laptop_mode 是关闭的,只有用电池的时候 laptop_mode 是开启的。不过 laptop_mode 开启的时候会禁止独立显卡等设备,所以如果在不插电的情况下想用独立显卡,记得提前 laptop_mode stop 以禁用 laptop_mode,之后 laptop_mode start 再次启用即可。
laptop_mode 省电效果非常好,我的机器用上了以后,Linux 下用电池支撑的时间已经约等于 Windows 了(大概能撑 4~5 小时,之前不用 laptop_mode 只能 2 小时)。
Flash 插件
虽然 Flash 已经是快要被淘汰的技术,但是看 B 站视频什么的还是得用到 Flash 插件。通过 pacman -S flashplugin 安装 flash 插件。
时间
Windows 认为硬件时间是当地时间,而 Linux 认为硬件时间是 UTC+0 标准时间,这就很尴尬了。通过 timedatectl set-local-rtc 1 让 Linux 认为硬件时间是当地时间。
这个操作可能会改变硬件时间,之后需要去 BIOS 里调一下时间。
自动挂载
修改 /etc/fstab 文件进行开机自动挂载。这里 有对 fstab 的详细介绍。
(2018.07.14:最近更新的 LVM 似乎有奇怪的 bug,一些外部硬盘在开机自动挂载时会报错 Fail to mount, dependency failed for Local File System,但登录以后发现硬盘其实已经挂载上了。可以参考 https://bbs.archlinux.org/viewtopic.php?id=238554 的讨论。我当前使用的解决方案是在 fstab 里增加 noauto,x-systemd.automount 选项,让硬盘第一次被访问时再挂载。)
grub 识别 Windows
见 https://wiki.archlinux.org/index.php/GRUB#Dual-booting
AUR
安装 AUR 之前,首先需要安装 base-devel 组的软件包: pacman -S base-devel 。
通过 git clone 把 AUR 的代码 clone 到本地,进入目录后 makepkg -si 即可安装。