打印
[应用方案]

NUC972无线网卡MT7601移植笔记

[复制链接]
4140|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 lzy804032511 于 2016-5-23 09:50 编辑

之前公司用的新唐的972,一直感觉不错,买了块安米的972开发板和必联的AR8无线网卡,想把无线网卡挂到972上面去,写下移植过程,方便以后移植其他网卡和各位工友参考。首先说明本人水平初级,不要见笑。
1.到网卡供应商寻找驱动
到必联官网上去下载驱动,瞬间方了,居然只有windows的驱动,没有linux的,听新唐FAE说的最好用官方驱动,没办法,只有找找了

2.到网上搜linux驱动源码
先找到了别人的移植贴子
链接:blog点163点com/gl_jiang@126/blog/static/7610097220144145340238/
有戏!别人移植成功过,那就好搞了。
结果自己下载来编译后,在虚拟机上能用,而且ifconfig ra0 up要20多秒才能启动,遇到问题了,首先想的是绕过他,觉得友商肯定也有MT7601的无线网卡卖,说不定成熟的驱动有现成的,于是淘宝一搜,找到GRIS有一款MT7601的,赶紧找有没驱动,然后下载下来
驱动资料链接:pan点baidu点com/s/1jHsrSr0不让发链接。。。。

3.越是详细的资料,就应该多阅读
大致阅读了资料中的几个文档,锁定了MTK_Wi-Fi_STA_Software_Programming_Guide_v1.4.pdf中3.3到3.8,然后将文件夹拷到虚拟机
养成好的习惯,先读下README,结果发现没得想要的东西,然后按照刚才Guide手册,先make
编译完后,将MODULE/os/linux/mt7601Usta.ko,NETIF/os/linux/mtnet7601Usta.ko,UTIL/os/linux/mtutil7601Usta.ko拷到根目录,然后依次
insmod /mtutil7601Usta.ko
insmod /mt7601Usta.ko
insmod /mtnet7601Usta.ko
ifconfig ra0 up
ifconfig
先看能不能找到ra0以及对应的HWaddr,结果很顺利找到了,而且没有按照别人帖子做完后网卡卡很久的现象,哈哈,有戏!
iwlist ra0 scanning看能不能扫描到网络
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPA2PSK
iwpriv ra0 set EncrypType=AES
iwpriv ra0 set WPAPSK=1234567890
iwpriv ra0 set SSID=test
iwpriv ra0 connStatus看看有没连上
ifconfig ra0 192.168.1.132 netmask 255.255.255.0
route add default gw 192.168.1.1

ping 192.168.1.1能ping通,然后用firefox看看能不能上网,发现能上网,好,虚拟机上基本差不多了

3.移植到NUC972
参照Guide手册中,需要改平台的变量和源码路径及工具链路径
先find ./ -name "*" | xargs grep "PLATFORM = PC"

发现有四个地方,好吧,那我就都改掉
平台需要修改
#PLATFORM = PC
PLATFORM = SMDK
ifeq中的内核源码路径和工具链需要修改
ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /mcuzone/work/linux-3.10.x
CROSS_COMPILE = /opt/arm-2014.05/bin/arm-none-linux-gnueabi-
endif
改完后,make
发现错误/home/cust/lzyworkspace/Tools/MT7601U/MT7601U/UTIL/os/linux/../../os/linux/rt_linux.c:1844: error: 'struct net_device' has no member named 'wireless_handlers'
郁闷了一会,没办法,看看开发板提供的手册和新唐的BSP手册吧




发现这些对应的选项都要勾上 ,而且env_ubi.txt环境中需要修改
baudrate=115200
bootdelay=3
ethcat=emac
ethaddr=00:00:01:14:34:ab
stderr=serial
stdin=serial
stdout=serial
serverip=192.168.3.155
ipaddr=192.168.3.136
bootcmd=nboot 0x7fc0 0 0x200000\;bootm 0x7fc0
bootargs=mem=64M console=ttyS0,115200n8 coherent_pool=2M rdinit=/sbin/init mtdparts=nand0:16M(boot)ro,-(rootfs) rootfstype=ubifs ubi.mtd=1 root=ubi0_0
好了,修改完后,编译内核,然后再编译无线网卡驱动,可以编译成功了,焼写,运行
挂好nfs,或者想办法吧编译出来的三个ko文件,以及 RT2870STA.dat 拷到开发板中,将RT2870STA.dat拷到开发板/etc/Wireless/RT2870STA/

insmod mtutil7601Usta.ko
insmod mt7601Usta.ko
insmod mtnet7601Usta.ko
ifconfig ra0 up
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=WPA2PSK
iwpriv ra0 set EncrypType=AES
iwpriv ra0 set WPAPSK=1234567890
iwpriv ra0 set SSID=test
iwpriv ra0 connStatus看看有没连上
ifconfig ra0 192.168.1.132 netmask 255.255.255.0
route add default gw 192.168.1.1

ping 192.168.1.1


注意开发板上的iwpriv需要自己编译,我用的开发板文件系统中以前以及编译好了,可以直接用,至此就以及初步移植完成了,测试能当客户端使用了,当做AP还没试过。



写得也比较匆忙,大致过程是这样,写得不好大家多见谅!






沙发
lzy804032511|  楼主 | 2016-5-22 14:08 | 只看该作者
真难搞,21ic图片上传和链接都有限制

使用特权

评论回复
板凳
LearningASM| | 2016-5-23 17:39 | 只看该作者
为了能发链接,LZ的积分仍需努力。

使用特权

评论回复
地板
IversonCar| | 2016-5-25 17:34 | 只看该作者
这个需要外扩RAM吗?

使用特权

评论回复
5
lzy804032511|  楼主 | 2016-5-29 17:58 | 只看该作者
IversonCar 发表于 2016-5-25 17:34
这个需要外扩RAM吗?

972自带64M DDR2

使用特权

评论回复
6
玛尼玛尼哄| | 2016-5-31 10:36 | 只看该作者
高手啊,这都会。。

使用特权

评论回复
7
lyjchong| | 2016-5-31 15:28 | 只看该作者
请教楼主,我也是972板子,但是我文件系统总是做不成功,能不能指导下你ubi文件系统是怎么做的?谢谢

使用特权

评论回复
8
heisexingqisi| | 2016-5-31 19:51 | 只看该作者
这个单片机可以跑操作系统啊?看来很厉害。

使用特权

评论回复
9
zhuomuniao110| | 2016-5-31 20:43 | 只看该作者

使用特权

评论回复
10
jxcyluoxianhui| | 2016-8-17 17:06 | 只看该作者
可以加我们的 Nuvoton QQ群: 312526187

使用特权

评论回复
11
scoool| | 2016-10-17 12:17 | 只看该作者
写的非常好 赞一个

使用特权

评论回复
12
643757107| | 2016-10-22 12:26 | 只看该作者
最近在研究TCPIP,这个很有用,现在好多设备人家都要求必须的网口。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

23

帖子

1

粉丝