mt7601驱动移植

  1. 内核配置

[*] Networking support  --->

        -*-   Wireless  --->

               <*>   cfg80211 - wireless configuration API

               [ ]     nl80211 testmode command

               [ ]     enable developer warnings

               [ ]     cfg80211 regulatory debugging

               [ ]     enable powersave by default                                                                                                

[ ]     cfg80211 wireless extensions compatibility                                                                                  

<*>   Generic IEEE 802.11 Networking Stack (mac80211)                                                                              

Default rate control algorithm (Minstrel)  --->                                                                               

[ ]   Enable mac80211 mesh networking (pre-802.11s) support                                                                        

[ ]   Trace all mac80211 debug messages                                                                                             

[ ]   Select mac80211 debugging features  ----

       Device Drivers  --->

              [*] Network device support  --->

                     [*]   Wireless LAN  --->                                                                                 

<*>   USB ZD1201 based Wireless device support                                                                                     

              [*]USBsupport--->

<*>   Support for Host-side USB

<*>     EHCI HCD (USB 2.0) support                                                                                                 

[ ]       Root Hub Transaction Translators                                                                                          

[*]       Improved Transaction Translator scheduling                                                                               

<*>     Generic EHCI driver for a platform device

  1. 驱动修改
    1. 解压驱动源码,vi ./Makefile进入Makefile需修改如下:
        1. 修改以下代码确保驱动模式为station

WIFI_MODE = STA

ifeq ($(WIFI_MODE),)

RT28xx_MODE = STA

#RT28xx_MODE = AP

#RT28xx_MODE = APSTA

else

RT28xx_MODE = $(WIFI_MODE)

Endif

                     2.  添加相关平台信息

#PLATFORM = PANDA

#PLATFORM = MSTAR

PLATFORM = HISILICON

#SUB_PLATFORM=HI3518EV200

#SUB_PLATFORM=HI3516CV300

#SUB_PLATFORM=AK3918EV200

#SUB_PLATFORM=HI3516D

SUB_PLATFORM=HI3521D

3.添加编译工具链及内核目录

               ifeq ($(PLATFORM),HISILICON)

PREALLOC = YES

                      ifeq ($(SUB_PLATFORM),HI3521D)

LINUX_SRC = /home/SDK/linux-3.18.y_3521D_SPC040

CROSS_COMPILE = /opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-

endif

export ARCH=arm

endif

 

    1. vi include/os/rt_linux.h 修改rt_linux.h文件
        1. 修改STA_PROFILE_PATH,后续驱动编译成功后须将编译生成的MT7601USTA.dat文件拷贝到当前目录下

    1. 修改完文件后返回驱动最上层目录开始编译,如无意外便可以编译成功,拷贝当前目录下的MT7601USTA.dat文件及os/linux/目录下的mtprealloc.ko、mt7601Usta.ko至开发板,
  1. WIFI驱动加载
    1. 插上usb网卡后,正常情况下会有如下打印:

usb 1-1: new high-speed USB device number 20 using ehci-platform

              也可用lsusb命令查看相关usb信息打印如下:

                     Bus 001 Device 020: ID 148f:7601

Bus 001 Device 001: ID 1d6b:0002

Bus 002 Device 001: ID 1d6b:0001

本网卡固定ID为148f:7601

  1.  

加载驱动,先安装 mtprealloc.ko,insmod mtprealloc.ko正常会有如下打印

==>[73]:PreBuff:0xc5600000, DmaAddr:0x85600000

==>[74]:PreBuff:0xc5608000, DmaAddr:0x85608000

==>[75]:PreBuff:0xc5610000, DmaAddr:0x85610000

==>[76]:PreBuff:0xc5618000, DmaAddr:0x85618000

==>[77]:PreBuff:0xc5420000, DmaAddr:0x85420000

==>[78]:PreBuff:0xc5428000, DmaAddr:0x85428000

==>[79]:PreBuff:0xc5430000, DmaAddr:0x85430000

==>[80]:PreBuff:0xc69cbc00, DmaAddr:0x869cbc00

install prealloc ok 

再安装mt7601Usta.ko  ,insmod mt7601Usta.ko正常会有如下打印

STA Driver version-JEDI.MP1.mt7601u.v1.6

Compile time-Sep  5 2018,09:05:08

==>WaitForAsicReady MAC_CSR0=0x76010500

==>WaitForAsicReady MAC_CSR0=0x76010500

NVM is EFUSE

Endpoint(8) is for In-band Command

Endpoint(4) is for WMM0 AC0

Endpoint(5) is for WMM0 AC1

Endpoint(6) is for WMM0 AC2

Endpoint(7) is for WMM0 AC3

Endpoint(9) is for WMM1 AC0

