Ad Hoc配置

1.iwconfig检查是否支持ad hoc模式

iwconfig与ifconfig一样,一个配置网卡命令,一个配置无线网卡命令。

如果出现:iwconfig :wlan0 no wireless extensions,表明内核配置中没有开启相应配置选项。

本人开发板为ZYNQ7000系列,如果单纯PC上Ubuntu系统,该选项是默认开启的,可以查到iwconfig的信息。

解决办法:

petalinux工具重新读取硬件信息,配置内核、文件系统、u-boot、设备树,最后编译生成BOOT.Bin文件。(正常的ARM Linux系统开发流程)

特别的是在配置内核时将下图选项加入进去:“cfg80211 wireless extensions compatibility”,这样就开启了无线网卡扩展功能,即可使用iwconfig命令

重新启动之后,输入iwconfig命令可查到无线网卡的相关信息。

(上述图片是本人开发板选项,也可查看CONFIG_WIRELESS_EXT或者CONFIG_CFG80211_WEXT选项,网上搜索得)

2.主节点搭建自组网

(以下所有命令均在root模式下,否则在每条命令前加“sudo  ”即可)

ifconfig wlan0 down(如果出现设备忙可先关掉网卡,本人开发板并没有,无需输入)

iwconfig wlan0 mode "ad-hoc"(ad hoc模式)

iwconfig wlan0 essid "My_AdHoc_Net"(无线网络名称)

iwconfig wlan0 key off(设置密码)

iwconfig wlan0 channel 1(默认为channel 1)(iwlist wlan0 channel查看可用信道)

之后给网卡设置相应的IP:

ifconfig wlan0 192.168.5.10

ifconfig wlan0 up(开启网卡)

iwconfig查看网卡信息,可看到网卡模式为ad hoc模式,essid信息,frequency,cell等

ifconfig 查看网卡信息,可看到网卡IP和MAC地址

简单来讲:

iwconfig wlan0 mode "ad-hoc"(ad hoc模式)

iwconfig wlan0 essid "My_AdHoc_Net"(无线网络名称)

ifconfig wlan0 192.168.5.10

这三条命令即可搭建,从节点同上。

3.从节点接入到该ad hoc网络中

ifconfig wlan0 down

iwconfig wlan0 mode "ad-hoc"(ad hoc模式)

iwconfig wlan0 essid "My_AdHoc_Net"(无线网络名称,需和主节点网络名称相同,essid相同才可通信)

iwconfig wlan0 key off(无密码,或者不输入该命令)

iwconfig wlan0 channel 1(默认为channel 1)(需和主节点相同信道)

之后给网卡设置相应的IP:

ifconfig wlan0 192.168.5.11(需要和主节点在同一网段)

ifconfig wlan0 up(开启网卡)

iwconfig查看网卡信息,可看到网卡模式为ad hoc模式,essid信息,frequency,cell等

ifconfig 查看网卡信息,可看到网卡IP和MAC地址

4.两节点相互ping

一般来讲是可以ping通的,因为主节点搭建ad hoc网络的时候会先向外请求加入到已存在的自组网,如果没有收到应答,则自己建立

从节点加入到该自组网中时,依然是这个过程,而外界已经有了自组网,所以主节点和从节点已经交互了信息,得知了对方的MAC地址

如果ping不通,表示没有之前的交互过程,没有对方的MAC地址,可以输入命令:arp -n查看ARP表信息

如果没有相应的arp信息,则手动建立对方的静态arp地址,命令如下:

arp -s 192.168.5.10 xx:xx:xx:xx:xx:xx

arp -s 192.168.5.11 xx:xx:xx:xx:xx:xx

有了对方的MAC地址,再ping,就可以ping通了

5.脚本文件配置

每次节点开机都要重新手动输入相关命令,对开发来说较为麻烦,可采用以下两种方法:

方法一:将命令写入到/etc/rc.local文件中,开机自运行

方法二:编写.sh脚本,将配置命令写入脚本,再./XX.sh(sudo chmod +x XX.sh修改为可执行权限)或者sh XX.sh即可

6.PC端搭建ad hoc网络

如果只是在PC上Ubuntu系统下搭建,也可采用以下方法:

vi /etc/network/interfaces

写入:

auto wlan0

iface wlan0 inet static

address 192.168.5.10

netmask 255.255.255.0

wireless-channel 1

wireless-essid My_AdHoc_Net

wireless-mode ad-hoc

最后:

sudo /etc/init.d/networking restart即可,或者重启。

猜你喜欢

转载自www.cnblogs.com/jpzhu/p/11983620.html
今日推荐