2019-12-25 archlinux 的安装

总的来说, archlinux 的安装还是比较顺利的, 现在来说说在安装过程遇到的几个问题及解决办法。

  1. 具体的安装过程得参考 archlinux wiki
  2. 在启动U盘的制作过程, 遇到了的问题是 U 盘制作了, 但是在引导启动时老是出问题, 卡住了。 键盘两个灯同时闪烁。出现这样的问题, 果断换一台机子再重新制作。(一定要严重下载镜像的完整性, 出现该问题的原因我想是镜像文件不完整。)
  3. 我所安装 archlinux 的机子为台式机, 外接 usb 的无线网卡, 其芯片 rtl8812au, 在安装无线网卡的过程中遇到了不小的麻烦, 在 github 找了很多该芯片的驱动都没有搞好。 搞了一晚上后, 灵光闪现, 意识到不同的linux内核可能需要不同的驱动。 因此在github找到了一个作者, 该作者写了好几个版本的驱动, 有 4.3.4 , 5.6.4.1, 等等。 于是我将其都下载下来, 一个一个的试。 找到了适合我网卡的驱动。

内核版本

驱动版本

4.19.91.1 lts

5.1.5

5.4.6.arch1-1

5.2.20

5.4.6-arch3-1

5.6.4.2

上面是我通过一个一个测试后, 测试出来的对面版本能够使用的 rtl8812au 网卡能能使用的网卡驱动。

  1. 安装完后, 在添加 archlinuxcn 源时, 遇到了个问题, 就是在下载软件时提示没有秘钥授权, 安装软件过程中, 当下载了软件在本地后, 提示软件不可信任, 然后推荐卸载。 这主要是因为没有天剑 archlinuxcn 的秘钥环。
1
>> sudo pacman archlinuxcn-keyring
  1. 当解决了无线上网的问题后, 还有个小问题, 那就是在每次联网时都需要自己输入命令, 而且运行命令的 terminal 还不能关闭, 因此诞生了写一个systemd service 文件, 这样每次开机的时候就自动将网络链接上去了。

还是先说说, 命令行联网的步骤吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>>> sudo pacman -S iw wireless_tools wpa_supplicant

>>> ip link # 看是否有无线网络接口, 如果没有需要解决驱动的问题。

>>> cd /etc/wpa_supplicant/

>>> sudo vim wpa_supplicant.conf

>>> cat wpa_supplicant.conf

ctrl_interface=/run/wpa_supplicant
update_config=1
country=CN

network={
ssid="xxxxxx" # 该地方设置你要链接的 wifi 名字, 得注意大小写。
psk="xxxxxxx" # 该地方为就是链接 wifi 的密码
}

# 我的无线网卡接口是 wlp0s20u11, 这个接可以通过 ip link 查找, 一般为 w 开头的为无线接口
>>> wpa_supplicant -i wlp0s20u11 -c /etc/wpa_supplicant/wpa_supplicant.conf

# 不出意外的话, 现在就可以上网了。

可以使用 systemd 来自动启动无线网络
ip link #查得 无线网卡端口, 比如 wlp3s0
cd /etc/wpa_supplicant/

创建 wpa_supplicant-wlp3s0.conf

ctrl_interface=/run/wpa_supplicant
update_config=1

systemd enable wpa_supplicant@wlp3s0

这就是通过命令行工具联网了, 有人会说, 不是有图形窗口工具吗? 因为我在我的 archlinux 上安装的是 deepin 桌面, 这个桌面可能还不大众化, 因此他的控制中心的网络管理器用不了。还有种可能, 是我刚使用 archlinux , 不太了解有哪些带有 gui 的网络管理器。 现在就来说说如何在系统启动后, 自动链接无线网络。

1
2
3
>>> cd /etc/systemd/system/

>>> sudo touch autologin-wifi.service

其内容为 :

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Auto login into wifi
#Before=display-manager.service
#After=network.target

[Service]
ExecStart=/usr/bin/wpa_supplicant -i wlp0s20u11 -c /etc/wpa_supplicant/wpa_supplicant.conf
Restart=always
IgnoreSIGPIPE=no

