特殊模式下的Raspberry Pi和Edimax 7811UN不兼容

时间:2015-12-08 13:56:49

标签: networking adhoc

我正在使用 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

但问题仍然存在。

任何帮助将不胜感激。感谢。

2 个答案:

答案 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 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。我试过这个并且它有效。