Arch Linux安装+KDE桌面+双显卡驱动一站式解决方案

Arch Linux简介

A simple, lightweight distribution

官网https://www.archlinux.org/
维基百科https://zh.wikipedia.org/wiki/Arch_Linux

Arch Linux安装

Arch Linux安装有一定难度,不想倒腾命令的话也可以直接选择manjaro,使用图形化界面进行安装,且manjaro提供了mhwd驱动程序管理器可以方便的安装驱动,另外说一下Arch Wiki是个好东西,内容丰富文档详尽。

安装前的准备

下载并校验安装镜像

安装文件和它的 GnuPG 签名可以从下载页面获取。

在一台已经安装 GnuPG 的系统上,通过下载 PGP 签名 (under Checksums) 到 ISO 文件所在的路径,可以通过以下方式验证

# gpg --keyserver pgp.mit.edu --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig

另外,在一台已经安装 Arch Linux 的计算机上可以通过以下方式验证:

# pacman-key -v archlinux-version-x86_64.iso.sig

刻录u盘

这一步有很多选择可以使用Ultra ISO、etcher等工具进行刻录制作启动盘,具体使用可百度这里就不赘述了。

下面说一下Linux下使用命令进行u盘刻录:
查看u盘

# sudo fdisk -l

使用dd命令进行刻录

# dd bs=4M if=/path/to/archlinux.iso of=/dev/sdb status=progress oflag=sync

其中,/path/to/archlinux.iso为arch镜像路径,/dev/sdb为上一步中查看的u盘分区,使用oflag来控制输出(写入数据)时的行为特征,确保命令结束时数据及元数据真正写入磁盘 而不是刚写入缓存就返回,status=LEVEL用来控制dd程序的输出信息的,LEVEL有三个选项“none”,“noxfer”和“progress”,默认是“progress”,“none”的意思是不输出任何相关信息,除非出错信息,“noxfer”不会输出最后的统计信息,而“progress”会输出所有信息。

开始安装

开机进入bios关闭Secure Boot并设置UEFI启动为u盘启动。

验证启动模式

如果以在 UEFI 主板上启用 UEFI 模式,Archiso 将会使用 systemd-boot启动 Arch Linux。可以列出 efivars 目录以验证启动模式:

# ls /sys/firmware/efi/efivars

网络连接

执行:

# wifi-menu

选择wifi进行联网,或直接网线连接,如果没有连接可以尝试:

# systemctl enable dhcpcd
# systemctl start dhcpcd

ping 检查网络连接:

# ping www.baidu.com

更新系统时间

使用 timedatectl(1) 确保系统时间是准确的:

# timedatectl set-ntp true

使用 timedatectl status 检查服务状态。

切换国内源

# vim /etc/pacman.d/mirrorlist

输入/ChinaEnter进行搜索找到中科大USTC的源按2dd剪切后按gg回到文件头部再将光标向下移动在列表头部按p黏贴科大源后保存退出即可

分区

使用 lsblk 或者 fdisk 查看分区:

# lsblk

可以看到硬盘设备,可能为/dev/sda/dev/nvme01之类的,具体视自己设备而定。

# parted /dev/sdx # sdx为目标磁盘

以下是交互过程:

(parted) mktable
New disk label type? gpt
(parted) quit

开始分区之前,这里贴一下wiki中的分区示例:

BIOS 和 MBR
挂载点 分区 分区类型 建议大小
/mnt /dev/sd*X*1 Linux 剩余空间
[SWAP] /dev/sd*X*2 Linux swap (交换空间) 大于 512 MiB
UEFI with GPT
挂载点 分区 分区类型 建议大小
/mnt/boot or /mnt/efi /dev/sd*X*1 EFI 系统分区 256–512 MiB
/mnt /dev/sd*X*2 Linux x86-64 根目录 (/) 剩余空间
[SWAP] /dev/sd*X*3 Linux swap (交换空间) 大于 512 MiB

这里我的分区方案是EFI分区512M、交换空间8G、根目录剩余空间
使用cfdisk命令执行分区

# cfdisk /dev/sdx # sdx 为目标磁盘