[Install]
WantedBy=multi-user.target
Alias=autologin-wifi.service

后来, 在安装我的笔记本的 archlinux 时发现了网络的连接方法, 该方法是比较通用, 而且不用写上面的配置文件。 该方法同时解决了 deepin 环境下的网络管理器没有无线链接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 首先安装 networkmanager iw wpa_supplicant
>>> sudo pacman -S iw wpa_supplicant networkmanager

# 查看是否有网卡驱动, 无线一般是以 w开头的接口, e开头的是直接通过网线链接的, 如果没有还是需要安装相应的驱动, 其方法跟上面讲的一样。
>>> ip link

# 如果有, 看是否链接上了,
>>> ip address

# 设置开机启动相应的服务。
>>> sudo systemctl enable NetworkManager
>>> sudo systemctl enable wpa_supplicant
>>> sudo reboot

只要安装了 networkmanager 后就没有必要安装其他的网络管理器了, networkmager 本来就是管理器。 这主要的原因是我们习惯了图形化管理工具,忽略了 networkmager 本身。 networkmanager 提供了 nmtui 字符终端UI 界面和 nmcli 命令行接口。

  1. 关于在 github.com 下载代码, clone 代码都是非常的慢, 速度那是相当的感人。下面是我在网上搜索的解决的办法。
    1. 首先在 ipaddress 或者 ip138 上查找 github.com , github.global.ssl.fastly.net 这两个网址的 ip 地址。 需要多查找几次, 找出延迟比较低的 对应 ip 地址。 (但是在这一步中, 我查找了不下 10 次, 但是我得到的地址都是一样的, 都是位于美国的。 我想这也是为什么按照这样的方法, 下载代码或者 clone 代码都还是那么慢的。)
    2. 修改 hosts 文件 (/etc/hosts), 因为我通过在网上查找的 ip 地址均是位于美国的地址, 所以我在网上搜索时间最近的关于 github.com 下载速度慢的帖子, 然后就使用其中的地址。 (当然, 需要验证所得到的对应的 ip 地址是否是通的。)修改后, 下载或 clone 代码时的速度应该有一个值提升。
1
2
3
4
5
6
>>> cat /etc/hosts
# Static table lookup for hostnames.
# See hosts(5) for details.
192.30.253.113 github.com
151.101.185.194 github.global.ssl.fastly.net
192.30.253.120 codeload.github.com
  1. 由于在笔记本上安装 fcitx-sogoupinyin 的时候, 姿势不对导致安装 fcitx-sogoupinyin 不成功。 其正确的姿势为:
1
2
3
>>> sudo pacman -S fcitx-configtool  fcitx-lilydjwg-git fcitx-qt5 fcitx-sogoupinyin fcitx-ui-light 

>>> fcitx-configtool #添加 sogou 拼音。

在使用过程中, 由于自己手痒, 导致了 wps 不能使用中午输入, 这应该是由于配置文件导致的, (在重启进入系统, 中文输入的时候, 候选框只出现了半边候选框, 候选的汉字根本看不到, 因此怀疑是配置文件的问题。)

1
2
3
4
5
6
7
sudo pacman -Rsn fcitx-configtool fcitx-lilydjwg-git fcitx-qt5 fcitx-sogoupinyin fcitx-ui-light
ps aux grep fcitx
sudo kill # 找到的 关于fcitx 进程
ps aux grep sogou
sudo kill # 找到的 sogou 进程
cd ~/.config
rm -rf fcitx Sogou* sogou*

重启应该就好了, 在之前解决的中文输入法时, 导出的环境变量还是需要。 如在 .bashrc 中加入的变量

1
2
3
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

在 .xprofile 中加入的变量导出

1
2
3
4
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

在 .pam_environment 的

1
2
3
4
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

  1. 关于在 archlinux 系统的双显卡的笔记本(inter + nvidia) 安装 nvidia 的驱动, 这是一个相当复杂的过程, 这里有原作者的博客 archlinux 笔记本安装nvidia显卡驱动与intel显卡驱动 现在我将起复制下来, 以免以后找不到了。
1
2
3
4
>>> sudo pacman -S nvidia nvidia-libgl xorg-xrandr

