Linux to go Ubuntu 22.04 不匹配无线网卡 MT7925 的解决方法

Linux to go Ubuntu 22.04 不匹配无线网卡 MT7925 的解决方法

目录


一、手机 USB 共享网络

参考文章:【已安装爱思助手和Apple相关驱动,但仍无法有线连接iPhone热点,且网络适配器没有Apple Mobile Device Ethernet,问题解决

1. Windows 下

电脑用 usb 连接手机,打开爱思助手,点击工具箱 → iTunes及驱动 → 高级修复 → 卸载系统存储的旧驱动文件。卸载完成后发现 “设备管理器” 中的网络适配器自动连上了 Apple Mobile Device Ethernet 。

2. Linux 下

保持手机和电脑的连接,插入 Linux to go ,手机会弹出是否信任该设备的弹窗,点击确认,电脑就会自动连接手机的热点了,实现了用 USB 共享网络。

二、升级至 Ubuntu 24.04

升级到 Ubuntu 24.04 后 MT7925 网卡问题很可能得到根本解决,因为 24.04 的内核版本对这款网卡有原生良好支持。

lspci | grep -i network 查看无线网卡型号;uname -r 输出内核版本。

1. 前提

1)备份数据

升级过程中可能出现意外,请确保您便携系统中的所有重要文件都已备份到其他存储设备。

2)确保稳定的运行环境

  • 将 Linux To Go 设备连接到一台稳定的电脑上进行升级
  • 确保供电充足(如果是笔记本电脑,接上电源适配器)
  • 确保网络连接稳定
  • 升级过程中不要中断电源或拔出设备

3)检查当前系统状态

lsb_release -a df -h 

确保有足够的磁盘空间(至少 10GB 可用空间)。

2. 升级系统

1)更新当前系统以及重启系统

# 更新当前系统sudoapt update &&sudoapt upgrade -y # 确保系统是最新的sudoapt dist-upgrade -y # 清理不必要的包sudoapt autoremove -y sudoapt autoclean -y # 重启系统sudoreboot

重启后再次登录,确保系统状态良好。

2)检查 / 安装升级管理工具

sudoaptinstall update-manager-core 

3)修改并确认升级设置

编辑升级配置文件:

# 编辑升级配置文件sudonano /etc/update-manager/release-upgrades # 将 Prompt 设置为 normal 或 ltsPrompt=lts 

如果不是 normal 或 lts ,请修改为此项。然后按 Ctrl + X,输入 Y 再按下 Enter 键保存退出。

4)开始升级

# 开始升级sudo do-release-upgrade # 如果上述命令找不到新版本,可以强制检查sudo do-release-upgrade -d 
使用图形界面升级:sudo update-manager 打开软件更新器。

这个过程会:

  • 下载新版系统包(约需 1-2 小时,取决于网速),请保持网络稳定和电源连接
  • 询问是否替换配置文件(建议选择"保持当前版本")
  • 自动处理依赖关系

5)验证升级结果

登录新系统后,打开终端,验证版本:

lsb_release -a # 或者cat /etc/os-release 

检查内核版本,应该已经是 6.8.x:

uname -r 

6)升级后清理与优化

# 再次更新软件列表(确保使用24.04的源)sudoapt update sudoapt upgrade # 安装新的硬件驱动(非常重要!这对Linux To Go在不同电脑上运行有利)sudo ubuntu-drivers autoinstall # 最后清理一次sudoapt autoremove --purge sudoapt autoclean # 再次重启sudoreboot

3. EFI系统分区(ESP)无法使用

如果出现类似:EFI 系统分区(ESP)无法使用,没有挂载在 /boot/efi 的问题该如何解决?

这个问题很关键!在升级过程中,如果 EFI 系统分区(ESP)没有正确挂载,会导致引导加载程序(GRUB)无法更新,升级后系统可能无法启动。

解决方案:手动挂载 ESP 分区。

