Arch Linux 个人笔记

Arch Linux 笔记

作为少数的几大滚动发行版之一,Arch Linux 一直是很多人在使用的滚动更新的Linux发行版。本人在安装该发行版之后感觉需要留下一点笔记,以备不时之需,顺带分享出来。

一、下载与制作 U 盘启动盘、启动到 Live 镜像

这一步的详细操作略过不写,因为下载很简单,制作也就是一个 rufus 小工具或者一个 DD 命令的事,启动项目选择与关闭安全启动相信很多人都会。如若不然,敬请谷歌。

官方镜像地址:
https://www.archlinux.org/download/
ArchBang Linux 镜像地址(一个在官方镜像基础上加了图形界面的镜像):
https://sourceforge.net/projects/archbang/files/

二、给Live环境联网

这里使用官方镜像继续安装。

看到一个 root@archiso 开头的命令行界面表明进入了 Live 环境。默认情况下的键盘布局是 US (英语-美国),不过简体中文用户一般不需要更改键盘布局。进入 Live 环境之后首先需要配置网络,因为 Arch Linux 的安装文件需要从互联网下载。

如果你使用无线网卡,那么首先输入以下命令搜索 WiFi:

wifi-menu

如果你使用有线网络上网,那么你需要接好网线。

运行以下命令通过 DHCP 服务来获取 IP 地址:

dhcpcd

运行这个命令来查看IP地址:

ip addr

如果除了lo以外的设备获取到了IP地址,说明你的网络设置完成了。你可以随意ping一个网站试试网络是否正常。

三、安装

3.1 确认系统启动方式

首先,输入以下命令检查分区状态(l ,不是大写的 I ):

fdisk -l

如果你的硬盘(一般是 sda 或者 nvme0n1)存在一个 EFI 分区,且磁盘标签类型(Disklable type)为 GPT,那么说明该磁盘上的操作系统使用 EFI 来进行引导;如分区类型为 DOS 且没有 EFI 分区,那么说明该磁盘上的操作系统使用 BIOS 来进行引导。如果使用 UEFI 引导,那么你需要确认你的主板是否支持 UEFI 启动。可以使用以下命令来确认当前 Live 环境是否从 UEFI 启动:

ls /sys/firmware/efi/efivars

如果上述文件夹存在且存在信息,那么你的主板就能支持 UEFI,且当前 Live 环境是从 UEFI 启动的。

3.2 准备分区

Linux 系统对于分区的标识可以参考这篇文章,新型的 NVME 固态硬盘则以 nvme开头进行标识。。改动分区可以使用 fdiskParted 等工具来进行,也可以在 Windows 下使用 DiskGenius 、在图形化 Live 环境里面使用 Gnome 分区工具KDE 分区工具 等工具来完成分区。

完成分区之后需要把分区格式化。在 Linux 下,分区的格式化由 mkfs 开头的几个程序完成,Linux 操作系统的主分区可以使用 ext4、xfs、Btrfs、F2FS(仅适用于固态硬盘) 等格式一般来说,Linux 操作系统需要一个根分区即可使用。不过为了数据安全,你也可以考虑单独划分一个 Home 分区。UEFI 下启动系统还需要一个格外的 EFI 分区(ESP)。

mkfs.ext4 /dev/nvme0n1p4

把刚刚格式化的分区作为主分区进行挂载:

mount /dev/nvme0n1p4 /mnt

格式化 EFI 分区(该步骤非必须操作,一般只在新建 ESP 的时候才运行):

mkfs.vfat /dev/nvme0n1p1

挂载EFI分区到 /boot/efi 目录(仅 UEFI 启动需要):

mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi

3.3 准备软件源

我们需要修改软件源以选择最快的服务器,使用 nano 或者 vim 打开软件源配置文件:

nano /etc/pacman.d/mirrorlist

在文件开头加上至少一个中国的软件源,不过建议多添加几个:

## 中国的软件源
## 腾讯
Server = https://mirrors.cloud.tencent.com/archlinux/$repo/os/$arch
## 阿里云
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
## 清华大学
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
## 华为
Server = https://mirrors.huaweicloud.com/archlinux/$repo/os/$arch

保存退出。

3.4 安装系统

开始安装基本包。其安装包下载速度取决于你的网络与软件源配置,等命令结束之后即可进行下一步:

pacstrap /mnt base base-devel linux linux-firmware

