Foxconn / Hon Hai MT7922 在 Linux 下无法使用蓝牙
今天在arch群里看见的问题,有解决方案
问题起因
群友冬莱在使用 MT7922,发哥的Wireless网卡。
试图开启蓝牙,没能成功。
我的机器也是 MT7922(RZ616),我的就没有问题,新内核自带 driver。
研究
经过排查,是因为富士康/鸿海代工的 MT7922 的
- Vendor id 是 0x0489
- Product id 是 0xe111
所以 USB ID 是 0489:e111
于是使用 AI 搜索:
I’ve noticed that the hardware database contains two entry
for: 0489:e111
in: /usr/lib/udev/hwdb.d/20-gphoto2.hwdb and /usr/lib/udev/hwdb.d/69-libmtp.hwdb
That are responsible for the bluetooth hardware to be falsely considered as a MTP device.
原来是蓝牙设备被 GVFS/GIO 识别为 MTP 设备了!只有在富士康代工的 MT7922 上,会发生这种情况。
GVFS(GNOME Virtual File System)和 GIO 是大量 Linux 发行版使用的用户空间文件系统实现。当检测到媒体设备(相机、手机、媒体播放器)时,会自动尝试:
- 将设备挂载为存储位置
- 创建一个虚拟文件系统端点用于文件浏览
- 声称对该USB设备拥有独占访问权限
- 触发关于“新设备”的桌面通知
然而这次,一个无线网卡被当作媒体设备挂载了,就不能作为网络/蓝牙设备使用了。
解决方案
找到了解决脚本,仓库:
https://github.com/LuanAdemi/mediatek7925e-bluetooth-fix
虽然是 MT7925e,但是都通用,因为需要修改的就是/usr/lib/udev/hwdb.d中的设备ID,它们都是一样的。
Foxconn / Hon Hai MT7922 在 Linux 下无法使用蓝牙
https://blog.zlicdt.top/2026/02/09/foxconn-mt7922-linux/