1)检查现有的 ESP 分区

# 查看所有磁盘分区sudofdisk -l # 或者使用 lsblk 查看更清晰的分区结构 lsblk -f # 查看 EFI 分区是否存在 lsblk -f |grep -i efi # 检查当前挂载点df -h |grep -i boot 

lsblk -f 命令可能会发现两条跟 EFI 有关的输出:

设备 类型 /dev/nvme0n1p1 … … … … EFI 系统 … … /dev/sda2 … … … … ef EFI (FAT-12/16/32) 

说明 ESP 分区存在但未挂载,由于 EFI 分区通常是 FAT32 格式,大小在 100-500MB 之间,因此可以认定路径是:/dev/sda2 ,它的分区类型标记为 ef(EFI 系统分区)。

/dev/nvme0n1 (Windows 系统盘) ;/dev/sda (Linux 系统盘) 。

【拓展】:如何准确识别 EFI 分区?先使用命令 sudo blkid 查看所有分区信息,然后手动查找:

  • 分区类型为 vfat 或 fat32
  • 大小约 100-500MB
  • 可能有 PARTLABEL=“EFI” 或 LABEL=“SYSTEM_DRV”

2)手动挂载 ESP 分区

# 创建挂载点目录:sudomkdir -p /boot/efi # 挂载 ESP 分区:sudomount /dev/sda2 /boot/efi # 验证挂载是否成功:# 查看挂载详情mount|grep efi # 检查是否挂载df -h |grep efi # 查看 /boot/efi 下文件ls -la /boot/efi/ 
取消挂载:sudo umount /boot/efi

3)永久解决挂载问题

编辑 /etc/fstab 文件,添加 ESP 分区的自动挂载:

# 首先获取 EFI 分区的 UUIDsudo blkid |grep -i efi # 输出:xxx: UUID="xxxx-xxxx" TYPE="vfat" … PARTLABEL="EFI…"# 编辑 fstab 文件sudonano /etc/fstab 

在文件末尾添加(请替换为您的实际 UUID):

UUID=02D3-7915 /boot/efi vfat umask=0077 01
  • UUID=02D3-7915 : 使用分区唯一标识符
  • /boot/efi : 挂载点
  • vfat : 文件系统类型
  • umask=0077 : 设置权限(更安全)
  • 0 : 不备份
  • 1 : 使用 fsck 检查顺序(1 表示优先检查)

测试 fstab 配置:

# 卸载当前挂载sudoumount /boot/efi # 测试 fstab 配置(不会实际挂载)sudomount -a # 如果上面的命令没有报错,说明配置正确# 现在实际挂载sudomount /boot/efi # 验证挂载mount|grep efi 

4)/boot/efi/EFI/ 下没有 ubuntu 文件

ls -la /boot/efi/ 命令显示有 EFI 目录,但 ls -la /boot/efi/EFI/ 命令显示只有 BOOT 目录,没有 ubuntu 目录。

正常的 Ubuntu EFI 分区应该包含:

  • EFI/ubuntu/ : Ubuntu 的 GRUB 引导文件
  • EFI/BOOT/ : 备用引导文件

方案:手动创建 EFI 引导文件。

# 确保EFI目录存在sudomkdir -p /boot/efi/EFI/ubuntu # 复制现有的BOOT引导文件作为Ubuntu引导sudocp /boot/efi/EFI/BOOT/BOOTx64.EFI /boot/efi/EFI/ubuntu/grubx64.efi 

5)其他方法

输入命令 df -T / | head -n 2 显示文件系统 /cow 的类型是 overlay ,说明运行在 Live USB 持久化模式中,而不是安装在硬盘上的系统。针对 Linux To Go 的解决方案是手动 chroot 修复。

三、升级内核

1. 对于 Ubuntu 22.04 LTS