上面的 linux是默认的内核包,它会紧随 Linux 官方的最新版本。如果你需要使用长期支持版内核请将其替换为 linux-lts这个包。

生成自动挂载分区的fstab文件(必须步骤),执行以下命令:

genfstab -L /mnt > /mnt/etc/fstab

校验文件是否生成:

cat /mnt/etc/fstab

其内容一般包含你设置的 Linux 系统的所有的分区。

然后,我们使用 arch-chroot 进入刚刚配置的新系统,以便进行一些初始化设置。

arch-chroot /mnt

安装 nano 文件编辑器:

pacman -S nano

设置时区并保存配置:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

修改 root 密码

passwd root

设置 locale,使用 nano 编辑 /etc/locale.gen ,取消 zh_CN.UTF-8 UTF-8zh_TW.UTF-8 UTF-8en_US.UTF-8 UTF-8 这三个选项的注释。

nano /etc/locale.gen

保存好,退出,然后运行:

locale-gen

新建或者编辑 /etc/locale.conf 文件,输入 LANG=zh_CN.UTF-8 然后保存,或者使用以下命令达到一样的效果。不过,如果不使用图形界面则需要把本地设置改为 LANG=en_US.UTF-8 ,这是为了 TTY 始终以英文显示(在 TTY 下,中文会显示成一个个方块或者方框)。

echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf

新建一个 /etc/hostname 文件,用于保存主机名。在文件里面直接输入你想要的主机名即可。同样的,使用 echo 命令也能达到一样的效果。

编辑 /etc/hosts 文件,设置localhost本地回环 IP 与你的主机 IP(替换下面的 hostname 为你自己设置的主机名):

127.0.0.1 localhost
::1 localhost
127.0.1.1 hostname.localdomain hostname

接下来需要安装一些软件以便启动到新系统。

安装 Intel-ucode(这个包是 Intel 平台需要,AMD 平台有自己的 ucode)。

pacman -S intel-ucode

3.5 安装启动管理器

安装基本程序:

pacman -S os-prober grub efibootmgr

安装 Grub 启动管理器:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArchLinux
grub-mkconfig -o /boot/grub/grub.cfg

如果没有报错,那么引导安装完成。

3.6 安装其它基础软件包

pacman -S vim nano openssh wget curl dialog wpa_supplicant ntfs-3g networkmanager dnsutils

上述的软件包安装完成之后我们需要配置图形化界面。

四、配置图形化环境

4.1 桌面环境

Linux 下有多种图形界面环境,不过本人喜欢使用 KDE 桌面,所以操作如下:

pacman -S xorg plasma kdebase kdeadmin kdegraphics kdeutils sddm sddm-kcm qt5-translations xf86-video-intel

开启sddm登录管理器服务:

systemctl enable sddm

如果你使用虚拟机,难么可能还需要 haveged 这个软件包以提供系统加密所需的随机数。安装之后开启服务:

systemctl enable haveged

浏览器可以使用 Firefox、Chromium 或者 Falkon ,这些都可以直接使用 pacman 安装。接下来,我们需要启用 NetworkManager 服务以便让桌面环境管理网络。

systemctl enable NetworkManager

绝大部分桌面默认不支持 root 账户登录,而且使用 root 账户进行日常操作也不安全,因此我们需要新建一个账户来使用图形界面。

使用以下命令来创建一个名为 username 的用户(请自行替换 username 为你的用户名):

useradd -m -G wheel username

给新用户设置密码:

passwd username

你可以更改 sudo 设置,使得 wheel 组或者单个用户可以通过 sudo 命令临时调用 root 权限:

nano /etc/sudoers

4.2 大黄蜂方案

大黄蜂(Bumblebee)独立显卡方案(适用于笔记本)

如果你使用只有集显的笔记本可以跳过这段。如果你使用 Intel + NVIDIA 显卡的笔记本电脑,那么你需要这个方案。因为你如果不这么做则可能会导致一系列问题,这些问题包括但是不限于注销之后无法登录、无法关机或者开关电脑缓慢等问题。

安装:

sudo pacman -S bumblebee xf86-video-nouveau

安装大黄蜂之后独显就会被设置成用户手动启用的状态,也能解决开关机缓慢的问题。不过,为了更好的性能,你可以使用闭源的官方驱动(安装闭源驱动前如果安装了开源驱动,那么你需要事先将其卸载):

sudo pacman -S bumblebee mesa nvidia nvidia-settings

