linux Raspberry Pi ad-hoc网络[已关闭]

lawou6xi  于 12个月前  发布在  Linux
关注(0)|答案(3)|浏览(146)

**已关闭。**此问题为not about programming or software development。目前不接受回答。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
28天前关闭
Improve this question
我想尝试一些与乌藨子Pis网络项目,我需要只是一对Pis之间发送数据包.我会很高兴作为第一步只是能够ping之间到乌藨子Pis在ad-hoc模式.我还没有成功地做到这一点,尽管看了几个教程和例子在线.
我有2x乌藨子Pis与Debian Wheezy操作系统安装.我使用以下USB适配器,我安装了两个Pis固件,并测试了它们的工作原理,将它们连接在托管模式下到路由器:总线001设备004:ID 050 d:945 a贝尔金组件F7 D1101 v1基本无线适配器[Realtek RTL 8188 SU]
以下是一些关于网络信息的原则:
/etc/network/interfaces在每个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

字符串
ifconfig在每个pi:

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 ~ $ iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:"pi-ad-hoc"  Nickname:"rtl_wifi"
          Mode:Ad-Hoc  Cell: 02:11:87:FA:4A:02   Bit Rate:54 Mb/s   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
pi2@raspberrypi ~ $ iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:"pi-ad-hoc"  Nickname:"rtl_wifi"
          Mode:Ad-Hoc  Cell: 02:11:87:C4:F2:01   Bit Rate:54 Mb/s   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


一个PI的路线(其他PI相同):

pi1@raspberrypi ~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
192.168.2.0     *               255.255.255.0   U     0      0        0 wlan0


在每个PI扫描iwlist:

pi1@raspberrypi ~ $ sudo iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 02:11:87:FA:4A:02
                    ESSID:"pi-ad-hoc"
                    Protocol:IEEE 802.11bg
                    Mode:Ad-Hoc
                    Frequency:2.427 GHz (Channel 4)
                    Encryption key:off
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality:0  Signal level:0  Noise level:0
          Cell 04 - Address: 02:11:87:C4:F2:01
                    ESSID:"pi-ad-hoc"
                    Protocol:IEEE 802.11bg
                    Mode:Ad-Hoc
                    Frequency:2.427 GHz (Channel 4)
                    Encryption key:off
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Signal level=100/100  
pi2@raspberrypi ~ $ sudo iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 02:11:87:C4:F2:01
                    ESSID:"pi-ad-hoc"
                    Protocol:IEEE 802.11bg
                    Mode:Ad-Hoc
                    Frequency:2.427 GHz (Channel 4)
                    Encryption key:off
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality:0  Signal level:0  Noise level:0
          Cell 02 - Address: 02:11:87:FA:4A:02
                    ESSID:"pi-ad-hoc"
                    Protocol:IEEE 802.11bg
                    Mode:Ad-Hoc
                    Frequency:2.427 GHz (Channel 4)
                    Encryption key:off
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Signal level=100/100


Ping不起作用,它们之间似乎没有联网。(与iwlist扫描中的小区不同),其是用于定义自组织网络的伪基站ID(我从我所读到的最好的理解)。此外,从iwlist,每个pi可以看到他们自己的加上其他pi的ad-hoc网络。我假设他们需要选择相同的Cell ID进行通信,我不确定如何让它们自动完成这一操作。我尝试在每个pi上静态地强制它们相同,这并没有改变单元格ID,因此不起作用:

sudo iwconfig wlan0 ap (some address)


我还尝试了一个解决方案,在wpa_supplicant配置中使用ap_scan=2,这似乎没有帮助。
有人知道我做错了什么吗?

2wnc66cl

2wnc66cl1#

经过一番搜索,我发现我使用的Belkin USB适配器显然没有特别模式支持Linux驱动程序。我买了一些其他的无线USB适配器,工作很好“Edimax EW-7811 Un 150 Mbps无线11n纳米尺寸USB适配器”。它们更便宜,更小,他们在ad-hoc模式下工作,甚至不需要担心驱动程序。如果你也想做ad-hoc raspberry PI项目,我为故障排除提供的细节可以作为指导。

x759pob2

x759pob22#

这在/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

字符串
埃西德,channel和ap可以是任何有效值(在所有的Pi上都是一样的)。确保在同一个子网中为不同的Pi分配不同的地址,你应该没问题。ap定义了上面提到的cell ID。FWIW我使用的是TP-链接WN 725 N。它有RTL 8188 CUS芯片组,开箱即用,即使dmesg指示Pi将其视为RTL 8192也能正常工作。

qyyhg6bp

qyyhg6bp3#

我没有成功使用任何适配器使用RTL8188CUS芯片组。幸运的是,我有一些雷凌RT5370加密狗(从this kit),支持nl80211接口和ad-hoc模式。
我的解决方案涉及使用wpa_supplicant,并配置了2个文件。请确保安装了nl80211驱动程序:

sudo apt-get install libnl1

字符串
接下来,在每个Pi上创建以下名为/etc/wpa_supplicant-adhoc.confwpa_supplicant配置文件:

ctrl_interface=DIR=/run/wpa_supplicant GROUP=netdev
update_config=1
ap_scan=2

network={
  ssid="pihoc_wpa"
  mode=1
  frequency=2462
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="password"
}


在其中可以选择ssidfrequency(查找here以获得有效值)和psk

getent group netdev


如果没有,你可以使用

sudo usermod -a -G netdev userName


接下来,将以下代码块添加到每个Pi上的/etc/network/interfaces文件中:

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


其中每个Pi都有一个以10.10.2.开头的不同address字段。此外,如果您的RT5370适配器使用的接口不是wlan0(例如wlan1wlan2等),请确保使用该接口名称。
此时,Pis应该会在重启后自动加入网络。通过ping或使用ssh测试连接,例如从IP地址为10.10.2.1的代理运行以下命令:

ssh 10.10.2.2


访问IP地址为10.10.2.2的代理。
这里列出的步骤改编自this Arch Linux wiki articlethis Raspberry Pi forum discussion

相关问题