在海思3511上面实现wifi模块变成ap站点功能+wifi rt3070驱动的移植

来源:互联网 发布:sql 数据库置疑 编辑:程序博客网 时间:2024/05/22 05:12
参照了网上的无数博客,结合自己的开发板,终于在海思3511开发板上面实现wifi模块变ap站的功能。首先开发板里面没有支持ap功能的驱动,这个就需要手工移植。整体的步骤都大同小异,主要是平台的差异,导致移植时候出现的微小差异。
下载源码:2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2
放到虚拟机里面,解压缩之后进入目录:发现有三个文件夹 MOUDLE 
NETIFUTIL这三个文件夹里面都有makefile文件,在三个文件的对应的os/linux目录下有config.mk文件,驱动移植做主要的工作是修改这6个文件
下面是Makefile的修改的地方  +代表增添行 #代表删除行
#PLATFORM = PC(注释掉)
PLATFORM =IXP(平台选择,网上说
可以随便选,关键是和改动对应源码和交叉编译器相一致,我选的是IXP
找到
ifeq($(PLATFORM),IXP)   
LINUX_SRC =/home/cys/haisi_soft/Hi3511_VSSDK_V1.1.2.3/pub/kbuild-FULL_REL
CROSS_COMPILE =/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/usr/bin/arm-hismall-linux-
endif
这里的linux_src与自己的开发板源码对应 一致
          cross_compile即为对应的交叉编译器
修改config.mk配置文件-这个修改步骤很简单,但是要很小心,这里体现出平台的差异
改动1.
ifeq ($(PLATFORM),IXP)
#WFLAGS += -DRT_BIG_ENDIAN
endif
我做的改动是注释掉WFLAGS  arm不支持大端模式
改动2.
原来的样子
ifeq ($(PLATFORM),IXP)
    CFLAGS := -v -D__KERNEL__ -DMODULE-I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include-mbig-endian -Wall -Wstrict-prototypes-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Uarm-fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=5 -mcpu=xscale-mtune=xscale-malignment-traps-msoft-float $(WFLAGS)
       EXTRA_CFLAGS := -v $(WFLAGS) -I$(RT28xx_DIR)/include-mbig-endian
    exportCFLAGS       
endif
改为:
ifeq ($(PLATFORM),IXP)
    EXTRA_CFLAGS := -v -D__KERNEL__ -DMODULE-I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -Wall-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing-fno-common -Uarm -fno-common -pipe -mapcs-32-D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale -msoft-float $(WFLAGS)
       EXTRA_CFLAGS := -v $(WFLAGS) -I$(RT28xx_DIR)/include
    exportCFLAGS       
endif

蓝色标记的地方为修改的,
CFLAGS 部分的修改据说是makefile版本的不兼容,在有点平台上不要修改,这个在海思平台需要改,修改成EXTRA_CFLAGS。
-mbig-endian这边的修改还是大小端的问题
-malignment-traps这个比较特殊一点,网上有多种修改方法,会去掉不同的选项,但是到底兼容哪些不兼容哪些,依据平台,我个人的经验是在编译的时候会出错,根据错误可以判断出应该把哪个选项去掉,我这个平台是去掉这一项。
其他文件夹里面的两个文件的修改方法一样。最后运行make,也可以到三个目录里面单独make
,当然make往往都会有错,依据错误修改就会解决
最后编译出来在三个文件夹的os/linux目录下生成对应.ko文件--
rt3070ap.kortutil3070ap.kortnet3070ap.ko 在MOUDLE文件夹下还会有RT2870AP.dat文件
把三个驱动拷贝到开发板某个目录,把.dat文件拷贝到/etc/Wireless/
RT2870AP文件夹下面,如果没有就新建一个。
驱动加载的顺序按照:
rtutil3070ap.ko rt3070ap.ko rtnet3070ap.ko
加载成功之后,

然后可以通过ifconfig-a查看是否含有ra0网卡,如果有,代表已经加载成功了


可以给开发板赋ip地址
#ifconfig ra0 192.168.1.1 up
执行iwconfig 查看网络   (如果没有可以经过源码包编译移植)

这个默认的名为:RT2860AP的网络就建立起来了。名字等许多参数都是可以修改。
最后结束后 卸载模块先关闭ra0 网卡。

上面已经把默认网关设置为192.168.1.1所以当电脑设备连接这个ap点的时候,要先把wifi的默认网关修改为这个网关才能连接上。

0 0
原创粉丝点击