必须要注意,nvidia 这个包包含的仅仅是较新版本显卡的驱动。如果你的设备比较陈旧,请参考NVIDIA驱动来安装对应版本的驱动。同时,如果你启用了32位库,你还需要安装32位的包。

不管使用了哪个版本的驱动,安装完成之后都需要把当前用户添加到大黄蜂的用户组里面:

sudo gpasswd -a username bumblebee

开启大黄蜂的后台服务:

sudo systemctl enable bumblebeed

在大黄蜂(Bumblebee)独立显卡方案下,你可以根据需要手动让一些高显卡需求的应用(比如视频渲染,游戏等)指定使用独立显卡的 GPU 来运行,具体的可以参见官方文库。 比如,使用这个命令来打开 NVIDIA 设置(仅限于官方驱动)(仅能在桌面环境下使用):

optirun -b none nvidia-settings -c :8

如果需要测试下手动调用独显处理内容,那么可以使用以下命令(仅能在桌面环境下使用):

sudo pacman -S  mesa-demos
sudo optirun glxgears -info

效果:

使用独立显卡 GPU 处理 3D 图像

退出 Chroot 环境,输入reboot命令执行重启。重启之后你应该可以登录桌面了。

4.3 配置字体与输入

安装字体与 Fcitx 输入框架:

sudo pacman -S fcitx-libpinyin kcm-fcitx fcitx-im noto-fonts noto-fonts-extra noto-fonts-emoji noto-fonts-cjk ttf-dejavu

如果想修改全局设置就改动 /etc/environment ,如果想更改单个用户的设置就新建或者修改 ~/.pam_environment 文件,然后在开头添加以下内容:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

打开系统设置,找到区域设置 > 语言,添加简体中文,保存。然后在格式区域里面选择“中国-简体中文(zh_CN)”,保存。

然后我们需要配置字体,刚刚我们已经安装好了思源字体。思源字体是由 Google 与 Adobe 联合主导的开源汉字字体项目,目前有思源黑体与思源宋体这两个项目。在 Arch Linux 下同时提供了由 Google 打包的版本(显示为 Noto 字样开头的字体)与 Adobe 打包的版本(显示为“思源”字样开头的字体)。在这里以 Google 打包的版本为例,由于思源字体包含了中国大陆、中国香港、中国台湾、日本与韩国五个地区的汉字版本。一般来说,因此我们必须通过字体配置文件来指定优先使用的字体版本。