# 更新软件包列表sudoapt update # 安装 HWE(硬件启用)内核(推荐)sudoaptinstall --install-recommends linux-generic-hwe-22.04 # 或者安装特定版本sudoaptinstall linux-image-6.5.0-xx-generic linux-headers-6.5.0-xx-generic 

2. 对于 Ubuntu 24.04 LTS

sudoapt update sudoaptinstall linux-generic 

3. 下载并安装特定版本

# 创建临时目录mkdir ~/kernel-update &&cd ~/kernel-update # 下载内核文件(以6.8.10为例,请替换为最新版本)wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.8.10/amd64/linux-headers-6.8.10-060810-generic_6.8.10-060810.202404191035_amd64.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.8.10/amd64/linux-headers-6.8.10-060810_6.8.10-060810.202404191035_all.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.8.10/amd64/linux-image-unsigned-6.8.10-060810-generic_6.8.10-060810.202404191035_amd64.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.8.10/amd64/linux-modules-6.8.10-060810-generic_6.8.10-060810.202404191035_amd64.deb # 安装所有下载的内核包sudo dpkg -i *.deb # 更新GRUB引导sudoupdate-grub

4. 通用后续步骤

1)重启并验证

# 重启系统sudoreboot# 重启后验证新内核uname -r 

2)清理旧内核(可选)

# 查看所有已安装的内核 dpkg -l |grep linux-image # 删除旧内核(保留当前和上一个版本即可)# 只会删除不再需要的旧内核,保留当前运行的和最新的sudoapt autoremove # 或者手动删除特定旧内核sudoapt remove linux-image-5.15.0-xx-generic linux-headers-5.15.0-xx-generic 

注意:直接删除正在运行的内核可能会导致系统无法启动,特别是对于 Linux To Go 系统。

3)内核管理实用命令

# 查看内核信息# 查看当前内核版本uname -r uname -a # 查看所有已安装的内核 dpkg -l |grep linux-image ls /boot/vmlinuz* # 查看系统启动选项cat /boot/grub/grub.cfg |grep menuentry # 选择启动内核# 查看GRUB菜单项grep menuentry /boot/grub/grub.cfg # 设置默认启动内核(以第3个菜单项为例)sudo grub-set-default 2sudoupdate-grub

在 Ubuntu 24.04 中,内核为 6.8+ ,MT7925 网卡应该:

  • 开机后自动识别
  • 在网络列表中正常显示可用 WiFi
  • 能够成功连接并保持稳定
  • 支持 2.4GHz 和 5GHz 频段
  • MT7925 网卡在 Ubuntu 24.04 中不需要额外安装驱动

5. MT7925 网卡驱动没有加载

输入命令 lsmod|grep mt792 无输出,说明 MT7925 网卡的驱动没有加载。

首先运行以下命令进行完整诊断:

# 1. 检查网卡硬件是否被系统识别 lspci -v |grep -i -A 10 -B 5 mediatek # 或 lspci -nn |grep 14c3: # 2. 检查内核是否检测到网卡dmesg|grep -i mt792 dmesg|grep -i 14c3: # 3. 检查驱动模块是否存在 modinfo mt7921e ls /lib/modules/$(uname -r)/kernel/drivers/net/wireless/mediatek/mt76/ # 4. 检查固件文件ls /lib/firmware/mediatek/ |grep mt792 
  1. 手动加载驱动:
# 尝试手动加载驱动sudo modprobe mt7921e # 检查是否加载成功 lsmod |grep mt792 # 如果成功,设置为开机自动加载echo"mt7921e"|sudotee -a /etc/modules 
  1. 驱动模块存在但未自动加载:
# 查看所有可用的无线驱动模块find /lib/modules/$(uname -r) -name "*.ko"|grep wireless # 检查模块依赖关系 modinfo mt7921e |grep depends # 手动加载依赖模块(如果需要)sudo modprobe mt76 sudo modprobe mt76-connac-lib sudo modprobe mt7921-common sudo modprobe mt7921e # 验证加载 lsmod |grep mt76 

