Ubuntu 24.04安装MT7902无线网卡驱动指南
1. 在Ubuntu 24.04上启用MT7902无线网卡的全过程记录
作为一名长期使用Linux的硬件爱好者,最近入手了搭载MediaTek MT7902 WiFi 6E/蓝牙5.x模块的华硕Vivobook 16笔记本。这个在Windows下表现优异的无线方案,在Linux平台却经历了长达两年的驱动缺失。直到Linux 7.0内核才正式纳入主线支持,但Ubuntu 24.04默认使用的仍是较旧内核版本。经过实测,我找到了无需等待官方更新的驱动安装方案,完整支持WiFi和蓝牙功能。
重要提示:本方案仅适用于PCIe接口的MT7902模块(设备ID 7902),SDIO接口设备需要其他解决方案。执行前请通过
lspci | grep 7902确认设备存在。
2. 驱动安装前的准备工作
2.1 硬件与系统环境确认
我的测试平台配置如下:
- 笔记本型号:ASUS Vivobook 16 (M1603QA)
- 无线模块:MediaTek AW-XB552NF (PCIe接口)
- 操作系统:Ubuntu 24.04 LTS (内核版本6.8.0-31-generic)
- 路由器:小米AX6000 WiFi 6路由器
通过终端命令验证硬件识别情况:
$ lspci -nn | grep 7902 02:00.0 Network controller [0280]: MEDIATEK Corp. Device [14c3:7902]2.2 开发工具链安装
编译驱动需要基本的开发环境:
sudo apt update sudo apt install -y git build-essential linux-headers-$(uname -r)这里特别要注意linux-headers的版本必须与当前运行内核完全一致,可通过uname -r查询。
3. WiFi驱动编译与安装详解
3.1 获取社区维护的驱动代码
开发者hmtheboy154已将驱动反向移植到Linux 6.6-6.19内核,我们直接克隆其仓库:
git clone https://github.com/hmtheboy154/mt7902 cd mt7902/3.2 编译过程的技术细节
执行编译时建议使用多线程加速:
make -j$(nproc)这里的-j参数指定并行编译任务数,nproc会自动获取CPU核心数。编译过程中会生成以下关键文件:
- mt7902e.ko:内核模块主体
- firmware/mt7902_*.bin:无线固件文件
3.3 安装与加载驱动
安装命令序列:
sudo make install # 安装内核模块 sudo make install_fw # 安装固件文件 sudo modprobe mt7902e # 加载模块为避免每次重启手动加载,可添加到自动加载列表:
echo "mt7902e" | sudo tee /etc/modules-load.d/mt7902e.conf3.4 功能验证与性能测试
驱动加载后,通过以下命令观察内核日志:
dmesg | grep mt7902正常情况会显示硬件初始化信息,包括ASIC版本、固件构建时间等。
使用iperf3进行吞吐量测试(路由器IP为192.168.31.12):
# 下载测试 iperf3 -t 60 -c 192.168.31.12 -i 10 -R # 上传测试 iperf3 -t 60 -c 192.168.31.12 -i 10在我的测试环境中,5GHz频段下获得了400-450Mbps的实际吞吐,接近600Mbps的理论连接速率。
4. 蓝牙功能实现方案
4.1 专用分支的获取与编译
蓝牙驱动位于仓库的独立分支:
git clone https://github.com/hmtheboy154/mt7902 -b bluetooth_backport btusb_mt7902 cd btusb_mt7902/ make -j$(nproc) sudo make install sudo make install_fw4.2 冲突模块处理技巧
原有蓝牙驱动会产生冲突,必须卸载:
sudo rmmod btusb btmtk sudo modprobe btusb_mt7902永久解决方案是创建黑名单配置:
echo "blacklist btusb btmtk" | sudo tee /etc/modprobe.d/blacklist_btusb.conf4.3 蓝牙功能验证
通过图形界面或命令行启用蓝牙:
bluetoothctl [bluetooth]# power on [bluetooth]# scan on成功扫描到周边设备并完成文件传输测试。
5. 常见问题排查指南
5.1 驱动加载失败处理
若出现"Exec format error"错误,通常原因包括:
- 内核头文件版本不匹配
- 解决方案:
apt install linux-headers-$(uname -r)
- 解决方案:
- 存在模块冲突
- 按前文方法移除冲突模块
5.2 WiFi连接不稳定优化
在/etc/modprobe.d/mt7902e.conf中添加参数:
options mt7902e disable_ps=1这会禁用节能模式,提升传输稳定性,代价是略微增加功耗。
5.3 蓝牙音频延迟调整
编辑/etc/bluetooth/main.conf:
[General] FastConnectable=true JustWorksRepairing=always6. 维护与升级建议
当系统内核升级后,需要重新编译驱动:
cd mt7902/ git pull make clean make -j$(nproc) sudo make install建议将驱动目录保留在本地,或添加git remote跟踪原仓库更新。目前该驱动已进入Linux 7.0主线,待Ubuntu更新内核后即可过渡到官方驱动。
这个方案让我在官方支持前提前用上了MT7902的全部功能,实测连续工作一周无异常断连。对于同样受困于Linux无线驱动问题的用户,希望这份详细记录能节省你们的摸索时间。
