mt7601u linux驱动编译,移植MT7601U AP Linux 驱动至Orangepi-PC2开发板

简单一下记录移植MT7601U AP Linux 驱动至Orangepi-PC2开发板的过程。

二  环境描述

1、Orangpi-PC2开发板(Linux Orangepi 3.10.65 #12 SMP PREEMPT Sat Mar 4 18:05:52 CST 2017 aarch64 aarch64 aarch64 GNU/Linux)

2、wifi网卡(360 mini wifi ,芯片组MT7601U)

3、OrangePi-PC2开发SDK

4、MT7601U AP for Linux 驱动

三  移植过程

1、首先修改工程Makefile

下载的驱动中没有针对ORANGEPI-PC2平台的定制宏,这里需要自己手动添加:

(1)在开始30行左右添加如下内容:

#PLATFORM: Target platform

PLATFORM = ORANGEPI_PC2

(2)在200行左右添加如下内容:

ifeq ($(PLATFORM),ORANGEPI_PC2)

# Linux 3.10 Change to your local setting

LINUX_SRC = /work/orangePi/OrangePi_H5SDK/kernel

LINUX_SRC_MODULE = /work/orangePi/OrangePi_H5SDK/kernel/drivers/net/wireless/

CROSS_COMPILE = /work/orangePi/OrangePi_H5SDK/toolchain/gcc-linaro-aarch/bin/aarch64-linux-gnu-

endif

Note:我的SDK是放在/work/orangePi目录下的

(3)在400行左右将下面的内容

$(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules

替换为

ifeq ($(PLATFORM),ORANGEPI_PC2)

$(MAKE) ARCH=arm64 CROSS_COMPILE=$(CROSS_COMPILE) -C  $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules

else

$(MAKE) -C $(LINUX_SRC) SUBDIRS=$(RT28xx_DIR)/os/linux modules

endif

2、修改驱动源码,支持360 wifi网卡

360 mini wifi的USB ID是ID 148f:760b,需要将该ID添加到rtusb_dev_id列表中,否则加载驱动后会探测不到网卡;

修改rtusb_dev_id.c文件的dev id列表如下:

/* module table */

USB_DEVICE_ID rtusb_dev_id[] = {

{USB_DEVICE(0x148f,0x6570)}, /* Ralink 6570 */

{USB_DEVICE(0x148f,0x7650)}, /* MT7650 */

{USB_DEVICE(0x148f,0x6370)}, /* Ralink 6370 */

{USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */

{USB_DEVICE(0x148f,0x760b)}, /* 360 mini wifi */

{ }/* Terminating entry */

};

3、修改申请的DMA内存大小,否则驱动会加载失败,提示如下错误:

--> RTMPAllocTxRxRingMemory

[   74.801467]

[   74.807607] ---> RTMPFreeTxRxRingMemory

[   74.811927]

[   74.816152] ERROR!!! Failed to allocate memory - TxRxRing

[   74.823792]

[   74.828817] rt2870: probe of 4-1:1.0 failed with error -1

[   74.835193] usbcore: registered new interface driver rt2870

解决方法:将rt_linux.h中的BULKAGGRE_SIZE调整为10,rtmp_usb.h中的RXBULKAGGRE_SIZE调整为2;  (备注:后续还需要定位一下为什么orangePi-PC2的DMA 内存剩下这么小)

4、编译驱动

直接使用make命令即可;

5、编译成功后会在os/Linux目录下生成mt7601Uap.ko内核模块,将该模块拷贝至Orangepi开发板上(我这里已经配置好了samba共享),并加载;

6、使用ifconfig命令配置该网卡,

ifconfig ra0 10.10.10.100

使用iwconfig命令应该会看到如下信息:

ra0       RTWIFI SoftAP  ESSID:"RT2860AP"

Mode:Managed  Channel=11  Access Point: 24:05:0F:64:BB:E9

Bit Rate=150 Mb/s

使用手机搜索一下周围的wifi热点,应该会发现名称为RT2860AP的热点;

7、至此驱动部分移植完成,后续还需进行热点配置的调试;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值