电池供电的无界面Ubuntu服务器断电后网络故障求助
电池供电的无界面Ubuntu服务器断电后网络故障求助
兄弟,你这情况我之前帮朋友排查过,是r8169网卡驱动的典型异常,那个rtl_txcfg_empty_cond == 0报错就是驱动和网卡固件状态紊乱的信号,给你几个实测有效的方案试试:
先试试重新加载网卡驱动(最快捷)
先把当前的r8169驱动卸载再重新加载,相当于给网卡“重启”一次:# 先禁用网卡避免占用 sudo ip link set enp4s0 down # 卸载驱动模块 sudo rmmod r8169 # 重新加载驱动 sudo modprobe r8169 # 启用网卡 sudo ip link set enp4s0 up如果卸载时提示“设备忙”,可以先杀掉占用网卡的进程(比如dhclient)再操作。
换用Realtek官方闭源驱动
开源的r8169驱动有时候会有兼容性小问题,试试官方的r8168驱动:- 先装编译依赖:
sudo apt update && sudo apt install build-essential git linux-headers-$(uname -r) - 拉取源码并自动安装:
git clone https://github.com/mtorromeo/r8168.git cd r8168 sudo ./autorun.sh
装完重启服务器,大概率能解决这类固件异常问题。
- 先装编译依赖:
更新网卡固件
小断电可能导致固件加载不完整,试试重新安装固件包:sudo apt install --reinstall linux-firmware重启后用
dmesg | grep r8169 | grep firmware看看固件是否正常加载成功。强制重置PCI网卡硬件
你之前试的remove没用,试试硬件重置,先通过lspci -v找到网卡的准确sysfs路径(比如你的设备是0000:04:00.0,路径大概是/sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0),然后执行:sudo echo 1 > /sys/devices/[你的准确路径]/reset这个操作会直接重置网卡硬件状态,比remove更有效。
如果以上都不行,那可能要检查下网卡硬件是否有隐性损坏(虽然电池供电没关机,但断电瞬间的电压波动也可能影响),或者临时整个USB网卡应急用,同时可以看看Ubuntu的bug tracker有没有对应版本的补丁。
备注:内容来源于stack exchange,提问作者Nicolas Boisvert
相关产品推荐
相关产品推荐

