mt7601驱动使用(三)

来源:互联网 发布:软件合同书 编辑:程序博客网 时间:2024/06/05 00:55

转自:http://blog.csdn.net/diandianyangyi/article/details/39202255

使用一个驱动,也大费周折。

闲话不说,直接进入正题。

 

【问题说明】

自己使用的驱动为DPA_MT7601U_LinuxSTA_3.0.0.4_20130916,而这个驱动编译使用为sta模式是正常的,可以使用的。

但是公司的产品要求无线网卡可以完成AP模式和STA模式进行切换,那么这个,不知道难道多大,至少我没有配置过ap模式使用。

根据雷凌以前的产品看,ap模式的还要单独的编译驱动。 因此将此上面的驱动修改配置后,编译信息如下:

在文件config.mk
     HAS_HOSTAPD_SUPPORT=y 

在文件 Makefile.inc 
    ifeq ($(WIFI_MODE),) 
    RT28xx_MODE = AP 
    else 
    RT28xx_MODE = $(WIFI_MODE) 
    endif 

平台,内核路径,编译器都已经正确指定了。 编译信息如下。

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. make -C UTIL/ osutil   
  2. make[1]: Entering directory `/home/swchen/osdrv/kernel/mt7601/UTIL'   
  3. cp -f os/linux/Makefile.6.util /home/swchen/osdrv/kernel/mt7601/UTIL/os/linux/Makefile   
  4. make -C /home/swchen/osdrv/kernel/linux-3.0.y SUBDIRS=/home/swchen/osdrv/kernel/mt7601/UTIL/os/linux modules   
  5. make[2]: Entering directory `/home/swchen/osdrv/kernel/linux-3.0.y'   
  6. Building modules, stage 2.   
  7. MODPOST 1 modules   
  8. make[2]: Leaving directory `/home/swchen/osdrv/kernel/linux-3.0.y'   
  9. make[1]: Leaving directory `/home/swchen/osdrv/kernel/mt7601/UTIL'   
  10. /bin/sh cp_util.sh   
  11.   
  12. make -C MODULE/ build_tools   
  13. make[1]: Entering directory `/home/swchen/osdrv/kernel/mt7601/MODULE'   
  14. make -C tools   
  15. make[2]: Entering directory `/home/swchen/osdrv/kernel/mt7601/MODULE/tools'   
  16. gcc -g bin2h.c -o bin2h   
  17. make[2]: Leaving directory `/home/swchen/osdrv/kernel/mt7601/MODULE/tools'   
  18. /home/swchen/osdrv/kernel/mt7601/MODULE/tools/bin2h   
  19. make[1]: Leaving directory `/home/swchen/osdrv/kernel/mt7601/MODULE'   
  20. make -C MODULE/ osdrv   
  21. make[1]: Entering directory `/home/swchen/osdrv/kernel/mt7601/MODULE'   
  22. cp -f os/linux/Makefile.6 /home/swchen/osdrv/kernel/mt7601/MODULE/os/linux/Makefile   
  23. make -C /home/swchen/osdrv/kernel/linux-3.0.y SUBDIRS=/home/swchen/osdrv/kernel/mt7601/MODULE/os/linux modules   
  24. make[2]: Entering directory `/home/swchen/osdrv/kernel/linux-3.0.y'   
  25. make[3]: *** No rule to make target `/home/swchen/osdrv/kernel/mt7601/MODULE/os/linux/../../ap/ap_cfg.o', needed by `/home/swchen/osdrv/kernel/mt7601/MODULE/os/linux/mt7601Uap.o'. Stop.   
  26. make[2]: *** [_module_/home/swchen/osdrv/kernel/mt7601/MODULE/os/linux] Error 2   
  27. make[2]: Leaving directory `/home/swchen/osdrv/kernel/linux-3.0.y'   
  28. make[1]: *** [osdrv] Error 2   
  29. make[1]: Leaving directory `/home/swchen/osdrv/kernel/mt7601/MODULE'   
  30. make: *** [all] Error 2   


也就是需要的文件ap_cfg.c 这个文件并不存在。所以咨询了对方的支持,得到的答复是:

MT7601的驱动分两种,APSTA模式分别是两个驱动包

故而得到了对方提供的驱动,MT7601U_LinuxAP_3.0.0.1_20130802.tar.bz2 ,下载链接如下:

 http://download.csdn.net/detail/diandianyangyi/7894443

【重新编译】

类似,同样指定了平台和指定了交叉编译器和内核路径之后,直接make。 却得到了错误信息:

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. make -C tools  
  2. make[1]: Entering directory `/home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/tools'  
  3. gcc -g bin2h.c -o bin2h  
  4. make[1]: Leaving directory `/home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/tools'  
  5. /home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/tools/bin2h  
  6. cp -f os/linux/Makefile.6 /home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux/Makefile  
  7. make -C /home/swchen/osdrv/kernel/linux-3.0.y SUBDIRS=/home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux modules  
  8. make[1]: Entering directory `/home/swchen/osdrv/kernel/linux-3.0.y'  
  9.   CC [M]  /home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux/../../os/linux/rt_profile.o  
  10. /home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux/../../os/linux/rt_profile.c:26: fatal error: rt_config.h: No such file or directory  
  11. compilation terminated.  
  12. make[2]: *** [/home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux/../../os/linux/rt_profile.o] Error 1  
  13. make[1]: *** [_module_/home/swchen/mt7601/MT7601U_LinuxAP_3.0.0.1_20130802/os/linux] Error 2  
  14. make[1]: Leaving directory `/home/swchen/osdrv/kernel/linux-3.0.y'  
  15. make: *** [LINUX] Error 2  


找不到rt_config.h 这个头文件!!!!

但是代码中是有这个文件的呀。难道是哪里路径指定不对么?思量不过,就拿网上下载的雷凌其他ap驱动编译通过的进行比较。

折腾了一天之后,定位到os\Linux\config.mk中,有一句有些差别。

于是在自己的os\linux\config.mk中添加了下一句,主要还是来源于 http://www.arm9home.net/simple/index.php?t24610.html 的启发。

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. ifeq ($(PLATFORM),HISI_3518C)  
  2. EXTRA_CFLAGS := -D__KERNEL__ -DMODULE $(WFLAGS)  
  3. export EXTRA_CFLAGS  
  4. endif  

 

因为驱动并没有说明支持海思的平台,前头在驱动的根目录Makefile里,自己重新指定了平台。

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. PLATFORM = HISI_3518C  
  2.   
  3. ifeq ($(PLATFORM),HISI_3518C)  
  4. LINUX_SRC = $(HOME)/osdrv/kernel/linux-3.0.y  
  5. CROSS_COMPILE = /opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-  
  6. export ARCH=arm  
  7. endif  

但是没有添加上编译的条件。总之折腾完了,下一步看ap模式的使用了。

这样看来,生成的驱动不同,那么使用不同模式的wifi,就得更替驱动了,也挺麻烦的。

0 0