常见问题排除与解决

静态 IP 设置

虽然使用可以自动获取 ip 地址的工具可以覆盖绝大多数场景,但是仍有部分特殊场景,如校园网,VPS 等环境下需要进行静态 IP 的设置。这里给出一个简略的设置静态 IP 的方式。如需要设置静态 IP,需要首先禁用 dhcpcd 或 NetworkManager 等自动获取 ip 的工具。

sudo systemctl stop dhcpcd NetworkManager
sudo systemctl disable dhcpcd NetworkManager

接下来启用 systemd-networkd

sudo systemctl enable --now systemd-networkd

使用ip ad命令查看当前网卡的名字,如这里使用名字wlp5。随后创建配置文件/etc/systemd/network/10-static-wlp5.network。接下来在其中填入内容。其中的 ip 地址和网关需要从你的网络提供商处获取。其中的 DNS 设置同样需要在/etc/resolv.conf中按照前文中的方式进行设置。

[Match]
Name=wlp5

[Network]
Address=YOUR_IPV4_ADDRESS/MASK
Gateway=YOUR_IPV4_GATEWAY
DNS=8.8.8.8

[Network]
Address=YOUR_IPV6_ADDRESS/MASK
Gateway=YOUR_IPV6_GATEWAY
DNS=2001:4860:4860::8888

最后,重启networkd服务即可。

sudo systemctl restart systemd-networkd
使用create_ap创建热点
create 热点网卡名 使用网络网卡名 热点名 密码
例如
sudo nohup create_ap wlp0s20f3 wlp0s20f3 Desmond 123456788 &
不输出达到后台热点目的

鼠标出现按键不灵敏或失灵的现象

一般来说大多数鼠标都是即插即用的,但 5.14 内核前后更新后可能遇到失灵的情况,重新安装驱动就可以了

关机时卡住很久才能关机

一般屏幕会出现形如A stop job is running for...(1m30s)的信息,这是经常会遇到的关机卡住 1 分 30 秒的问题,一般来说这种情况是因为某个进程不愿分别,恋恋不舍,需要等到超时时间到达强行停止。通用的解决办法是调整缩短这个等待时间,建议从 1 分 30 秒调整至 30 秒,30 秒已经足够几乎所有进程正常结束,不用担心强迫关闭进程会造成什么异常,迟滞关闭就已经算一种异常!

编辑 /etc/systemd/system.conf

sudo vim /etc/systemd/system.conf

找到其中DefaultTimeoutStopSec一项,将其前方的井号去掉,并赋值为 30s 即可。最后执行 daemon-reload 使其生效。

sudo systemctl daemon-reload

上述解决方案其实只是将这个等待时间缩小了,并没有解决实际问题。如果你想排查问题真正的原因所在,在关机时如果出现了A stop job is running for...(1m30s)的信息,耐心等待其结束关机,然后重新启动电脑,执行以下命令:

journalctl -p5

按/(斜杠键)搜索Killing关键字,找到你关机的时间附近所在的匹配行,你可以在附近看到到底是哪一个进程导致了 timeout,然后再去排查这个进程犯什么事。

磁盘容量不足的处理方式

建议在安装的开始就将根目录设置的大一些,如 100G。如果/home 分区大小不够了,可以新安装一块硬盘,将其挂载到你想要的位置,再按照基础安装的步骤中重新 genfstab 一下就行了。

除此之外,如果根目录容量不足,可以不定期清理一下 pacman 的缓存,详见archwiki。太长不想看的可以直接用下面这一行命令清理没有安装的所有缓存的包,和没有被使用的同步数据库。

sudo pacman -Sc

软件的降级

在 archlinux 上 偶尔会出现某一个包的最新版本有各种问题的情况,此时需要降级该包以正常使用,包可以是普通软件,也可以是内核什么,这里需要aur中的downgrade。

yay -S downgrade

安装此包即可,使用方法也很简单,downgrade 后加上需要降级的包名即可,随后会提示你选择需要降级到的版本,点选即可。

升级系统时出现形如 unable to lock database 的错误

可能存在升级系统时异常关机或程序异常退出的情况,或者多个 pacman 的相关程序在同时执行。移除 pacman 的 db 锁即可。

但是有pacman相关程序在执行时不要强制执行,会发生严重错误。

sudo rm /var/lib/pacman/db.lck

手动开关混合器

有时混合器会因为某些原因需要手动开启或关闭,但是目前在 KDE 下混成器在设置里无法在不关机的情况下直接关闭,下面命令提供手动开关混成器的效果。

qdbus org.kde.KWin /Compositor suspend  #禁用

qdbus org.kde.KWin /Compositor resume   #开启

屏幕溢出: overscan

在连接一些老式的显示设备时,可能与出现overscan的现象,简单来说就是电视屏幕四圈会有一圈溢出了,不显示出来。对于英特尔核芯显卡,可以选择 intel panel fitter 的方式。最后就是要加入到一个 service 里开机自动启动,并且是在 DE 加载完成后执行。

sudo intel_panel_fitter -p A -x 1230 -y 700