Ubuntu (NVIDIA Jetson) 开启 Wi-Fi 后系统高延迟、Ping 不通甚至硬死机排查全过程

1. 故障描述

在 NVIDIA Jetson (Orin Nano) 设备上开启 USB 无线网卡后,系统表现出极大的不稳定性:

  • 网络抖动 :Ping 延迟从正常的毫秒级突然飙升至 3000ms - 8000ms,随后出现丢包。
  • 服务中断:SSH 连接超时断开,无法远程登录。
  • 硬死机 (Hard Freeze):在某些情况下,系统彻底停止响应,屏幕画面冻结,只能通过拔插电源强制重启。
  • 规律性:关闭 Wi-Fi 使用有线网时,系统运行稳定;开启 Wi-Fi 后一段时间内必然复现。

2. 现场排查与日志分析

2.1 Ping 现场记录

在故障发生时,观察到延迟出现惊人跳变:

bash 复制代码
64 bytes from 10.9.30.190: icmp_seq=153 ttl=64 time=3278 ms
64 bytes from 10.9.30.190: icmp_seq=160 ttl=64 time=6073 ms
64 bytes from 10.9.30.190: icmp_seq=161 ttl=64 time=7300 ms

分析:几千毫秒的延迟意味着网络包在驱动层或内核中断处理中积压严重,系统已接近崩溃边缘。

2.2 系统日志 (Syslog) 的"死机证言"

通过 journalctl 或查看 /var/log/syslog,发现了明显的日志断层:

text 复制代码
Jan 19 17:52:59 nvidia-desktop kernel: [7902887] RTW: Turbo EDCA =0xa42b
Jan 19 17:52:59 nvidia-desktop kernel: [7902887] RTW: issue_addba_rsp_wait_ack...
<-- 此时系统彻底死机,日志中断 -->
Jan 20 14:58:21 nvidia-desktop kernel: [    0.000000] Booting Linux on physical CPU 0x0000000000

诊断:

  1. 时间空档:从 17:52 到重启期间无任何记录,说明内核挂起,无法执行磁盘写入。
  2. 关键词 RTW :死机前最后一条信息来自 Realtek (RTW) 无线网卡驱动。
  3. Turbo EDCA:这是驱动的一种机制,在处理高频并发包时,可能导致内核中断处理死锁(Interrupt Storm)。

3. 根因分析

在 NVIDIA Jetson 这种 ARM 架构平台上,USB 无线网卡(尤其是 Realtek 系列)频繁导致死机的原因主要有三点:

  1. 电源管理冲突 (Power Management) :
    内核尝试对 USB 网卡进行 autosuspend(自省电),但驱动程序未能正确处理切换状态指令,导致内核进入不可中断的等待状态(D 状态),触发系统挂起。
  2. 中断风暴与死锁 :
    RTW 驱动在高速传输或信号不稳定时,会触发大量底层中断。如果 CPU 核心忙于处理这些中断,会导致调度器失效,系统"假死"。
  3. 驱动兼容性差 :
    许多外置 USB WiFi 驱动并非针对 ARM64 内核深度优化,存在内存泄漏或空指针隐患。

4. 解决方案

方案一:彻底禁用 Wi-Fi(避坑方案)

如果环境允许使用有线网,这是保证系统 24 小时稳定运行的最快方法:

bash 复制代码
# 持久化关闭 WiFi,重启后依然保持关闭
nmcli radio wifi off
方案二:禁用电源管理(必须使用 Wi-Fi 时的对策)

如果必须使用该网卡,建议关闭其省电模式以减少死机概率:

  1. 临时关闭 :

    bash 复制代码
    sudo iw dev [网卡名] set power_save off
  2. 持久化配置 :
    修改 /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf:

    ini 复制代码
    [connection]
    wifi.powersave = 2
方案三:内核黑名单禁用故障驱动

若要防止驱动在后台加载影响系统,可将其拉黑:

bash 复制代码
echo "blacklist 8821cu" | sudo tee /etc/modprobe.d/blacklist-8821cu.conf
# 具体的模块名(如 8821cu)可通过 lsmod | grep rtw 查询

5. 总结与硬件建议

本次排查证实,不稳定的无线网卡驱动足以拖垮整个 Linux 内核。

技术建议:

  • 生产环境:优先使用 Intel 芯片的有线网卡。
  • Jetson 硬件建议 :Orin Nano 等设备建议使用走 M.2 接口的 Intel AC8265 / AX210。这类网卡驱动内置在 Linux kernel 源码中,稳定性远超第三方 USB 外置网卡。
相关推荐
爱和冰阔落1 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨1 小时前
WSL2的安装与使用
linux·wsl
微小的鱼1 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng2 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮2 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹2 小时前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器
孙克旭_3 小时前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
孙克旭_3 小时前
云原生基础之Containerd容器运行时
运维·云原生
分布式存储与RustFS3 小时前
RustFS 自建对象存储实战目录:110 篇按场景分类(持续更新)
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
无忧_wy3 小时前
MoneyPrinterTurbo 自动化视频生成实战指南
运维·人工智能·自动化·音视频