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

《图论算法入门:掌握DFS和BFS,理解图与树的遍历》

《图论算法入门:掌握DFS和BFS,理解图与树的遍历》

🎬 博主名称:个人主页 🔥 个人专栏: 《算法通关》,《Java讲解》 ⛺️心简单,世界就简单 目录 序言 DFS 全排列问题 剪枝操作---n皇后问题 BFS 树与图的深度优先遍历 树,图的存储 遍历树,图 树与图的宽度优先遍历 序言 到图论这章节了,先讲讲DFS,BFS,然后讲树和图咋存储,还有树和图的DFS以及BFS, DFS dfs是一个执着的人(可爱捏),他一直搜索到叶子节点,然后才会回头去看别的路,然后继续一条路走到头 从数据结构来看,我们的dfs用的是栈 从空间来看,我们dfs空间使用是与高度成正比的O( h ) 我们dfs搜索是一条路走到头,所以我们dfs不具有最短路的性质 我们来看个最经典的题, 全排列问题 我们从0开始出发,然后往下搜,当搜到n的话就说明我们搜完了输出一下就行(用path记录搜索的路径),当搜完之后,我们肯定要恢复原状,所以把st给回复,path不用是因为,下次直接就覆盖了,不用再path[

By Ne0inhk
哈希的介绍

哈希的介绍

1. unordered系列关联式容器     下面来看哈希,首先看关联式容器unorder_map和unorder_set,它们底层是哈希表,用法和map set一样。下面浅浅过一下,它是单向迭代器,因为没有rbegin和rend。也就是红黑树和哈希表实现的map和set用法几乎相同,区别是:1.unorder系列是单向迭代器。2.unorder系列遍历出来不是有序的。下面演示一下: 它只能去重,不能排序,它也是有multi版本的。再演示一下unorder_map: 2.哈希     下面正式看哈希,什么是哈希呢?我们以前遇到的搜索有这样几类:首先是暴力查找,在一个数组里都查,这样非常慢。于是有人衍生出了有序数组的二分查找,但它的前提是排序,而且增删查改不方便,过程中为了保证有序会涉及大量的数据挪动。因此衍生出了平衡搜索树,此时基础上又出现了新的搜索,这种搜索叫哈希(散列)。它的本质是存储的值跟存储位置建立出一个映射关系,什么意思呢,先来看一个计数排序的样例: 有上面这样的一组值,最小的值是15,最大的值是30,总共开了16个空间。然后存映射关系(次数),15映射第一个位

By Ne0inhk
《算法题讲解指南:优选算法-分治-快排》--45.数组中的第k个最大元素,46.最小的k个数

《算法题讲解指南:优选算法-分治-快排》--45.数组中的第k个最大元素,46.最小的k个数

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--优选算法 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 45.数组中的第k个最大元素 题目链接: 题目描述: 题目示例: 解法(快速选择算法): 算法思路: C++算法代码: 算法总结及流程解析: 46.最小的k个数 题目链接: 题目描述: 题目示例: 编辑 解法(快速选择算法): 算法思路: C++算法代码: 算法总结及流程解析: 结束语 45.数组中的第k个最大元素 题目链接: 215. 数组中的第K个最大元素 - 力扣(LeetCode) 题目描述: 题目示例:

By Ne0inhk