5

所以我正在尝试使用 Raspberry Pi 设置无线网状网络,使用 Edimax EW-7811Un WLAN 适配器和 batman-adv 协议。

我尝试遵循以下基本设置指南:

不幸的是,当我需要从另一个节点 ping 一个节点时,我得到了

目标主机不可达。

运行batctl o命令显示

'范围内没有蝙蝠侠节点'

但是,在运行时iwconfig,两个节点似乎都与我设置的网络相关联,而在运行时iwlist wlan0 scan,我设置的网络在两个节点上都显示为单元格。

我现在不知道如何进行。我已经阅读了一些关于 Linux WLAN 适配器驱动程序的临时支持问题的文章。我的适配器使用的是 RTL8192CU 驱动程序。这可能是问题的原因吗?

PS我看过下面的帖子,但不幸的是,这没有帮助。

编辑:内容/etc/network/interfaces

当前设置的两个节点具有相同的内容:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

编辑:/etc/wpa_supplicant/wpa_supplicant.conf两个节点的内容:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

编辑: ifconfig, iwconfig, 和两个节点的路由:

节点 1

ifconfig

wlan0    Link encap: Ethernet  HWaddr 80:1f:02:9b:bc:6c
         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:1  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)

iwconfig

wlan0    IEEE 802.11bg  ESSID:"pi-ad-hoc" Nickname:"<WIFI@REALTEK>"
         Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:11:87:A1:CD:FF
         Bit Rate:54 Mb/s   Sensitivity:0/0
         Retry:off    RTS thr:off    Fragment thr:off
         Encryption key:off
         Power Management:off
         Link Quality=2/100  Signal level=2/100  Noise level=0/100
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0  Missed beacon:0

route

Kernel IP routing table
Destination    Gateway        Genmask        Flags  Metric  Ref    Use  Iface
192.168.2.0    *              255.255.255.0  U      0       0        0  wlan0

节点 2

ifconfig

wlan0    Link encap:Ethernet  HWaddr 80:1f:02:da:2e:ee
         inet addr:192.168.2.3  Bcast:192.168.2.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:0  errors:0  dropped:0  overruns:0  frame:0
         TX packets:6  errors:0  dropped:0  overruns:0  carrier:0
         collisions:0  txqueuelen:1000
         RX bytes:0  (0.0 B)  TX bytes:0  (0.0 B)

iwconfig

wlan0    IEEE 802.11bg ESSID:"pi-ad-hoc"  Nickname:"<WIFI@REALTEK>"
         Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:11:87:2F:D6:FF
         Bit Rate:54 Mb/s   Sensitivity:0/0
         Retry:off  RTS thr:off  Fragment thr:off
         Encryption key:off
         Power Management:off
         Link Quality=2/100  Signal level=2/100  Noise level=0/100
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0  Missed beacon:0

route

Kernel IP routing table
Destination    Gateway        Genmask        Flags  Metric  Ref     Use   Iface
192.168.2.0    *              255.255.255.0  U      0       0         0   wlan0
4

6 回答 6

6

我可以确认,这是最新的 rtl8192cu 驱动程序的问题。我正在为 edimax wlan 适配器使用该驱动程序的旧版本,而蝙蝠侠(几乎)可以正常工作。但是我发现,在某些情况下(负载很重),连接失败了。然后我升级到该驱动程序的最新版本(日期:2013 年 9 月 11 日),但发现 batman 不再工作(与旧驱动程序的配置完全相同)。症状与您在帖子中描述的完全一样。

编辑:我的帖子被删除了,说我没有回答这个问题。我不同意这一点:这是对原始帖子的回答。原始帖子中的唯一问题是:“我的适配器正在使用 RTL8192CU 驱动程序。这可能是问题的原因吗?”

再次:我可以确认使用此(最新)驱动程序会导致问题。此驱动程序与蝙蝠侠不兼容。该问题与配置文件无关。尝试寻找较旧的驱动程序或 - 更好 - 使用具有不同芯片组的 wlan 适配器。

于 2014-08-28T07:58:55.210 回答
3

您尝试设置一个 adhoc 网络。不过,我建议从更简单的方法开始——Wifi 接入点,然后切换到 adhoc 网络。

从我的角度来看,将 raspi 连接到无线接入点更容易。因为接入点将通过 DHCP 移交 IP 地址。在临时模式下,您必须自己关心 IP(据我所知)。

因此,基于接入点的解决方案的配置就像

/etc/网络/接口

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

(顺便说一句,这已经和你的很像了)

然后是连接到 WPA2 接入点的/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="KBBL"
        psk=af2a9daa6cadd3434ad96db48173a04acddb04e6a8c5adf52ae78ef13XXXX
        key_mgmt=WPA-PSK
        scan_ssid=1
        proto=RSN
        pairwise=CCMP
        group=CCMP
}

请注意,psk 密钥需要由

$wpa_passphrase "KBBL" "YOUR_KEY"

这会导致类似

network={
        ssid="KBBL"
        #psk="YOUR_KEY"
        psk=29af596e046ad450eeddd6752432d5dbd26575960b9024e5cbb99e945cdafa4e
}

只需复制并粘贴psk

然后重启!我有时会在即时更改网络 wifi 设置时遇到麻烦。虽然重启后一切都很好。wifi网络也需要一些时间。在我的地方20-40秒之间。

顺便提一句。我在尝试设置没有加密或 WEP 加密的 wifi 时也遇到了麻烦,所以我建议使用 WPA2 或 WPA。另请注意,wpa_supplicant 的 WPA 配置与 WPA2 的配置有很大不同。因此,您可能会开始将上述示例用于 WPA2。

