嵌入式设备路由网络共享开发(3):WIFI驱动(MT7601)的移值

前言:

    本文针对的是MT7601 WIFI驱动在linux下的移值,对于MT7601的两种模式STA和AP模式都有说明,包括对支持wifi内核的配置,wireless_tools工具的移值。

一、内核支持配置

1、配置内核支持MT7601 wifi驱动

# make ARCH=arm CROSS_COMPILE=arm-hismall-linux- menuconfig
[*] Networking support  --->
  [*] Wireless --->

                        

[*]Device Drivers  --->
  [*] Network device support --->

             [*] Wireless LAN --->

                       

                   [*] Ralink driver support  ---> 

                      

2、编译内核

# make ARCH=arm CROSS_COMPILE=arm-hismall-linux- uImage

注意:先编译内核,通过之后,再编译wifi驱动

二、编译MT7601(AP模式) 驱动

1、下载驱动源码https://download.csdn.net/download/u012478275/12664322

2、解压  MT7601U_LinuxAP_3.0.0.1.gz

#  tar xvf  MT7601U_LinuxAP_3.0.0.1.gz

3、配置编译环境

    修改 Makefile,设置平台:PLATFORM = HI3520dV3

#PLATFORM: Target platform
#PLATFORM = PC
PLATFORM = HI3520dV3
#PLATFORM = 5VT
#PLATFORM = IKANOS_V160
...
ifeq ($(PLATFORM),HI3520dV3)
# Linux 3.10.0
LINUX_SRC = /home/system/kernel/linux-3.10.y
CROSS_COMPILE = arm-hisiv300-linux-
export ARCH=arm
endif

 根据需求配置config.mk

# vi   os/linux/config.mk

ifeq ($(PLATFORM),HI3520dV3)
HAS_CFG80211_SUPPORT=y
HAS_P2P_SUPPORT=y
HAS_USB_BULK_BUF_ALIGMENT=y
HAS_USB_BULK_BUF_PREALLOC=y
EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include
#EXTRA_CFLAGS +=-Wframe-larger-than=4096
#EXTRA_CFLAGS +=-Wno-error=date-time
#EXTRA_CFLAGS +=-Wno-date-time
export EXTRA_CFLAGS
endif

注意:LINUX_SRC = /home/system/kernel/linux-3.10.y  为内核路径;
           CROSS_COMPILE = arm-hisiv300-linux-  为交叉编译工具;

4、编译驱动

# make

编译成功生成  os/linux/mt7601Uap.ko 驱动文件

三、编译MT7601(STA模式)驱动

1、下载驱动源码https://download.csdn.net/download/u012478275/12664316

2、解压  DPA_MT7601U_LinuxSTA_3.0.0.4.tar.gz

#  tar xvf  DPA_MT7601U_LinuxSTA_3.0.0.4.tar.gz

3、配置编译环境

修改   MODULE/Makefile  NETIF/Makefile    UTIL/Makefile

设置平台:PLATFORM = HI3520dV3

#PLATFORM: Target platform
#PLATFORM = PC
PLATFORM = HI3520dV3
#PLATFORM = 5VT
#PLATFORM = IKANOS_V160
...
ifeq ($(PLATFORM),HI3520dV3)
# Linux 3.10.0
LINUX_SRC = /home/system/kernel/linux-3.10.y
CROSS_COMPILE = arm-hisiv300-linux-
export ARCH=arm
endif

根据需求分别配置 MODULE/os/linux/config.mk   NETIF/os/linux/config.mk    UTIL/os/linux/config.mk

ifeq ($(PLATFORM),HI3520dV3)
HAS_CFG80211_SUPPORT=y
#HAS_P2P_SUPPORT=y
HAS_USB_BULK_BUF_ALIGMENT=y
HAS_USB_BULK_BUF_PREALLOC=y
EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include
#EXTRA_CFLAGS +=-Wframe-larger-than=4096
#EXTRA_CFLAGS +=-Wno-error=date-time
#EXTRA_CFLAGS +=-Wno-date-time
export EXTRA_CFLAGS
endif

