在海思3511上面实现wifi模块变成ap站点功能+wifi rt3070驱动的移植
2014-07-13 20:37
330 查看
参照了网上的无数博客,结合自己的开发板,终于在海思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.ko,rtutil3070ap.ko,rtnet3070ap.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的默认网关修改为这个网关才能连接上。
下载源码: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.ko,rtutil3070ap.ko,rtnet3070ap.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的默认网关修改为这个网关才能连接上。
相关文章推荐
- 在mini210 上面实现rt3070ap功能的移植内核版本 是linux3.0.8
- Ubuntu下成功安装台式机网卡realtek的rtl8188eu芯片驱动并实现AP功能
- USB驱动移植及mdev热插拔的实现
- 数据移植(利用Ado.Net功能实现)
- lzg_ad:在XP Professional上面实现EWF功能
- 在RH9.0+vmware 5.xx上从开始到最后实现spca5xx驱动的安装 以及 嵌入式板上的驱动移植
- 在DataGrid或DataList等容器上面实现RadioButton的单选功能
- 在DataGrid或DataList等容器上面实现RadioButton的单选功能
- U-boot移植 (v2012.04.1 S3C2440平台) (四) usbslave 下载功能实现
- Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
- [导入]站点中,实现: 在线签名 功能 (示例代码下载)
- Android照相功能驱动层中HAL的实现(基于OK6410开发板+OV9650摄像头)
- 站点中,实现: 在线签名 功能 (示例代码下载)
- 移植 u-boot-1.1.6 到 FL2440(1)---实现基本功能
- ALSA --- amixer控制声卡驱动实现Line-in功能
- FAT AP共享式WEP加密功能的实现
- 站点中,实现: 在线签名 功能 (示例代码下载)
- 站点中,实现: 在线签名 功能 (示例代码下载)
- 站点中,实现: 在线签名 功能 (示例代码下载)
- Android照相功能驱动层中HAL的实现(基于OK6410开发板+OV9650摄像头)