不同版本的汉字使用者的需求不一样,以下是以中国大陆版本的字体版本为例子,新建/etc/fonts/conf.avail/64-language-selector-prefer.conf文件:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Noto Sans</family>
      <family>Noto Sans CJK SC</family>
      <family>Noto Sans CJK HK</family>
      <family>Noto Sans CJK TW</family>
      <family>Noto Sans CJK JP</family>
      <family>Noto Sans CJK KR</family>
      <family>Noto Sans Adlam</family>
      <family>Noto Sans Adlam Unjoined</family>
      <family>Noto Sans Anatolian Hieroglyphs</family>
      <family>Noto Sans Armenian</family>
      <family>Noto Sans Avestan</family>
      <family>Noto Sans Balinese</family>
      <family>Noto Sans Bamum</family>
      <family>Noto Sans Batak</family>
      <family>Noto Sans Bengali</family>
      <family>Noto Sans Brahmi</family>
      <family>Noto Sans Buginese</family>
      <family>Noto Sans Buhid</family>
      <family>Noto Sans Canadian Aboriginal</family>
      <family>Noto Sans Carian</family>
      <family>Noto Sans Chakma</family>
      <family>Noto Sans Cham</family>
      <family>Noto Sans Cherokee</family>
      <family>Noto Sans Coptic</family>
      <family>Noto Sans Cuneiform</family>
      <family>Noto Sans Cypriot</family>
      <family>Noto Sans Deseret</family>
      <family>Noto Sans Devanagari</family>
      <family>Noto Sans Egyptian Hieroglyphs</family>
      <family>Noto Sans Ethiopic</family>
      <family>Noto Sans Georgian</family>
      <family>Noto Sans Glagolitic</family>
      <family>Noto Sans Gothic</family>
      <family>Noto Sans Gujarati</family>
      <family>Noto Sans Gurmukhi</family>
      <family>Noto Sans Hanunoo</family>
      <family>Noto Sans Hebrew</family>
      <family>Noto Sans Imperial Aramaic</family>
      <family>Noto Sans Inscriptional Pahlavi</family>
      <family>Noto Sans Inscriptional Parthian</family>
      <family>Noto Sans Javanese</family>
      <family>Noto Sans Kaithi</family>
      <family>Noto Sans Kannada</family>
      <family>Noto Sans Kayah Li</family>
      <family>Noto Sans Kharoshthi</family>
      <family>Noto Sans Khmer</family>
      <family>Noto Sans Lao</family>
      <family>Noto Sans Lepcha</family>
      <family>Noto Sans Limbu</family>
      <family>Noto Sans Linear B</family>
      <family>Noto Sans Lisu</family>
      <family>Noto Sans Lycian</family>
      <family>Noto Sans Lydian</family>
      <family>Noto Sans Malayalam</family>
      <family>Noto Sans Mandaic</family>
      <family>Noto Sans Meetei Mayek</family>
      <family>Noto Sans Mongolian</family>
      <family>Noto Sans Myanmar</family>
      <family>Noto Sans Nabataean</family>
      <family>Noto Sans New Tai Lue</family>
      <family>Noto Sans NKo</family>
      <family>Noto Sans Ogham</family>
      <family>Noto Sans Ol Chiki</family>
      <family>Noto Sans Old Italic</family>
      <family>Noto Sans Old North Arabian</family>
      <family>Noto Sans Old Persian</family>
      <family>Noto Sans Old South Arabian</family>
      <family>Noto Sans Old Turkic</family>
      <family>Noto Sans Oriya</family>
      <family>Noto Sans Osage</family>
      <family>Noto Sans Osmanya</family>
      <family>Noto Sans Phags Pa</family>
      <family>Noto Sans Phoenician</family>
      <family>Noto Sans Rejang</family>
      <family>Noto Sans Runic</family>
      <family>Noto Sans Samaritan</family>
      <family>Noto Sans Saurashtra</family>
      <family>Noto Sans Shavian</family>
      <family>Noto Sans Sinhala</family>
      <family>Noto Sans Sundanese</family>
      <family>Noto Sans Syloti Nagri</family>
      <family>Noto Sans Symbols</family>
      <family>Noto Sans Syriac Eastern</family>
      <family>Noto Sans Syriac Estrangela</family>
      <family>Noto Sans Syriac Western</family>
      <family>Noto Sans Tagalog</family>
      <family>Noto Sans Tagbanwa</family>
      <family>Noto Sans Tai Le</family>
      <family>Noto Sans Tai Tham</family>
      <family>Noto Sans Tai Viet</family>
      <family>Noto Sans Tamil</family>
      <family>Noto Sans Telugu</family>
      <family>Noto Sans Thaana</family>
      <family>Noto Sans Thai</family>
      <family>Noto Sans Tibetan</family>
      <family>Noto Sans Tifinagh</family>
      <family>Noto Sans Ugaritic</family>
      <family>Noto Sans Vai</family>
      <family>Noto Sans Yi</family>
      <family>Noto Color Emoji</family>
      <family>EmojiOne</family>
    </prefer>
  </alias>
  <!--Sans fonts configuration finished-->
  <alias>
    <family>serif</family>
    <prefer>
      <family>Noto Serif</family>
      <family>Noto Serif CJK SC</family>
      <family>Noto Serif CJK TW</family>
      <family>Noto Serif CJK JP</family>
      <family>Noto Serif CJK KR</family>
      <family>Noto Serif Ahom</family>
      <family>Noto Serif Armenian</family>
      <family>Noto Serif Bengali</family>
      <family>Noto Serif Devanagari</family>
      <family>Noto Serif Georgian</family>
      <family>Noto Serif Gujarati</family>
      <family>Noto Serif Kannada</family>
      <family>Noto Serif Khmer</family>
      <family>Noto Serif Lao</family>
      <family>Noto Serif Malayalam</family>
      <family>Noto Serif Tamil</family>
      <family>Noto Serif Telugu</family>
      <family>Noto Serif Thai</family>
      <family>Noto Color Emoji</family>
      <family>EmojiOne</family>
    </prefer>
  </alias>
  <!--Serif fonts configuration finished-->
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Noto Sans Mono</family>
      <family>Noto Sans Mono CJK SC</family>
      <family>Noto Sans Mono CJK HK</family>
      <family>Noto Sans Mono CJK TW</family>
      <family>Noto Sans Mono CJK JP</family>
      <family>Noto Sans Mono CJK KR</family>
      <family>Noto Color Emoji</family>
      <family>EmojiOne</family>
    </prefer>
  </alias>
  <!--MonoSpace fonts configuration finished-->