注意:LINUX_SRC = /home/system/kernel/linux-3.10.y  为内核路径;
           CROSS_COMPILE = arm-hisiv300-linux-  为交叉编译工具;

4、编译驱动

# make

编译成功生成  MODULE/os/linux/mt7601Usta.ko   NETIF/os/linux/mtnet7601Usta.ko  UTIL/os/linux/mtutil7601Usta.ko 三个驱动文件

四、无线网卡设置工具wireless_tools

1、下载工具源码http://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html

2、解压  wireless_tools.29.tar.gz

#  tar xvf  wireless_tools.29.tar.gz

3、配置编译环境

# vi   Makefile

 

## Compiler to use (modify this for cross compile).
CC = arm-hisiv300-linux-gcc
## Other tools you need to modify for cross compile (static lib only).
AR = arm-hisiv300-linux-ar
RANLIB = arm-hisiv300-linux-ranlib

注意: arm-hisiv300-linux-  为交叉编译工具

4、编译驱动

  # make

  编译成功生成  iwconfig、iwlist、iwpriv、iwevent、iwgetid、iwspy  等无线网卡设置工具,libiw.so.29等库文件

5、拷贝到开发板,配置环境

   把libiw.so.29拷贝到/lib下,iwconfig、iwlist、iwpriv、iwevent、iwgetid、iwspy拷贝到/usr/sbin/下;

五、STA模式实例运行测试

1、检查wifi模块

#  lsusb

Bus 001 Device 002: ID 148f:7601

2、驱动加载

#  insmod  /ko/mtutil7601Usta.ko
#  insmod  /ko/mt7601Usta.ko
#  insmod  /ko/mtnet7601Usta.ko

3、启动无线网卡

#  ifconfig ra0 up

4、配置wifi模式,连接wifi

#  iwpriv ra0 set NetworkType=Infra
#  iwpriv ra0 set AuthMode=WPA2PSK
#  iwpriv ra0 set EncrypType=AES
#  iwpriv ra0 set SSID="TEST"
#  iwpriv ra0 set WPAPSK="12345678"

SSID:需要连接wifi的名字,WPAPSK:wifi密码

5、启动udhcpc配置ra0网卡

#  udhcpc -i ra0 &

通过STA模式,设备就可以通过wifi模块连接wifi上网了。

六、AP模式实例运行测试

1、检查wifi模块

#  lsusb

Bus 001 Device 002: ID 148f:7601

2、驱动加载

#  insmod /ko/mt7601Uap.ko

3、启动无线网卡

#  ifconfig ra0 up

4、配置wifi模式,连接wifi

#  iwpriv ra0 set NetworkType=Infra
#  iwpriv ra0 set AuthMode=WPA2PSK
#  iwpriv ra0 set EncrypType=AES
#  iwpriv ra0 set SSID=13000000000
#  iwpriv ra0 set WPAPSK="12345678"

SSID:路由模式wifi名字,WPAPSK:wifi密码

5、启动udhcpd配置ra0网卡

5.1  配置网卡ra0IP和子网掩码

#  ifconfig ra0 192.168.200.1 netmask 255.255.255.0 up

5.2 编写udhcpd_wifi.conf配置文件

start           192.168.200.2           
end             192.168.200.254 
interface       ra0            
opt     router  192.168.200.1
opt     subnet  255.255.255.0
opt     dns     202.96.134.33

#  udhcpd -f  /etc/udhcpd_wifi.conf &

通过AP模式,设备就可以通过wifi模块路由出wifi供给其他设备连接,但是这样连的wifi是不能上网的,如果想上网,还需要通过iptables把可以上网的网卡转换到wifi模块网卡,这样就可以上网了,对于iptables的linux下移值和使用,请查看博主其他文章;

至此,linux下MT7601 wifi模块驱动的移值基本完成,如果你需要连接其他wifi上网,就把驱动设置为STA模式,也可以说是客服端模式,如果想要分享wifi给其他设备连接,可以设置为AP模式,也可以说是wifi路由模式,也就是日常的路由器;

 

 

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProYuan28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值