新建分区:
[↑]/[↓](方向键)选中 Free space(空闲空间)
[←]/[→](方向键)选中 New 新建分区
[←]/[→](方向键)选中 Type 选择分区类型(默认为 Linux filesystem;对于 EFI 系统分区选择 EFI System)
输入分区大小(默认单位为字节,可以加上后缀K、M、G),[回车键] 确认
写入分区表:
[←]/[→](方向键)选中 Write
输入 yes [回车] 确定写入

格式化分区

首先使用 lsblkfdisk -l 确定目标磁盘及目标分区。

# mkfs.fat  /dev/sdax      # 格式化EFI分区
# mkfs.ext4 /dev/sdax    # 格式化根分区
# mkswap /dev/sdax      # 格式化交换分区
# swapon /dev/sdax       # 打开swap分区

挂载分区

注意:是有顺序的需要先挂载根分区

# mount /dev/sdax /mnt  # 将根分区挂载到/mnt
# mkdir /mnt/boot
# mkdir /mnt/boot/EFI
# mount /dev/sdax /mnt/boot/EFI  # 将EFI分区挂载到/mnt/boot/EFI 

安装基本系统

# pacstrap /mnt base  # 基础包
# pacstrap /mnt base-devel # 基础开发包

配置系统

生成分区表

# genfstab -U /mnt >> /mnt/etc/fstab

检查生成的 /mnt/etc/fstab 文件是否正确

# cat /mnt/etc/fstab

切换到新系统

# arch-chroot /mnt

时区

# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

硬件时间设定

# hwclock --systohc --utc

本地化

本地化的程序与库若要本地化文本,都依赖 Locale,后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置:locale.genlocale.conf

/etc/locale.gen 是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移除对应行前面的注释符号()即可,建议选择带 UTF-8 的项:

# pacman -S vim
# vim /etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

接着执行 locale-gen 以生成 locale 讯息:

# locale-gen

创建 locale.conf 并编辑:

/etc/locale.conf
LANG=zh_CN.UTF-8
LANG=en_US.UTF-8

网络

创建 hostname 文件:

/etc/hostname
myhostname

添加对应的信息到 hosts:

/etc/hosts
127.0.0.1   localhost
::1     localhost
127.0.1.1   myhostname.localdomain  myhostname

无线网络连接

pacman -S iw wpa_supplicant dialog

有线网络连接

# systemctl start dhcpcd
# systemctl enable dhcpcd

root密码

# passwd root

安装微码

pacman -S intel-ucode

安装引导程序

# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=grub
# grub-mkconfig -o /boot/grub/grub.cfg

重启

# exit # 退回安装环境
# umount -R /mnt # 卸载新分区
# reboot # 重启

至此arch已安装完毕

参考
Installation guide (简体中文)
【真机2019】超详细手把手最新版ArchLinux安装教程
Arch Linux 2019版 安装参考文档
ArchLinux安装图文教程

KDE桌面环境安装

配置国内源

# vim /etc/pacman.conf

在文档末尾添加

[multilib]
Include = /etc/pacman.d/mirrorlist
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

更新软件仓库

# pacman -Sy

安装 archlinuxcn-keyring 包以导入 GPG key

pacman -S archlinuxcn-keyring

硬件接口服务

# pacman -S xorg xorg-server

核显驱动

查看显卡型号

# spci | grep -e VGA -e 3D

安装核显驱动

# pacman -S xf86-video-intel # intel
# pacman -S xf86-video-ati # amd

输入设备

# pacman -S xf86-input-libinput

触摸板驱动

# pacman -S xf86-input-synaptics

安装显示管理器

KDE推荐使用SDDM作为显示管理器

# pacman -S sddm sddm-kcm
# systemctl enable sddm # 设置SDDM自启动否则无法启动桌面

安装kde桌面

# pacman -S plasma kdebase

kdebase包括 dolphinkate kdialogkeditbookmarkskfindkhelpcenterkonquerorkonsolekwrite,还可以安装kde-applications其包含的软件更多

中文字体

安装KDE桌面后实际已安装上Google的noto字体,当然也可选择文泉驿或思源黑体

sudo pacman -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai ttf-arphic-uming adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts 

安装声音软件包

