arm-linux AP热点

    AP(Access Point)即无线接入点。我使用的是rt5370网卡(海思平台,工具链为:arm-hismall-linux-gcc),rt5370有三种模式:AP模式、STA模式以及STA-AP模式。

        AP:即释放wifi热点供外部网卡(STA)连入。

        STA:为普通网卡模式可连接外部路由器(AP)。

        STA-AP:即可连接外部无线网络并将网络通过AP热点释放出去,供外部网卡(STA)连接。

    而我只想用AP模式,所以,实现起来比较的简单,也不需要移植brctl指令,没有涉及网桥相关的东东。

 

实现步骤大致如下:

1)生成驱动

        tar xjf 2011_0517_RT5370_RT5370_RT5390U_Linux_AP_V2.6.0.0_DPA.tar.bz2

        修改MODULE目录下的Makefile,主要是工具链和内核源码,其他2个目录自动更新。

        修改MODULE/include/iface/rtmp_usb.h里面BULKAGGRE_SIZE 12该为6/8。

        Make

2)编辑RT2870AP.dat,主要修改下面几项:

        SSID=huang        //路由器ssid

        AuthMode=WPA2PSK  //加密模式

        EncrypType=AES      //加密类型

        WPAPSK=12345678    //密码

    接着拷贝到/etc/Wireless/RT2870AP/目录下。

        cp RT2870AP.dat  /etc/Wireless/RT2870AP/

3)依次加载驱动:

        insmodUTIL/os/linux/rtutil5370ap.ko

        insmod MODULE/os/linux/rt5370ap.ko

        insmod NETIF/os/linux/rtnet5370ap.ko

4)启动网卡ra0

       ifconfig ra0 up

   就此,在手机或pc上就可以收到ssid为huang的热点了。

  如果想使用网桥,则需要如下操作:

              #ifconfig ra0 up

              #ifconfig apcli0 up  //(STA-AP模式)

              #brctl addbr br0     //建立一个逻辑网段,名称为br0

              #brctl addif br0 eth0  //让eth0成为br0的一个端口

              #brctl addif br0 ra0   //让ra0成为br0的一个端口

              #brctl addif br0 apcli0 //让apcli0成为br0的一个端口(STA-AP)

              #ifconfig eth0 0.0.0.0 

              #ifconfig ra0 0.0.0.0

              #ifconfig apcli0 0.0.0.0

              #ip link set br0 up

5)DHCP服务器

        mkdir -p /var/lib/misc/udhcpd.leases

        ifconfig ra0 192.168.2.1

        udhcpd /etc/udhcpd.conf &  //udhcpd.conf配置中可以设置起始-结束ip地址以及网关等。

        至此,AP模式已完成,每连接一个终端(手机/平板/pc等),都讲各自分配一个ip地址。他们都可以ping通huang这个AP热点,接下来,我们就可以通过socket编程了。

       由于rt5370不支持AP与STA同在(也有支持2种模式的网卡),所以,当AP模式与STA模式切换时,需要依次卸载网卡驱动,然后启动相应的模式的驱动,就可以很方便的切换了。

6)驱动下载

     鉴于比较多人私信我传驱动,所以,我已放到我资源里面,下载地址为:http://download.csdn.net/detail/huangminqiang201209/7113585



猜你喜欢

转载自blog.csdn.net/huangminqiang201209/article/details/17097215