Linux 树莓Pi自组织网络

Linux 树莓Pi自组织网络,linux,networking,wireless,raspberry-pi,adhoc,Linux,Networking,Wireless,Raspberry Pi,Adhoc,我想尝试一些与树莓Pis的网络项目,我只需要在一对Pis之间发送数据包。我会很高兴作为第一步,只是能够ping之间的树莓Pis在特设模式。尽管我在网上看了一些教程和例子,但我并没有成功地做到这一点 我安装了2个树莓Pis和Debian Wheezy操作系统。我正在使用以下USB适配器,我在两个pis上都安装了固件,并通过将其以托管模式连接到路由器来测试其工作情况: 总线001设备004:ID 050d:945a Belkin Components F7D1101 v1基本无线适配器[Realte

我想尝试一些与树莓Pis的网络项目,我只需要在一对Pis之间发送数据包。我会很高兴作为第一步,只是能够ping之间的树莓Pis在特设模式。尽管我在网上看了一些教程和例子,但我并没有成功地做到这一点

我安装了2个树莓Pis和Debian Wheezy操作系统。我正在使用以下USB适配器,我在两个pis上都安装了固件,并通过将其以托管模式连接到路由器来测试其工作情况: 总线001设备004:ID 050d:945a Belkin Components F7D1101 v1基本无线适配器[Realtek RTL8188SU]

以下是一些有关网络信息的打印输出:

/每个pi处的etc/网络/接口:


pi1@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.1
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc
pi2@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.2
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc

pi1@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:8e:5a  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:26 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
pi2@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:59:0a  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:6 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
每个pi处的ifconfig:


pi1@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.1
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc
pi2@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.2
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc

pi1@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:8e:5a  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:26 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
pi2@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:59:0a  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:6 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
每个pi的iwconfig:


pi1@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.1
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc
pi2@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.2
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc

pi1@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:8e:5a  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:26 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
pi2@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:59:0a  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:6 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

pi1@raspberrypi~$iwconfig wlan0
wlan0 IEEE 802.11bg ESSID:“pi ad hoc”昵称:“rtl_wifi”
模式:临时小区:02:11:87:FA:4A:02比特率:54 Mb/s
灵敏度:0/0
重试:关闭RTS thr:关闭片段thr:关闭 电源管理:关闭 链路质量:0信号电平:0噪声电平:0 接收无效nwid:0接收无效密码:0接收无效帧:0 发送重试次数过多:0无效杂项:0未命中信标:0 pi2@raspberrypi~$iwconfig wlan0 wlan0 IEEE 802.11bg ESSID:“pi ad hoc”昵称:“rtl_wifi” 模式:临时小区:02:11:87:C4:F2:01比特率:54 Mb/s
灵敏度:0/0
重试:关闭RTS thr:关闭片段thr:关闭 电源管理:关闭 链路质量:0信号电平:0噪声电平:0 接收无效nwid:0接收无效密码:0接收无效帧:0 发送重试次数过多:0无效杂项:0未命中信标:0

一个pi处的路线(与其他pi相同):


pi1@raspberrypi~$route
内核IP路由表
目标网关Genmask标志度量参考使用Iface
默认192.168.1.1 0.0.0.0 UG 0 0 eth0
192.168.1.0*255.255.255.0 U 0 0 eth0
192.168.2.0*255.255.255.0 U 0 0 wlan0

在每个pi处进行列表扫描:


pi1@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.1
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc
pi2@raspberrypi ~ $ cat /etc/network/interfaces 
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet manual
    address 192.168.2.2
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc

pi1@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:8e:5a  
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:26 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
pi2@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr ec:1a:59:46:59:0a  
          inet addr:192.168.2.2  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:6 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

pi1@raspberrypi~$sudo iwlan0扫描列表
wlan0扫描已完成:
第01单元-地址:02:11:87:FA:4A:02
埃希德:“临时pi”
协议:IEEE 802.11bg
方式:临时
频率:2.427GHz(信道4)
加密密钥:关闭
比特率:1 Mb/s;2mb/s;5.5MB/s;11MB/s;6MB/s
9MB/s;12MB/s;18MB/s;24MB/s;36MB/s
48MB/s;54MB/s
质量:0信号电平:0噪声电平:0
第04单元-地址:02:11:87:C4:F2:01
埃希德:“临时pi”
协议:IEEE 802.11bg
方式:临时
频率:2.427GHz(信道4)
加密密钥:关闭
比特率:1 Mb/s;2mb/s;5.5MB/s;11MB/s;6MB/s
9MB/s;12MB/s;18MB/s;24MB/s;36MB/s
48MB/s;54MB/s
信号电平=100/100
pi2@raspberrypi~$sudo iwlan0扫描列表 wlan0扫描已完成: 单元格01-地址:02:11:87:C4:F2:01 埃希德:“临时pi” 协议:IEEE 802.11bg 方式:临时 频率:2.427GHz(信道4) 加密密钥:关闭 比特率:1 Mb/s;2mb/s;5.5MB/s;11MB/s;6MB/s 9MB/s;12MB/s;18MB/s;24MB/s;36MB/s 48MB/s;54MB/s 质量:0信号电平:0噪声电平:0 02单元-地址:02:11:87:FA:4A:02 埃希德:“临时pi” 协议:IEEE 802.11bg 方式:临时 频率:2.427GHz(信道4) 加密密钥:关闭 比特率:1 Mb/s;2mb/s;5.5MB/s;11MB/s;6MB/s 9MB/s;12MB/s;18MB/s;24MB/s;36MB/s 48MB/s;54MB/s 信号电平=100/100

Ping不起作用,而且他们之间似乎没有网络。从iwconfig中,您可以看到它们各自有一个不同的“单元”地址(与iwlist扫描中的单元不同),这是用于定义自组织网络的伪基站ID(从我所读到的内容来看,这是我最好的理解)。此外,从iwlist中,每个pi都可以看到自己的以及另一个pi的自组织网络。我假设他们需要选择相同的小区id进行通信,我不确定如何让他们自动进行通信。我尝试在每个pi上使用以下命令静态强制这些设置相同,但没有更改单元格id,因此不起作用:
sudo iwconfig wlan0 ap (some address)
sudo iwconfig wlan0 ap(某些地址)

我还尝试了一个解决方案,在wpa_请求者配置中使用ap_scan=2,但似乎没有帮助

有人知道我做错了什么吗

谢谢,
Andy。

经过一番搜索,我发现我使用的Belkin USB适配器显然不支持linux驱动程序的特殊模式。我买了一些其他的无线USB适配器,它们工作得很好,“Edimax EW-7811Un 150 Mbps无线11n纳米级USB适配器”。它们更便宜、更小,并且在临时模式下工作,甚至不需要担心司机。如果您还想进行特别的raspberry PI项目,我为故障排除提供的详细信息可以作为指导。

这在/etc/network/interfaces中对我很有用:

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wireless-essid "MYPINET"
wireless-channel 3
wireless-mode ad-hoc
wireless-ap 11:5F:02:38:5C:45
address 192.168.10.1
netmask 255.255.255.0
essid、通道和ap可以是任何有效值(在所有Pi上相同)。确保将同一子网上的不同地址分配给不同的Pi a
sudo usermod -a -G netdev userName
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
   address 10.10.2.1
   netmask 255.255.255.0
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant-adhoc.conf
ssh 10.10.2.2