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 开源地址
其他方法: 替换
将老内核的驱动转移到新内核使用, 这样做可能会导致一些未知问题的出现, 除非实在找不到解决方案了在考虑此方案
无评论