>>> sudo nvidia-xconfig #该命令会创建 /etc/X11/xorg.conf

编辑之前需要查询一些信息.用 lspci grep -E "VGA3D" 来查询 NVIDIA 显卡的 PCI 地址。PCI 地址是提到 NVIDIA 的输出行的前7个字符,看起来像 01:00.0 。在 xorg.conf 中,需转换为 #:#:# 格式;例如 01:00.0 应该写成 1:0:0 。BusID 那里 N 卡一般是 BusID “PCI:1:0:0” 注意格式,00:02.0 这种形式需要转换成 0:2:0 。在 /etc/X11/xorg.conf 最后加入如下内容:

1
2
3
4
5
6
7
8
9
10
Section "Module"
Load "modesetting"
EndSection

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "AllowEmptyInitialConfiguration"
EndSection

没使用窗框管理器的以下内容添加到 ~/.xinitrc 开头:

1
2
3
~/.xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

使用不同的窗口管理器,要在相应的位置加入这两行

1
2
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

**对于 LightDM **

1
2
3
4
#!/bin/bash
# /etc/lightdm/display_setup.sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

赋予脚本可执行权限:

1
>>> chmod +x /etc/lightdm/display_setup.sh

编辑 /etc/lightdm/lightdm.conf 的 [Seat:*] 部分以配置 lightdm 运行这个脚本:

1
2
3
# nano /etc/lightdm/lightdm.conf
[Seat:*]
display-setup-script=/etc/lightdm/display_setup.sh

重启,你的 DM 应该启动了。 但是有可能还是启动不了, 单独运行 display_setup.sh 时, 会提示 can't open display, 这时需要增加配置文件将 nvidia 设置成主要显卡。参考文章 nvidia optimus/etc/X11/xorg.conf.d/ 下创建 /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf , 其内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Section "OutputClass"
Identifier "intel"
MatchDriver "i915"
Driver "modesetting"
EndSection

Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "yes"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection

对于 SDDM

1
2
3
# nano /usr/share/sddm/scripts/Xsetup
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

对于GDM

1
2
3
4
5
6
7
8
/usr/share/gdm/greeter/autostart/optimus.desktop
/etc/xdg/autostart/optimus.desktop
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer

确保GDM使用了Xorg模式。 对于 KDM

1
/usr/share/config/kdm/Xsetup

sddm 如果重启还是没有进入图形界面,再编辑一下配置文件/etc/X11/xorg.conf 或者在再 /etc/X11/xorg.conf.d 目录 新建文件并编辑

1
2
3
4
5
6
7
8
nano intel.conf
内容如下,Intel 的 BusID 一般是 BusID “PCI:0:2:0,这里是上面的方式查出来的”

Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection

重启即可 检验 3D 你可通过安装 mesa-demos 并运行以下命令来检验 NVIDIA 是否被使用:

1
$ glxinfo  grep NVIDIA
  1. archlinux 中连接 手机 传递文件还是个技术活啊。
1
2
3
4
5
>>> sudo pacman -S simple-mtpfs

>>> mkdir my-device
>>> simple-mtpfs -l # 列出 mtp 设备:
>>> simple-mtpfs --device 1 my-device
  1. 关于 microcode (微代码) 的更新

该问题在 archlinux 的 wiki 中已经说得很清楚了。 微代码更新

  1. 如果你安装的 nvidia 专有驱动, 并且也安装了新的微代码。 你可能就会遇到 kwin 的透明效果没有了。 提示错误为
1
kwin_core: Compositing is not possible

需要更改 .config/kwinrc 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.config/kwinrc
-----------------------------------
[Compositing]
OpenGLIsUnsafe=true
# 将上面的true 更改为 false 就行了

[Desktops]
Id_1=84c28625-7184-4232-bf70-7f0e70882c8b
Id_2=a7eac20b-05be-4c6c-bf7c-0ca7155bb252

[Script-closewindowaction]
BorderActivate=

[Script-runcommandaction]
BorderActivate=


2019-12-25 archlinux 的安装
https://www.supermew.top/2019/12/25/archlinux-的安装/
作者
八月
发布于
2019年12月25日
许可协议