Raspberry Pi 和 Edimax 7811UN 在临时模式下不兼容

Raspberry Pi and Edimax 7811UN incompatibility in ad-hoc mode

我正在使用 Raspberry Pi Model 2 B 和 1 GB RAM 以及 EDIMAX nano USB 适配器。起初我在 Rapsberry Pi 上使用 NOOBS 并想在两个这样的 Pi 之间建立一个临时网络。

我尝试使用如下所述的相同配置配置其中一个 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 连接到 Pi 的 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

我还通过在两者上配置 rc.local 文件来强制 Pi 加入临时网络,如下所示:

#! /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 的池中的 DHCP 服务器获得了一个 IP 地址- 1 并且可以通过 ssh 进入 Pi-1 并且只是为了检查连接性我可以将笔记本电脑从 RPi ping 到笔记本电脑,反之亦然。

当我尝试从 Pi-1 Ping Pi-2 时,它无法访问,反之亦然。但我可以从笔记本电脑连接到 Pi-2,反之亦然。

场景:PI-1 <---> 笔记本电脑和 PI-2 <---> 笔记本电脑 但没有来自 PI-1 <--/--> PI-2 的连接 我无法将树莓派连接在一起。

我还使用以下方法将 NOOBS 升级为 Wheezy: sudo apt-get 更新 sudo apt-get dist-upgrade

但问题依然存在

如有任何帮助,我们将不胜感激。谢谢

问题是出于某种原因至少在 Debian Jessie 4.1.13-v7+ 中。 RTL8192cu 驱动程序不支持在点对点模式下为 Edimax EW7811UN 无线加密狗广播。

但是,如果 Raspberry Pi 之间的 ssh-ing 是您需要的所有功能。您可以在 ARP table 中插入一个手动 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]

完成此操作后,您应该能够通过 ssh 进入 Raspberry Pis 并 ping Raspberry Pis。但请注意,对于任何需要广播的协议,它在 Ad-hoc 模式下无法在 Edimax EW7811UN Wireless Dongle 上运行。

或者,如果您想要一个开箱即用的无线 Dongle,可以在 ad-hoc 模式下使用。我强烈推荐 TP-Link TL-WN722N。我试过这个并且有效。

因此,如果不使用 Edimax EW7811UN 无线加密狗,连接问题终于得到解决。该问题与 Linux 3.9 以上版本的内核不支持的驱动程序有关。该驱动具体称为802nl11驱动

另一种解决连接问题的解决方案是使用 WiFi 加密狗,其中包含 Ralink RTL5370 驱动程序。我目前正在使用 LogiLink WL0145 无线 N USB 适配器

当 USB 加密狗连接到 RPi 时,可以使用 lsusb 命令对驱动程序进行良好的检查。现在使用相同的配置,我可以 ping 通两个树莓派。

推理

在使用 Edimax 加密狗时,Raspberry Pi 的 B+ 型存在驱动程序兼容性问题,特别是在 Ad-Hoc 模式.因此,建议在 Ad-Hoc 模式 下使用 RPis 时切换到其他 WiFi 加密狗,尤其是那些带有 Ralink Technology RT5370 无线适配器 的。

与杰西确认

JessieJessie Lite 8.0

的 Ad Hoc 模式仍然不支持 Edimax 7811UN