这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » MT7601驱动移植

共1条 1/1 1 跳转至

MT7601驱动移植

高工
2018-06-19 08:34:25     打赏

1、解压MT7601驱动 
*tar -xvf DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2 
cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913*

2、修改Makefile 
该版本的驱动包支持多种不同平台的编译配置,默认的Makefile编译平台是PC,见Makefile 第30行: 
#PLATFORM: Target platform 
PLATFORM = PC 
修改PC平台(Makefile第198行)对应的交叉编译参数和内核路径,如下: 
这里写图片描述 
修改为: 
这里写图片描述
保存关闭

3、检查wifi结点名称 
Android下的HAL和脚本中的wifi设备结点名称用的wlan0,嵌入Linux设备中wifi设备结点名称一般使用的ra0,所以,需要根据实际应用对象,进行修改,名称定义位置: 
*cd DPO_MT7601U_LinuxSTA_3.0.0.4_20130913 
vi include/rtmp_def.h +1604* 
如下: 
这里写图片描述 
所以,如果是为Android平台编译7601驱动,就需要开启编译宏参数:ANDROID_SUPPORT。这个参数是在os/linux/config.mk中定义的,见config.mk 第373行: 
ifeq ($(HAS_ANDROID_SUPPORT),y) 
WFLAGS += -DANDROID_SUPPORT 
endif 
即由HAS_ANDROID_SUPPORT=n或者HAS_ANDROID_SUPPORT=y来决定wifi结点名称是使用“wlan”,还是”ra”。该驱动包中默认使用的是Linux环境中的”ra”结点名称。

4、编译代码生成mt7601Usta.ko驱动模块 
由于我是为ARM平台的设备编译,上面修改的是PC平台的编译参数,而Makefile中依赖了ARCH参数,所以还应该指定ARCH=arm,下面就可以编译模块了: 
make ARCH=arm CHIPSET=7601U 
如果以上修改没有问题,编译通过之后即可以得到station模式的wifi驱动模块mt7601Usta.ko,如下: 
这里写图片描述

5、注意事项 
在编译时出错,如下图所示: 
这里写图片描述
原因是在修改Makefile的PC平台编译参数时指定了linux-3.0.y内核路径:”LINUX_SRC = /lodb3/Hi3518_SDK_V1.0.8.1/osdrv/kernel/linux-3.0.y”,但该路径下的内核没有提前编译,导致7601所依赖的内核配置文件和模块版本信息缺失而无法编译通过。解决办法:重新编译内核,内核编译通过后再编译7601驱动模块即可。

6、编译mt7601Uap.ko 
编译前的修改方法同上,此处不赘述。




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]