跳转到主要内容

LoongArchlinux常见问题

网络问题

配置静态 IP 后无法使用网络

具体问题描述: 使用 DHCP 自动获取 IP 可上网, 但使用静态 IP 后, 解析服务无法正常使用, 但 IP 访问是正常的。

报错日志查看: 查看 dmesg 命令时发现大量网卡报错信息, 如下图

dwmac-loongson-pci 0000:00:03.0 enp0s3f0: Register MEM_TYPE_PAGE_POOL RxQ-0
dwmac-loongson-pci 0000:00:03.0 enp0s3f0: PHY [stmmac-18:00] driver [Generic PHY] (irq=POLL)
radeon 0000:04:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
dwmac-loongson-pci 0000:00:03.0: Failed to reset the dma
dwmac-loongson-pci 0000:00:03.0 enp0s3f0: stmmac_hw_setup: DMA engine initialization failed
dwmac-loongson-pci 0000:00:03.0 enp0s3f0: __stmmac_open: Hw setup failed

重装网卡驱动

此方法尝试无效, 不过也将其保留以供参考

从可视化界面可以看到, 当前的网卡驱动使用的是 r8169(使用 lsmod |grep r8169 也可以看到的确有这样的驱动)

但使用 lspci -v | grep -i ethernet 命令又会发现我们的网卡实际是 RTL8111/8168/8411

发现其驱动和当前使用的有所不同

推测可能是网卡驱动导致的问题, 尝试安装 8168 驱动, 当前源中自带 r8168 驱动(此驱动在 github 中开源)

确定当前的网卡驱动, 我是 r8169 使用 rmmod r8169 先把已有的网卡驱动卸载, 避免产生不必要的冲突 之后从源中安装 r8168 驱动即可 sudo pacman -S r8168

手动写入配置文件

此方法解决问题

# 进入此处手动添加网络配置
cd /etc/systemd/network
# 命名规则: 10-static-网卡名.networt
sudo vim 10-static-enp3s0.network
# 配置参数
[Match]
Name=enp3s0

[Network]
Address=固定 IP/子网掩码
Gateway=网关
DNS=域名解析地址(多个使用空格隔开!)

结论

当前可视化中配置网卡驱动存在 BUG, 配置的域名解析服务并未生效

部分域名无法解析

systemd-resolve --status(或者resolvectl) 查看DNS信息, 确认一下当前DNS是否设置正确

systemd-resolve qq.com(或者nslookup qq.com)测试一下解析域名是否正常

如果上述命令出现异常或者和你的预期不符, 可以使用命令systemd-resolve --set-dns={DNS的IP} --interface {网卡名}来更新DNS

更新DNS后需要重置一下网卡配置(systemd-resolve --revert --interface {网卡名})和刷新缓存sudo systemd-resolve --flush-caches。 还有一个比较常用的参数是查看当前缓存状况systemd-resolve --statistics

驱动问题

驱动丢失

具体问题描述: 更新内核后导致网卡驱动丢失 原因分析: 驱动绑定了内核版本, 正在使用的 r8168 网卡驱动未适配新版内核

解决思路

仅供参考

推荐方法 1: 替代

查找新内核中是否自带可替换的驱动, 比如我是网卡驱动, 内核中网卡驱动一般会存在 /usr/lib/modules/内核版本/kernel/drivers/net/ethernet 这个位置, 当前实际使用的网卡是 realtek r8168, 在上述路径中存在 r8169

安装上(sudo insmod r8169.ko.zst 或者 sudo modprobe -i r8169)发现可以使用

推荐方法 2: 自行编译

找到驱动的开源代码自行编译. r8168 驱动的 github 开源地址

其他方法: 替换

将老内核的驱动转移到新内核使用, 这样做可能会导致一些未知问题的出现, 除非实在找不到解决方案了在考虑此方案