在本文前面,大家可以先看下下面的文档,本人就是根据下面博客来完成ap模式http://blog.csdn.net/sumang_87/article/details/38168877
下文的ap模式,不需要hostaod就能产生热点,目前只能让其和手机连接,并且能够ping通。(还没支持上网@_@,后期可以在更新)
一、开发环境
宿主机 :redhat5.3
交叉编译器 :arm-linux-gcc(4.5.1)
目标板 :tiny4412开发板
无线网卡型号 :360 2代 wifi
二、移植360 wifi的ap驱动
1.1、下载mt7601AP模式驱动源码
可以从 https://github.com/eywalink/mt7601u 下载代码,没有git的同学,可以在右边 Download zip文件。
1.2、修改Makefile,让其支持arm体系
上面是解压后的源码,在修改Makefile之前,需要先进入src目录,因为主要是修改src下面的目录
1.2.1、默认的编译平台为x86的cpu,在Makefile的30行可以看到
1.2.2、由于需要的平台为arm体系
1.2.3、修改交叉编译器与源码树路径
由于接下来是把其驱动编译成模块,因此需要设置内核源码树所在的路径,以及相对的交叉编译器。
修改成
1.2.4、在顶层目录编译,编译
[root@localhost mt7601u-master]# make clean && make all
2、把src/os/linux/下的所有的ko文件拷贝到开发板,其中有三个ko文件
mt7601Uap.ko rtnet7601Uap.ko rtutil7601Uap.ko
2.1、把源码下etc/Wireless/RT2870AP目录下配置文件全部拷贝到开发板相对应的位置
[root@localhost mt7601u-master]# cp etc/Wireless/RT2870AP /work/system/zxl4412_root/etc/Wireless/ -rf
3、在开发板上安装ap驱动,按照顺序来安装,否则会出现依赖的函数没有问题。
rtutil7601Uap.ko
mt7601Uap.ko
rtnet7601Uap.ko
4、插中360 wifi,开发板显示下面表示驱动已经加载成功
[ 64.590000] rtusb init rtusbAP --->
[ 64.590000]
[ 64.590000]
[ 64.590000] === pAd = f0c0b000, size = 856120 ===
[ 64.590000]
[ 64.590000] <-- RTMPAllocTxRxRingMemory, Status=0
[ 64.590000] <-- RTMPAllocAdapterBlock, Status=0
[ 64.595000] RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x8
[ 64.595000] RTMP_COM_IoctlHandle():pAd->BulkOutEpAddr=0x4
.............
[ 64.625000] NVM is EFUSE
[ 64.625000] Endpoint(8) is for In-band Command
[ 64.630000] Endpoint(4) is for WMM0 AC0
[ 64.635000] Endpoint(5) is for WMM0 AC1
[ 64.640000] Endpoint(6) is for WMM0 AC2
[ 64.640000] Endpoint(7) is for WMM0 AC3
[ 64.645000] Endpoint(9) is for WMM1 AC0
[ 64.650000] Endpoint(84) is for Data-In
[ 64.655000] Endpoint(85) is for Command Rsp
[ 64.685000] usbcore: registered new interface driver rtusbAP
5、配置wifi网卡的ip地址
ifconfig ra0 192.168.2.1
6、修改dhcp配置文件/etc/dhcpd.conf,添加:
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.100;
option domain-name-servers 192.168.2.1;
option routers 192.168.2.1;
}
7、在开发板创建空文件
# touch /var/db/dhcpd.leases
8、启动dhcpd服务,让自动帮连接上来网卡分配ip地址(注:请参考sta模式移植中有介绍dhcpd移植)
# dhcpd -cf /etc/dhcpd.conf ra0
9、打开手机或者电脑查找并且登录
网络名 MiWiFi_SuMang
密码 52xiaomi
10、如果想要修改网络名和密码
直接修改/etc/Wireless/RT2870AP/RT2870AP.dat
SSID = MiWiFi_SuMang
WPAPSK = 52xiaomi