pacman -S alsa-utils pulseaudio pulseaudio-alsa

添加非root用户

KDE桌面环境需要非root用户才能登录

# useradd -m -g users -G wheel -s /bin/bash archuser
# passwd archuser

使用visudo命令,找到%wheel,并将注释放开

# visudo

安装中文输入法

pacman -S fcitx fcitx-rime fcitx-im fcitx-configtool fcitx-sogoupinyin

配置输入法

# vim /home/<username>/.xprofile

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

安装网络工具

# pacman -S  net-tools networkmanager
# systemctl enable NetworkManager

grub2主题

https://github.com/Se7endAY/grub2-theme-vimix

# yaourt -S  grub2-theme-vimix-git

安装完毕修改/etc/default/grub文件

GRUB_THEME="/boot/grub/themes/Vimix/theme.txt"

更新grub

# grub-mkconfig -o /boot/grub/grub.cfg

不出意外重启后即可使用kde

参考
Arch Linux 桌面系统安装(KDE Plasma5)
KDE (简体中文)
Xorg (简体中文)

KDE桌面美化

KDE桌面支持高度自定义,具体美化可参考
https://www.youtube.com/watch?v=uyz4-KZOzyI

Nvidia独显驱动

独显安装

查看Nvidia独显型号

# lspci -k | grep -A 2 -E "(VGA|3D)"

安装合适的驱动

# sudo pacman -S nvidia

这里需要根据显卡型号选择合适的驱动具体看wiki

安装nvidia驱动后默认会生成/etc/X11/xorg.conf配置文件,如没有生成则执行以下命令:

# sudo nvidia-xconfig

最小配置如下:
注意PCI 地址是提到 NVIDIA 的输出行的前7个字符,看起来像 01:00.0. 在 xorg.conf 中,需转换为 #:#:# 格式;例如 01:00.0 应该写成 1:0:0.

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "<BusID for NVIDIA device here>"  修改相应的busID
    Option "AllowEmptyInitialConfiguration"
EndSection

sddm配置

# sudo vim /usr/share/sddm/scripts/Xsetup
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

重新启动

解决屏幕撕裂

  • 在内核选项中添加参数
# sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"
  • 编辑/etc/mkinitcpio.conf
MODULES=(nouveau nvidia nvidia_modeset nvidia_uvm nvidia_drm)
  • 运行下面mkinit命令
# sudo mkinitcpio -p linux

查看N卡是否正常运作

# nvidia-smi

参考
NVIDIA
NVIDIA_Optimus
(详细)安装nvidia闭源驱动并且正确配置,arch linux + lightdm + deepin desktop

使用大黄蜂bumblebee

以上的配置完成后独显会持续运作虽性能较好但耗电很快风扇也会转个不停,由于Nvidia在Linux平台未提供类似Windows上擎天柱那样的双显交火技术,因此这里转而使开源的bumblebee,需要用到独显时再开启独显。

安装

# sudo pacman -S bumblebee mesa xf86_vidoe_intel lib32-virtualgl lib32-nvidia-utils

要使用Bumblebee,必须将常规用户添加到bumblebee组中:

# sudo gpasswd -a user bumblebee

启用bumblebeed.service服务

# sudo systemctl enable bumblebeed.service

配置

  • 去除独显配置
# sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
  • 去除sddm配置
# sudo vim /usr/share/sddm/scripts/Xsetup

注释掉下面两行

# xrandr --setprovideroutputsource modesetting NVIDIA-0
# xrandr --auto

这时重启后可能发现独显还是持续运行,这里还需要安装bbswitch

# pacman -S bbswitch

重启后使用lspci查看显卡状态若为rev ff则为集显驱动,若要使用独显则使用以下命令:

# optirun application

打开NVIDIA Settings面板命令稍多一些:

# optirun -b none nvidia-settings -c:8

但每次打开需要独显支持的应用还得加上optirun很是麻烦,我们可以在/usr/share/applications目录下编辑应用图标在EXEC后加上optirun,这样以后每次使用图形界面打开应用时就会使用独显了。

显卡性能测试

安装了mesa后可以使用optirun glxgears -info命令查看独显性能

参考Bumblebee

推荐阅读更多精彩内容