如何在Yocto 5.10-gatesgarth中为IMX6开发板启用mt7601u驱动?
问题描述
我使用IMX6开发板,默认Linux镜像未包含MediaTek mt7601u WIFI适配器驱动,尝试通过内核配置添加该驱动并重新编译,启用了以下选项:
CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m
但启动镜像后找不到该驱动,USB适配器仍无法工作,我使用的是Yocto 5.10-gatesgarth版本。
更新
我通过menuconfig界面保存配置为customized.config,然后为内核创建.bbappend文件并添加以下脚本以指定自定义配置文件:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:" SRC_URI += " \ file://customized.config \ " KERNEL_DEFCONFIG_tw-image-dev = "customized.config"
在镜像脚本中配置如下:
inherit tw-irtu-core inherit tw-dev IMAGE_INSTALL += " \ iw \ wpa-supplicant \ wireless-regdb-static" KERNEL_MODULE_AUTOLOAD += " mt7601u" export IMAGE_BASENAME = "tw-image-dev"
镜像编译成功且开发板可正常启动,但执行lsmod查看加载的模块时,mt7601u未被列出,请问如何正确实现驱动启用?
解决方案
针对Yocto Gatesgarth(5.10内核)环境下mt7601u驱动加载失败的问题,可按以下步骤排查修复:
1. 确认内核配置是否生效
- 编译完成后,检查生成的内核配置文件
build/tmp/work/<你的imx6机器名>/linux-imx/<版本>/build/.config,确认CONFIG_MT7601U=m和CONFIG_WLAN_VENDOR_MEDIATEK=y确实存在,若不存在说明自定义配置未被正确应用。 - 检查内核.bbappend文件路径:需放在
meta-<你的层>/recipes-kernel/linux/linux-imx/目录下,且customized.config要放在该目录的files子目录中。 - 若
tw-image-dev不是对应机器/镜像的专属后缀,可替换KERNEL_DEFCONFIG_tw-image-dev为KERNEL_DEFCONFIG。
2. 确保驱动模块被打包进镜像
- 动态编译的模块(
=m)需确认镜像包含对应模块,可在镜像脚本中添加:IMAGE_INSTALL += " kernel-module-mt7601u" - 也可以在内核.bbappend文件中强制指定模块安装:
MODULE_TASK += " mt7601u"
3. 修复模块自动加载配置
- 规范
KERNEL_MODULE_AUTOLOAD写法,去掉空格:KERNEL_MODULE_AUTOLOAD += "mt7601u" - 手动在开发板验证模块是否存在:执行
modprobe mt7601u,若提示module not found说明模块未编译/打包;若加载成功,可手动在/etc/modules-load.d/mt7601u.conf中添加mt7601u实现开机自动加载。
4. 验证USB设备识别
- 先确认硬件连接正常,执行
lsusb查看输出中是否存在MediaTek设备(通常ID为0e8d:7601),若不存在优先排查USB硬件或供电问题。
内容的提问来源于stack exchange,提问作者Majid
相关产品推荐
相关产品推荐