</fontconfig>

保存文件。若/etc/fonts目录下有 conf.d 目录,则在该目录中创建指向 /etc/fonts/conf.avail/64-language-selector-prefer.conf 的同名软链接:

sudo ln -s /etc/fonts/conf.avail/64-language-selector-prefer.conf /etc/fonts/conf.d/64-language-selector-prefer.conf

最后刷新字体缓存:

fc-cache --force --verbose

进入桌面或者应用软件自身的字体设置,把默认字体设置为 Noto Sans,一般不建议直接设置字体为中文字体。Mono(等宽)字体可以设置为 Noto Sans Mono(注意不是 Noto Mono)。

home 目录默认没有我们常见的几个文件夹,如果需要,那么打开终端,输入以下命令以生成在 home 目录的几个默认文件夹:

sudo pacman -S xdg-user-dirs
xdg-user-dirs-update --force

4.3 蓝牙

如果你的电脑有蓝牙,那么你需要开启蓝牙服务:

安装蓝牙管理的相关包:

sudo pacman -S bluez-utils bluez

然后开启服务:

sudo systemctl enable bluetooth
sudo systemctl start bluetooth

系统的基本安装到此结束。

4.4 Arch Linux CN 软件源(可选步骤)

Arch Linux CN 软件源是国内爱好者的一个项目,提供了一些中文软件(比如 WPS 、网易云音乐等)。本人写过一篇在 Manjaro 上使用该软件源的方法,不过,由于 Arch Linux 没有 Manjaro 那样的 Pacman GUI 前端,我们需要使用命令行来解决一切问题。

进入 Pacman 的服务器列表目录

cd /etc/pacman.d/

然后我们从 Arch Linux CN 软件源的 GitHub 上下载服务器列表。输入以下命令:

sudo wget https://raw.githubusercontent.com/archlinuxcn/mirrorlist-repo/master/archlinuxcn-mirrorlist

默认情况下,该列表没有开启任何的服务器。我们需要编辑一下,启用至少一个服务器:

sudo nano archlinuxcn-mirrorlist

推荐清华大学与腾讯云的源,当然具体使用那个因情况而定。如果你在国外建议使用官方 CDN 源。

保存之后,我们需要编辑 Pacman 的设置文件:

sudo nano /etc/pacman.conf

在该文件末尾加上:

[archlinuxcn]
Include = /etc/pacman.d/archlinuxcn-mirrorlist

保存之后,我们需要刷新软件库,然后安装 Arch Linux CN 源的密钥包:

sudo pacman -S archlinuxcn-keyring

然后你就可以安装网易云音乐与 WPS 这样的软件了。

本段参考
1、https://www.viseator.com/2017/05/19/arch_setup/
2、Haveged
3、Arch Linux 关于 KDE 的说明
4、Arch Linux 文档关于简体中文的设置
5、Arch Linux 关于 bumblebee 的说明
6、SDDM
7、维基百科上关于 Noto Fonts 的信息

推荐浏览:
1、https://www.jianshu.com/p/7b187c515d77
2、关于思源字体

五、界面美化(可选步骤)

5.1 统一 GTK 与 Qt 程序的外观

从 Arch Linux CN 源里面安装 tela-icon-theme-git 这个包,从而获取新的图标,然后在 系统设置 > 图标 里面应用。注意,该图标包提供多个主基调颜色的图标。

然后转到 系统设置 > 应用程序风格 ,再转到 GNOME/GTK 应用程序风格 ,把 GTK 主题全部设置为 Breeze ,把 GTK 的图标包设置为与 KDE 所使用的一致。

光标主题也应该设置为一样,在 系统设置 > 工作空间主题 里面与 GNOME/GTK 应用程序风格 里面设置同样的鼠标光标。

5.2 桌面特效

打开 系统设置 > 桌面行为 ,在 屏幕特效 里面打开 魔灯 效果;然后转到 系统设置 > 应用程序风格 > 部件风格 ,接着配置 微风 的部件样式,给菜单使用一定的透明度。

5.3 pacman 的彩色输出

编辑 /etc/pacman.conf ,去掉 color 那一项目的注释。这样,pacman 就会以彩色输出结果,以免某些时候烟花缭乱。

截图

六、软件安装(可选步骤)

6.1 腾讯 TIM

