Ubuntu 重装系统后 Wi-Fi 热点恢复全记录
Ubuntu 重装系统后 Wi-Fi 热点恢复全记录一次因系统重装引发的“热点失踪”事件从排查到解决顺便搞懂 Linux 无线网络的核心概念。一、说明遇到的问题硬件环境Jetson Nano 开发板运行 Ubuntu 系统通过 M.2 接口外接了一块 Wi-Fi 网卡。现象描述在重装系统之前这块 M.2 网卡能够正常发射 Wi-Fi 热点手机和笔记本电脑都能连接。然而在重新刷写 Ubuntu 系统后虽然网卡能被系统识别但**“打开热点”的功能消失了**——无论在图形界面还是命令行下都无法搜到来自 Jetson Nano 的 Wi-Fi 信号。为了初步诊断我在终端执行了查看无线网卡状态的经典命令bashiwconfig得到的输出结果如下textjetsonjetson-desktop:~$ iwconfig usb0 no wireless extensions. lo no wireless extensions. dummy0 no wireless extensions. docker0 no wireless extensions. eth0 no wireless extensions. rndis0 no wireless extensions. l4tbr0 no wireless extensions. wlan0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power0 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:on面对这一堆输出我们需要先搞清楚每一行到底在说什么才能对症下药。二、逐行解读iwconfig输出信息这份输出分为两部分前 7 行是“非无线设备”最后一段是真正的无线网卡状态。1. 前 7 行no wireless extensions无无线扩展这些接口要么是虚拟的要么是有线网口它们不支持 Wi-Fi 功能所以iwconfig命令对它们无效。接口名类型与作用usb0USB 虚拟网口。通常用于 Jetson Nano 通过 Micro-USB 线连接电脑进行 USB 网络共享RNDIS/ECM 协议。lo本地回环接口Loopback。IP 固定为127.0.0.1仅供本机内部程序通信无物理硬件。dummy0虚拟占位网卡Dummy。由系统创建主要用于软件测试或占位非物理设备。docker0Docker 虚拟网桥。系统安装了 Docker它会自动创建此网桥用于容器与宿主机的通信。eth0有线以太网口即插网线的 RJ45 接口。这是 Jetson Nano 板载的物理网口只负责有线网络与 Wi-Fi 发射无关。rndis0RNDIS 虚拟网卡。与usb0类似也是通过 USB 虚拟出来的网络设备。l4tbr0NVIDIA L4TLinux for Tegra专用网桥。br代表 Bridge用于将eth0、usb0等接口桥接起来方便系统内部网络共享。划重点这 7 个接口与我们要开启 Wi-Fi 热点的目标没有任何关系。整个系统中唯一需要我们关注的无线设备是最后的wlan0。2. 最后一段wlan0真正的 M.2 无线网卡这里显示的就是你的 M.2 无线网卡信息逐项拆解如下输出内容含义解读对当前任务的影响wlan0无线网卡的接口名称wl Wireless LAN。系统正确识别了 M.2 网卡硬件驱动无大碍。IEEE 802.11支持 802.11 无线标准Wi-Fi 协议族。确认网卡本身具备 Wi-Fi 能力。ESSID:off/any当前没有连接或广播任何网络名称SSID。网卡此时是“空转”状态。Mode:Managed当前模式为“客户端模式”。这是问题点之一此模式下网卡只能去连接别人家的路由器无法把自己变成热点需要 Master/AP 模式。Access Point: Not-Associated没有关联到任何接入点AP。既没连上别人的 Wi-Fi也没开始自己的广播。Tx-Power0 dBm发射功率为 0 dBm完全禁止信号发射。这是核心致命伤即使模式对了功率为 0 就意味着物理上根本没有无线电波发出去手机绝对搜不到。Power Management:on电源管理省电模式已开启。这是另一个帮凶系统为了省电主动休眠了网卡的发射模块导致发射功率被锁死为 0。诊断结论硬件是好的但系统配置把网卡设置成了“只听不说”的接收者并且掐断了它的“电源供给”发射功率。三、Linux 无线网卡必备基础知识在动手解决之前了解下面这几个核心概念以后遇到类似问题就能举一反三。1. 网卡接口命名规则为什么wlan0不等于网口Linux 系统通过前缀字母区分设备类型前缀含义代表设备wlWireless LAN无线网卡如wlan0,wlp2s0en/ethEthernet有线网卡如eth0,enp3s0loLoopback本地回环所以wlan0绝对不可能指代有线网口那是eth0的事因为底层硬件天线 vs 网线和内核驱动栈完全不同。2. 网卡的两种核心模式Managed客户端模式默认模式。用于连接家里的路由器、手机热点等。此时网卡是“下级”。Master / AP接入点模式用于发射热点。此时网卡扮演“路由器”角色让其他设备来连接。3. 发射功率Tx-Power单位为 dBm。正值如 15 dBm代表正常发射0 dBm 代表禁止发射。被锁为 0 的常见原因硬件开关关闭、电源管理省电模式开启、驱动未完全加载。4. 电源管理Power Management开启后网卡会在空闲时自动休眠以节省电能对笔记本电池很重要。但对于 Jetson Nano通常插着电源和发射热点的场景必须关闭否则系统会阻止网卡持续高功率发射信号。四、对症下药最终解决方法基于以上分析我的解决思路非常明确解除功率锁第1步→ 关闭省电干扰第2步→ 一键创建热点第3步最终成功的三行命令如下请将MyHotspot和12345678替换为你自己的名称和密码bash# 第1步强制开启无线网卡的发射功率 sudo iwconfig wlan0 txpower on # 第2步关闭电源管理省电模式防止系统再次锁死功率 sudo iw dev wlan0 set power_save off # 第3步使用系统自带的 NetworkManager 一键创建 WPA2 加密热点 # 注意密码必须至少 8 位这是 WPA2 协议的硬性要求 sudo nmcli d wifi hotspot ifname wlan0 ssid MyHotspot password 12345678命令详解sudo iwconfig wlan0 txpower on直接告诉网卡“给我开始发射信号”解除Tx-Power0 dBm的限制。sudo iw dev wlan0 set power_save off从根源上关闭省电模式。如果不执行这一步重启网卡或系统空闲时功率很可能再次被系统降为 0。sudo nmcli d wifi hotspot ...nmcli是 NetworkManager 的命令行工具。执行后它会自动帮我们把网卡从Managed模式切换为Master模式并启动内部的hostapd认证服务和dnsmasqDHCP 服务。这条命令足以覆盖第 1 步遗留的模式切换问题。验证是否成功再次输入iwconfig如果看到以下变化说明大功告成Mode:Managed变成了Mode:Master或 AP。Tx-Power0 dBm变成了Tx-Power15 dBm或其它正值。ESSID:off/any变成了你设置的ESSID:MyHotspot。此时拿出手机即可搜索到你命名的 Wi-Fi 热点输入密码即可连接上网。踩坑提示密码长度必读执行第 3 步时如果密码少于 8 位例如1234nmcli会直接报错“密码长度无效”或静默失败。这是 WPA2-PSK 加密协议的强制规定并非系统 Bug务必记住。后记这次经历说明重装系统虽然干净但会抹掉之前针对特定硬件的优化配置比如关闭电源管理。只要掌握了iwconfig、iw和nmcli这三板斧今后无论遇到什么无线网卡问题都能从容排查并解决。希望这篇记录对你也有帮助