Endpoint(84) is for Data-In

Endpoint(85) is for Command Rsp

80211> RFICType = 3

NumOfChan ===> 58

80211> Number of channel = 0x44

80211> Number of rate = 12

80211> CurTxPower = 0 dBm

80211> TxStream = 0

crda> requlation requestion by core: 00

80211> CFG80211_Register

usbcore: registered new interface driver rt2870

    1. 驱动加载正常后即可用ifconfig wlan0 up命令拉起网卡,再用ifconfig 查看相关网卡信息会有如下打印

wlan0     Link encap:Ethernet  HWaddr 14:6B:9C:02:CB:79 

          inet6 addr: fe80::166b:9cff:fe02:cb79/64 Scope:Link

 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:87 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:17788 (17.3 KiB)  TX bytes:0 (0.0 B)

至此无线网卡加载完成

  1. 网络连接

目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口。

     wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络。wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA(目前大部分路由都是WPA/WPA2 加密)的AP

    1. wpa_supplicant工具

https://blog.csdn.net/andylauren/article/details/52155927(具体可以参考此博客)

 

1、首先解压wpa_supplicant-0.7.3.tar.gz,在解压得到的文件夹中找到patches目录,

2、解压openssl-0.9.8e.tar.gz,把wpa_supplicant-0.7.3里面的patches文件夹下的openssl-0.9.8e-tls-extensions.patch文件拷贝到openssl-0.9.8e目录下,运行:pathc–p1<openssl-0.9.8e-tls-extensions.patch

3、编译openssl

首先建立openssl的安装目录,建议安装在openssl-0.9.8e目录下,因为生成的库等只在交叉编译wpa_supplicant时使用,这样可以保持系统干净。我建立的目录为openssl-arm。

进入openssl-0.9.8e目录修改Makefile,修改如下:

CC=arm-linux-gcc

INSTALLTOP=刚才你建立的安装目录,要使用绝对路径,不然在make install的时候会出错

OPENSSLDIR=刚才你建立的安装目录,要使用绝对路径,不然在make install的时候会出错

我的配置为

 

然后执行make和make install

会在openssl-arm目录中生成我们移植wpa_supplicant需要的头文件和库文件。

4、编译wpa_supplicant

首先进入wpa_supplicant目录,建立配置文件:

cp defconfig .config

然后修改.config,增加以下内容:

CC=arm-linux-gcc -L/home/linux/arm/wpa-supplicant/openssl-arm/lib

CFLAGS+= -I/home/linux/arm/wpa-supplicant/openssl-arm/include

LIBS+= -L/home/linux/arm/wpa-supplicant/openssl-arm/lib

CC是指定交叉编译链,并且通过-L指定刚刚编译好的openssl的库文件目录

CFLAGS是通过-I指定刚刚编译好的openssl的头文件目录

LIBS通过-L指定刚刚编译好的openssl的库文件目录

设置好了之后就可以保存退出,进行make

make后会在该文件夹下生成我们需要的二进制可执行文件

wpa_supplicant,wpa_cli,wpa_passphrase

我们将wpa_supplicant文件拷贝到开发板的/data目录下

5、编写wpa_supplicant.conf文件

在该文件夹下有无线网卡配置文件wpa_supplicant.conf需要我们修改后并拷贝到开发板的/data目录下。

修改内容如下:

ctrl_interface=/var/run/wpa_supplicant

network={

        ssid="HSNVR68443"

        scan_ssid=1

        psk="lspassword"

        key_mgmt=WPA-PSK

ssid为需要连接路由的ssid,key_mgmt为路由的加密方式,psk为路由的连接密码

    1. wireless-tools工具

解压wireless_tools.30.rtl.tar.gz,vi Makefile 修改Makefile

CC = arm-hisiv500-linux-gcc

                     make编译将编译出的iwconfig、iwlist工具拷贝到开发板

    1. wifi连接

由于wpa_supplicant工具编译出的wpa_cli工具是以命令台的形式使用的,所以我们用wpa_supplicant命令来连接WiFi,用iwconfig、iwlist命令来查看相关信息。

        1. iwlist wlan0 scanning 扫描AP,打印如下:

 

        1. 用wpa_supplicant命令连接wifi

配置好wpa_supplicant.conf文件后可用如下命令

wpa_supplicant -iwlan0 -Dwext -c/data/wpa_supplicant.conf -dd &
wpa_supplicant -iwlan0 -Dwext -c/data/wpa_supplicant.conf &
这两条指令中的任意一个,-dd的会输出更过的信息,打印如下

        1. 用udhcpc或ifconfig手动分配IP

使用udhcpc -i wlan0 打印如下

        1. 用ifconfig和iwconfig查看wifi信息,打印如下

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值