该软件的一些资料来源于 Deepin 系统项目组的努力,是他们通过 Wine 项目给我们带来了在 Linux 上使用 Windows 软件的可能性。该软件需要从 AUR 安装。首先,我们安装 AUR 的管理工具 yay

sudo pacman -S yay

我们需要启用 32 位仓库来安装 Wine,在 /etc/pacman.conf 里面把 multilib 启用,然后刷新软件库信息,最后安装 Wine:

sudo pacman -S wine wine-mono wine_gecko

安装完成之后,我们从 AUR 安装 TIM :

yay -S deepin-wine-tim

安装之时必须注意程序的提示,然后等待安装完成即可。安装完成之后点击程序列表里面的 TIM 图标,TIM 的安装向导会自动运行,注意,在这里把添加快捷方式与开机启动都去掉。

TIM.png

如果使用高分辨率屏幕,那么运行以下命令以设置 DPI,100% 之时的 DPI 是 96,因此,所需要的 DPI 请自己计算。笔者的屏幕缩放是 1.5 ,所以把 DPI 设置为 144.

env WINEPREFIX="$HOME/.deepinwine/Deepin-TIM" winecfg
Screenshot_20190519_205222.png

同时记得修改文件夹映射,否则程序可能工作不正常。

Screenshot_20190709_080002.png

本段参考

  1. AUR上 的安装包页面
  2. 打包者的 GitHub 主页
  3. HiDPI 设置
    4.开发者打包好的安装包

6.2 网易云音乐

该软件有原生 Linux 版本,可以直接从 Arch Linux CN 源安装:

yay -S netease-cloud-music

6.3 网页浏览器

直接用 pacman 安装即可。不过,为 KDE 优化的 Firefox 需要从 AUR 或者 Arch Linux CN 源安装。

yay -S firefox-kde-opensuse

或者

yay -S firefox-kde-opensuse-bin

6.4 微信

与 TIM 一样,微信也是在 WINE 下的 Windows 程序。

yay -S deepin-wine-wechat

与 TIM 一样,安装完成之后也需要根据自己的需要修改映射文件夹与 DPI 设置。

env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" winecfg  

本段参考
1.AUR 上的安装包网页
2.开发者打包好的安装包

6.5 其他操作

clash 这个包是个好东西,ClashY 这个 AppImage 也是个好东西。

七. 硬件解码加速

Linux 平台支持硬件解码加速,其中以 Intel HD 显卡平台为最佳。不过,一个惨烈的现实是目前没有一个网页浏览器的官方版本是支持 Linux 下的硬件解码加速的,我们只能安装第三方开发者的 chromium-vaapi 来使用硬件解码加速功能。
首先安装硬件加速驱动。Intel 平台需要以下两个驱动之一,具体的可以参考 Arch Linux Wiki:

yay -S intel-media-driver   # Intel 芯片六代以及六代以上推荐使用此驱动

或者

yay -S libva-intel-driver  # Intel 芯片六代以及六代以下(不含六代)推荐使用此驱动

安装 libva-utils
这个软件包,然后使用vainfo来检查下硬件加速信息。

Screenshot_20190721_090836.png

VLC 播放器、MPV 以及基于 MPV 的播放器(如 SMplayer )对硬件解码加速支持最好。如:
Screenshot_20190720_202716.png

至于在浏览器方面就没的选了,只能安装 chromium-vaapi(AUR)或者 chromium-vaapi-bin (AUR)之一,前者是从代码自己编译,后者是已经编译好了的安装包。

sudo pacman -S chromium-vaapi  ##这个命令会从 Arch Linux CN 源安装该浏览器

也可以直接下载编译好了的安装包来安装:

sudo pacman -U chromium-vaapi-<版本号>-x86_64.pkg.tar.xz

安装完成之后打开 Chromium,输入 chrome://flags,然后启用 ignore-gpu-blacklist

然后编辑配置文件:

nano ~/.config/chromium-flags.conf

在里面输入:

--enable-accelerated-mjpeg-decode
--enable-accelerated-video

重启 Chromium 浏览器,打开一个高清视频试试吧。以下是 chromium-vaapi 与一个没有硬件加速的浏览器的对比:


Screenshot_20190720_201028.png
Screenshot_20190720_201301.png

如果需要播放加密内容,那么你需要从 AUR 安装 chromium-widevine 这个包。但是,安装这个包需要从谷歌下载许可协议的文本,so你懂的。

本段参考
1.chromium-vaapi
2.chromium-vaapi-bin
3.开发者打包好的安装包