无线AP——失败中的成功 rt3070的ad-hoc上网

来源:互联网 发布:知乎诈骗案公益 编辑:程序博客网 时间:2024/05/16 17:20

      本来打算直接使用master模式,那样最为完美,可惜使用hostapd实现后,在dev接口多了一个mon.wlan0,在我们做中间件的程序中不允许这样做,只能抛弃这种做法,当然,经验保留!
        为了适应公司开发的需要只能重新考虑做法,最开始打算找softap的源代码,交叉编译后仍不能master成功,无奈的情况下又用sta代码,最终使用ad-hoc实现,成功测试,记录如下:
驱动和固件都是使用的STA模式的,

cp -f rt2870.bin /lib/firmwaremkdir -p /etc/Wireless/RT2870STAcp RT2870STA.dat /etc/Wireless/RT2870STAexport LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

插入USB wifi以及驱动加载部分省略....
机顶盒的执行目录下的东西有点多,截个图上来:

注意:出现resource busy等情况先down掉接口名,有的无线网卡接口名为ra0有的为wlan0或者其他,用ifconfig -a查看一下。

ifconfig wlan0 downiwconfig wlan0 mode ad-hociwconfig wlan0 essid bcmUsbWifiiwconfig wlan0 channel autoifconfig wlan0 192.168.2.254 netmask 255.255.255.0#设置密码#iwconfig wlan0 key s:bcmUsbWifi#iwconfig wlan0 key restrictedifconfig wlan0 up#禁用所有natiptables -t nat -F#重新设置natiptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j MASQUERADE#允许重定向echo "1" > /proc/sys/net/ipv4/ip_forwarddnsmasq -i wlan0 --resolv-file=/etc/resolv.conf --conf-file=dnsmasq.conf

dnsmasq.conf配置文件内容如下:

dhcp-authoritative   dhcp-range=192.168.2.2,192.168.2.24,12h  dhcp-leasefile=/var/run/dnsmasq.leases  pid-file=/var/run/dnsmasq.pid  user=root  no-negcache


ad-hoc的兼容性不是很好,有的手机根本搜索不到。。。目前支持wifi的手机都能搜到master模式,master模式一般就是无线路由器那种。
我在测试过程中,发现我的LG手机,android 2.3的系统能收到机顶盒出来的ad-hoc我的小米1s却怎么也搜不多,后来发现小米1s目前的rom没有弄ad-hoc,中午自己刷了一下估计,更新了system/bin下面的wpa_supplicant文件,具体补丁可以在miui论坛中搜到,更新后一切OK。
弄了个飞秋,连上wifi,添加网段,OK,完美连接。

简单说下测试,我用了同事中的几个手机测试,iphone正常,LG正常,小米1s更新后也OK,ad-hoc也同时支持多个连接,手机获取到的IP为192.168.2段,公司内网IP为10.0段,通过我手机下载一个模拟终端,ping 10.0.0也OK。

原创粉丝点击