总的来说, archlinux 的安装还是比较顺利的, 现在来说说在安装过程遇到的几个问题及解决办法。
- 具体的安装过程得参考 archlinux wiki
- 在启动U盘的制作过程, 遇到了的问题是 U 盘制作了, 但是在引导启动时老是出问题, 卡住了。 键盘两个灯同时闪烁。出现这样的问题, 果断换一台机子再重新制作。(一定要严重下载镜像的完整性, 出现该问题的原因我想是镜像文件不完整。)
- 我所安装 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 网卡能能使用的网卡驱动。
- 安装完后, 在添加 archlinuxcn 源时, 遇到了个问题, 就是在下载软件时提示没有秘钥授权, 安装软件过程中, 当下载了软件在本地后, 提示软件不可信任, 然后推荐卸载。 这主要是因为没有天剑 archlinuxcn 的秘钥环。
1
| >> sudo pacman archlinuxcn-keyring
|
- 当解决了无线上网的问题后, 还有个小问题, 那就是在每次联网时都需要自己输入命令, 而且运行命令的 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" psk="xxxxxxx" }
>>> 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
[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
| >>> sudo pacman -S iw wpa_supplicant networkmanager
>>> ip link
>>> ip address
>>> sudo systemctl enable NetworkManager >>> sudo systemctl enable wpa_supplicant >>> sudo reboot
|
只要安装了 networkmanager 后就没有必要安装其他的网络管理器了, networkmager 本来就是管理器。 这主要的原因是我们习惯了图形化管理工具,忽略了 networkmager 本身。 networkmanager 提供了 nmtui 字符终端UI 界面和 nmcli 命令行接口。
- 关于在 github.com 下载代码, clone 代码都是非常的慢, 速度那是相当的感人。下面是我在网上搜索的解决的办法。
- 首先在 ipaddress 或者 ip138 上查找 github.com , github.global.ssl.fastly.net 这两个网址的 ip 地址。 需要多查找几次, 找出延迟比较低的 对应 ip 地址。 (但是在这一步中, 我查找了不下 10 次, 但是我得到的地址都是一样的, 都是位于美国的。 我想这也是为什么按照这样的方法, 下载代码或者 clone 代码都还是那么慢的。)
- 修改 hosts 文件 (/etc/hosts), 因为我通过在网上查找的 ip 地址均是位于美国的地址, 所以我在网上搜索时间最近的关于 github.com 下载速度慢的帖子, 然后就使用其中的地址。 (当然, 需要验证所得到的对应的 ip 地址是否是通的。)修改后, 下载或 clone 代码时的速度应该有一个值提升。
1 2 3 4 5 6
| >>> cat /etc/hosts
192.30.253.113 github.com 151.101.185.194 github.global.ssl.fastly.net 192.30.253.120 codeload.github.com
|
- 由于在笔记本上安装 fcitx-sogoupinyin 的时候, 姿势不对导致安装 fcitx-sogoupinyin 不成功。 其正确的姿势为:
1 2 3
| >>> sudo pacman -S fcitx-configtool fcitx-lilydjwg-git fcitx-qt5 fcitx-sogoupinyin fcitx-ui-light
>>> fcitx-configtool
|
在使用过程中, 由于自己手痒, 导致了 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 ps aux grep sogou sudo kill 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
|
- 关于在 archlinux 系统的双显卡的笔记本(inter + nvidia) 安装 nvidia 的驱动, 这是一个相当复杂的过程, 这里有原作者的博客 archlinux 笔记本安装nvidia显卡驱动与intel显卡驱动 现在我将起复制下来, 以免以后找不到了。
1 2 3 4
| >>> sudo pacman -S nvidia nvidia-libgl xorg-xrandr
>>> sudo nvidia-xconfig
|
编辑之前需要查询一些信息.用 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
|
使用不同的窗口管理器,要在相应的位置加入这两行
**对于 LightDM **
1 2 3 4
| #!/bin/bash
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 是否被使用:
- archlinux 中连接 手机 传递文件还是个技术活啊。
1 2 3 4 5
| >>> sudo pacman -S simple-mtpfs
>>> mkdir my-device >>> simple-mtpfs -l >>> simple-mtpfs --device 1 my-device
|
- 关于 microcode (微代码) 的更新
该问题在 archlinux 的 wiki 中已经说得很清楚了。 微代码更新
- 如果你安装的 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=
|