于 2014-05-03T12:36:12.330 回答
2

由于 wifi 连接到您的接入点工作正常。我们假设驱动程序和硬件都很好。现在让我们尝试通过 -- Wifi ad-hoc进行连接。

我在这里发现了一些非常有前途的配置,而无需使用 wpa_supplicant。如前所述,我们必须使用固定 IP。所以当然他们需要在两个 raspis 上有所不同。请注意,我必须将“手动”更改为“静态”。现在它也可以在我的地方工作(重启后)。它来了

/etc/网络/接口

auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
    address 192.168.2.10
    netmask 255.255.255.0
    wireless-channel 4
    wireless-essid pi-ad-hoc
    wireless-mode ad-hoc

请注意:所选 IP 不应位于有线网络 (eth0) 的子网中。

还要确保sudo ifconfig wlan0显示正确的 IP

pi@raspberrypi ~ $ sudo ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 80:1f:02:87:77:81  
          inet addr:192.168.2.10  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:53 errors:0 dropped:29 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6007 (5.8 KiB)  TX bytes:1042 (1.0 KiB)

这是sudo iwconfig wlan0

pi@raspberrypi ~ $ sudo iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:"pi-ad-hoc"  Nickname:"<WIFI@REALTEK>"
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:11:87:DF:AB:FF   
          Bit Rate:54 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=2/100  Signal level=2/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
于 2014-05-03T15:17:45.857 回答
1

我刚刚在 Raspbian 上使用两个 Raspberries 和相同的 Wifi 适配器 (Edimax EW-7811Un) 检查了您的配置。长话短说:我得到和你一样的结果。

我的发现如下

  1. 按照所述设置一个 Raspberry for adhoc 并从 iPad 或 Notebook 连接......工作正常
  2. 在笔记本上创建一个临时连接并让一个 Raspberry 加入......工作正常
  3. 为接入点设置一个 Raspbery 并从 iPad 或笔记本电脑连接......工作正常
  4. 但是,当在 adhoc 模式或接入点模式下设置两个 Raspberries 时不会相互连接......不起作用!
  5. 正如您在此来源中发现那样,这些适配器 (rtl8192cu) 的可用模式尚不清楚。
  6. 其他来源使用类似的设置和其他 wifi 适配器轻松创建临时连接,如所述。

适配器驱动程序似乎不允许这种连接。

请注意:使用这些适配器设置接入点需要特殊编译的 hostapd:阅读此处以了解如何

于 2014-05-06T18:56:34.133 回答
1

我在将 Edimax EW-7811Un 与 Raspberry Pi A+ 结合使用时遇到问题,几分钟后它变得无响应。Apache 和 SSH 无法访问,并且 ping 未连接。

iwconfig 程序显示:“电源管理:关闭”,但它仍然进入空闲模式。

我在树莓论坛上找到了 MrEngman 的解决方案:http ://www.raspberrypi.org/forums/viewtopic.php?f=28&t=61665

这可能会解决它:

使用以下命令在目录 /etc/modprobe.d/ 中创建文件 8192cu.conf:

    sudo nano /etc/modprobe.d/8192cu.conf

添加这些行:

    # Disable power management
    options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
于 2014-12-03T16:49:14.033 回答
0

我目前没有任何地方可以测试,所以很抱歉没有截图:(

如果您仍然感兴趣并且已经使用 batman-adv 和 catwoman 建立了多个网状网络并面临类似的问题(我已经完成了混合设备,如 android 手机、foeras、openwrt 设备等,以便一起工作)。

使用 batman-adv 时要检查的第一件事是兼容性版本,在加载 de batman-adv 模块时检查您的 dmesg 哪个节点正在使用每个节点,它应该在两者中匹配,否则即使两者都正确设置,它们也不会互相看到!(这在过去让我很头疼呵呵)

如果节点仍然看不到对方,则需要检查在将模式更改为 ad-hoc 时是否有任何问题。

现在,一旦节点看到彼此,记得 batman-adv 在第 2 层工作,batctl 有一个 ping 工具可以在该层上 ping,即使节点无法看到彼此。

我不太确定为什么你在这里有 wpa-supplicant,网状网络不需要它,设置你的网状网络只需选择一个通道和一个 ESSID;所有节点都应该具有相同的参数,然后只需将 wifi 接口置于 ad-hoc 模式并在 batctl 上将接口添加到 bat0 接口。

bat0接口?那是实际的网状接口,而不是 wlan0。您确实在 wlan0 接口上放置了一个 ip,但这不起作用,您需要为 bat0 提供一个 ip,并且网格将使用该 ip。根据记忆,命令将是:batctl ifadd wlan0,但请检查 batctl 帮助以防万一:)

如果要共享 Internet 连接,您需要按照以下步骤操作,然后在连接到 Internet 的节点上创建 bat0 和 Internet 接口之间的桥接(请记住离开 wlan0 或任何仅使用网格的接口)并完成 go在该节点上执行 batctl 并打开 gw(网关)模式(我认为是 batctl gw on)。然后您可以在所有节点上通过 bat0 运行 dhcp,它应该可以正常工作。

以防万一,请确保已加载 batman-adv 模块呵呵

在设置 batman-adv 网格时,我想我已经涵盖了所有方面。如果您有任何疑问,我会尽力帮助您:D

最好的问候,并希望你的网格工作正常!:)

于 2014-08-04T10:09:43.437 回答