wifi AP驱动移植与使用

环境:

            主机:ubuntu14.04

            设备:hisi3520d

            交叉编译器:arm-hisiv100nptl-linux-gcc

            kernel:3.0.8

            wifi模块:mt7601

移植详解:

            1)解压驱动文件包修改目录下的makefile文件,指定内核路径和交叉编译器位置

    PLATFORM = PC

    ifeq ($(PLATFORM),PC)
    LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
    LINUX_SRC = /home/Hi3520D_SDK_V1.0.3.0/osdrv/kernel/linux-3.0.y
    CROSS_COMPILE = arm-hisiv100nptl-linux-
    endif

            2)编译:#make ARCH=arm

            3)复制RT2870AP.dat到目标板的/etc/RT2870AP目录下, mt7601Uap.ko到设备任意位置,加载驱动#insmod /mt7601Uap.ko

因为mt7601驱动本身不支持ieee80211协议,所以在管理wifi热点信息(ssid,key...)时,不使用网上通用的hostapd软件包,直接通过RT2870AP.dat文件直接配置。

            4)启用无线网卡ifconfig ra0 192.168.xx.xx #手机可以搜索到wifi但是链接不上

            5)启用dhcp服务程序,如果设备上不带dhcp请自行下载dhcp移植编译或通过busybox编译,这里不详细讲解,udhcpd -f /var/udhcpd.conf&

    其中udhcpd.conf配置文件如下:

start   192.168.200.2                             #wifi分配起始ip地址
end             192.168.200.254               #wifi分配结束ip地址
interface       ra0                                     #网卡名称
opt     dns     210.21.196.6                   #DNS,如果不能访问外网一般是DNS错误
opt     router  192.168.200.1
opt     subnet  255.255.255.0

            6)启动iptables 实现eth0的流量共享,如果设备上不带iptables工具,请自行移植。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -A FORWARD -i eth0 -o ra0 -m state --state RELATED,ESTABLISH -j ACCEPT

iptables -A FORWARD -i ra0 -o eth0 -j ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward


共享wifi AP 热点流程:

insmod /mt7601Uap.ko

ifconfig eth0 192.168.1.112                     #设备设置本地有线网络,该网络应该具有访问外网能力
route add default gw 192.168.1.1          #添加网关
ping www.baidu.com,如果成功继续往下执行,不成功则需要先检测你设备的本地网络功能(主要是DNS)
ifconfig ra0 192.168.200.1 netmask 255.255.255.0 up

udhcpd -f /var/dvr/udhcpd.conf &

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -A FORWARD -i eth0 -o ra0 -m state --state RELATED,ESTABLISH -j ACCEPT

iptables -A FORWARD -i ra0 -o eth0 -j ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward

使用手机链接wifi,wifi热点名称和密码在RT2870AP.dat中,成功链接wifi并能访问外网。


错误记录:

1、每次在使用手机链接wifi热点访问外网时,wifi驱动异常,解决方法:替换wifi ap驱动版本

2、部分手机在链接wifi热点时,能通过dhcp获取到正确的ip和dns,但是不能访问外网,需要手动设置ip方式才能访问外网,解决方案:替换dhcp的版本


参考博客:

http://blog.csdn.net/xiongzhizhu/article/details/52090995

你可能感兴趣的:(Linux系统,wifi,AP,驱动,热点)