6. uname -r 显示升级前内核版本

说明新安装的内核没有设置为默认启动项,系统仍然在启动时选择了旧的内核。

# 查看当前运行的内核uname -r # 查看系统中所有已安装的内核 dpkg -l |grep linux-image # 查看 /boot 目录下的内核文件ls -la /boot/vmlinuz* # 查看 GRUB 菜单项grep menuentry /boot/grub/grub.cfg 

方法:

# 修改 GRUB 配置永久生效sudonano /etc/default/grub # 将以下行修改为:GRUB_DEFAULT=0# 或者GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-xx-generic"# 更新 GRUB:sudoupdate-grubsudoreboot
参考文章:
联发科无线网卡MT7925安装Ubuntu无法显示WiFi标识
联想Lenovo R7000P-2025款 安装 Ubuntu linux 后没有 mt7925 网卡驱动(网卡不能正常运行或无法识别)的解决方案

Read more

蓝桥杯C++组算法知识点整理 · 考前突击(上)【小白适用】

蓝桥杯C++组算法知识点整理 · 考前突击(上)【小白适用】

【背景说明】本文的作者是一名算法竞赛小白,在第一次参加蓝桥杯之前希望整理一下自己会了哪些算法,于是有了本文的诞生。分享在这里也希望与众多学子共勉。如果时间允许的话,这一系列会分为上中下三部分和大家见面,祝大家竞赛顺利! 【文风说明】本文主要会用代码+注释的方式来解释内容。相信学过编程的人都会发现程序比长篇大论更易理解! 目录 一、语言基础 1.1 编程基础 1.2 竞赛常用库函数 1.2.1 sort 函数 1.2.2 最值查找 1.2.3 二分查找 1.2.4 大小写转换 1.2.5 全排列 1.2.6 其它库函数整理 1.3 STL的用法 1.

By Ne0inhk
【强化学习】近端策略优化算法(PPO)万字详解(附代码)

【强化学习】近端策略优化算法(PPO)万字详解(附代码)

📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在👉强化学习专栏:        【强化学习】- 【单智能体强化学习】(9)---《近端策略优化算法(PPO)详解》 近端策略优化算法(PPO)详解 目录 PPO算法介绍 1. 背景 2. PPO 的核心思想 3. PPO 流程 4. 为什么 PPO 很强? 5. PPO 的直观类比 PPO算法的流程推导及数学公式 1. 背景与目标 2. PPO的概率比率 3. 优化目标 4. 值函数优化 5. 策略熵正则化

By Ne0inhk
《算法题讲解指南:优选算法-滑动窗口》--13 水果成篮

《算法题讲解指南:优选算法-滑动窗口》--13 水果成篮

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--从优选到贪心 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 13 水果成篮 题目链接: 编辑 题目示例: 解法(滑动窗口): 算法思路: 算法流程: C++代码演示:方法一(使用容器) C++代码演示:方法二(用数组模拟哈希表) 算法总结及流程解析: 结束语 13 水果成篮 题目链接: 题目示例: 解法(滑动窗口): 算法思路:       研究的对象是一段连续的区间,可以使用【滑动窗口】思想来解决问题。       让滑动窗口满足:窗口内水果的种类只有两种。       做法:右端水果进入窗口的时候,

By Ne0inhk
【算法通关指南:算法基础篇】高精度专题:一篇破除超数运算问题

【算法通关指南:算法基础篇】高精度专题:一篇破除超数运算问题

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏:《算法通关指南》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 一、高精度 * 二、高精度加法 * 2.1【模板】加法 * 2.1.1题目 * 2.1.2 算法原理 * 2.2.3代码 * 三、高精度减法 * 3.1【模板】减法 * 3.1.1题目 * 3.1.2 算法原理 * 3.2.3代码 * 四、高精度乘法 * 4.1【

By Ne0inhk