我正在使用 Raspberry Pi Model 2 B 和1 GB RAM以及 EDIMAX nano USB Adapter 。起初我在Rapsberry Pi上使用 NOOBS ,并希望在两个这样的Pi之间建立一个ad-hoc网络。
我尝试使用与下面相同的配置配置其中一个RPi:
#etc/network/interfaces for pi-1
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.50.1
netmask 255.255.255.0
wireless-channel 12
wireless-essid pi-adhoc
wireless-mode ad-hoc
#etc/network/interfaces for pi-2
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.50.2
netmask 255.255.255.0
wireless-channel 12
wireless-essid pi-adhoc
wireless-mode ad-hoc
我已将 Pi-1 设置为DHCP服务器(使用ISC-DHCP-Server守护程序),以便我可以通过SSH连接到Ad-hoc网络以便于访问通过我的笔记本电脑访问。 DHCP服务器配置如下:
ddns-update-style interim;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
option subnet-mask 255.255.255.0;
option domain-name "pi-adhoc";
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.3 192.168.50.150;
}
然后运行守护程序 pi-1~ $ sudo service isc-dhcp-server start
我还强制Pi加入ad-hoc网络,方法是在两者上配置 rc.local 文件,如下所示:
#! /bin/bash
# For Pi-1 /etc/rc.local
adhocNetwork(){
echo "connecting to ad hoc network"
ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid pi-adhoc
iwconfig wlan0 channel 12
ifconfig wlan0 192.168.50.1 netmask 255.255.255.0 up
echo "connected to ad hoc network"
}
adhocNetwork
exit 0
#! /bin/bash
# For Pi-2 /etc/rc.local
adhocNetwork(){
echo "connecting to ad hoc network"
ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc
iwconfig wlan0 essid pi-adhoc
iwconfig wlan0 channel 1
ifconfig wlan0 192.168.50.2 netmask 255.255.255.0 up
echo "connected to ad hoc network"
}
adhocNetwork
exit 0
当我在笔记本电脑上使用WiFi并连接到Pi创建的 pi-adhoc 网络时,我从Pi-1池中获取DHCP服务器的IP地址并且可以进入Pi-1并且只是检查连接我可以将笔记本电脑从RPi平移到笔记本电脑,反之亦然。
当我尝试从Pi-1 Ping Ping-2时,它无法访问,反之亦然。但我可以从笔记本电脑连接到Pi-2,反之亦然。
场景:PI-1< --->笔记本电脑和PI-2< --->笔记本电脑 但是没有来自PI-1的连接< - / - > PI-2 我无法将Pis连接在一起。
我还使用以下内容将 NOOBS 升级为Wheezy: sudo apt-get update sudo apt-get dist-upgrade
但问题仍然存在。
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
如果不使用 Edimax EW7811UN 无线Dongle,最终解决了连接问题。该问题与过去3.9版本的Linux内核不支持的驱动程序有关。该驱动程序专门称为 802nl11驱动程序。
解决连接问题的另一种解决方案是使用WiFi加密狗,其中包含 Ralink RTL5370驱动程序。我目前正在使用 LogiLink WL0145无线N USB适配器。
当USB加密狗连接到RPi时,可以使用lsusb
命令对驱动程序进行良好检查。现在使用相同的配置,我可以ping两个Raspberry Pis。
使用 Edimax 加密狗时,模型B +与Raspberry Pis存在驱动程序兼容性问题,特别是在 Ad-Hoc模式中。因此,建议在 Ad-Hoc模式下使用RP时切换到其他WiFi Dongles ,尤其是使用 Ralink Technology RT5370无线适配器的。
对于 Jessie 和 Jessie Lite 8.0
,仍然不支持Edimax 7811UN用于Ad Hoc模式答案 1 :(得分:0)
问题是至少在Debian Jessie 4.1.13-v7 +中出于某种原因。 RTL8192cu驱动程序不支持在ad-hoc模式下为Edimax EW7811UN无线Dongle进行广播。
但是,如果Raspberry Pi之间的ssh-ing是您需要的所有功能。您可以在ARP表中插入手动arp条目,以防止需要执行ARP广播来解析MAC地址到IP地址关联。
在IP地址为192.168.50.1的Raspberry Pi中执行以下操作:
arp -s 192.168.50.2 [MAC Address of Wireless Dongle on other Raspberry Pi]
在IP地址为192.168.50.2的Raspberry Pi中执行以下操作:
arp -s 192.168.50.1 [MAC Address of Wireless Dongle on other Raspberry Pi]
完成此操作后,您应该能够进入Raspberry Pis并ping Raspberry Pis。但请注意,对于任何需要广播的协议,它都不适用于ad-hoc模式下的Edimax EW7811UN无线Dongle。
或者,如果您想要一个在ad-hoc模式下开箱即用的无线Dongle。我强烈推荐TP-Link TL-WN722N。我试过这个并且它有效。