Raspberry Piを使用していくつかのネットワークプロジェクトを試したいのですが、pisのペア間でパケットを送信するだけで済みます。アドホックモードでRaspberryPisにpingを実行できるようになることで、最初のステップとして喜んでいます。オンラインでいくつかのチュートリアルと例を見たにもかかわらず、私はこれをうまくやっていません。
Debian WheezyOSがインストールされた2xRaspberryPiがあります。両方のpisにファームウェアをインストールした次のUSBアダプターを使用しており、マネージドモードでルーターに接続して動作することをテストしました。バス001デバイス004:ID 050d:945aBelkinコンポーネントF7D1101v1ベーシックワイヤレスアダプター[RealtekRTL8188SU]
ネットワーク情報に関するいくつかのプリントアウトは次のとおりです。
各piの/ etc/network/interfaces:
_
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
_
各piでのifconfig:
_
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
_
1つの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が機能せず、ネットワークが機能していないようです。 iwconfigから、アドホックネットワークを定義するために使用される疑似基地局IDである異なる「セル」アドレス(iwlistスキャンと同じセルではない)をそれぞれが持っていることがわかります(私の最もよく理解しているのは私が読んだもの)。また、iwlistから、各piは自分自身と他のpiのアドホックネットワークを見ることができます。通信するには同じセルIDを選択する必要があると思いますが、これを自動的に行う方法がわかりません。セルIDを変更せず、したがって機能しなかった各piで次のコマンドを使用して、これらを静的に強制的に同じにしようとしました。
Sudo iwconfig wlan0 ap (some address)
また、wpa_supplicant構成でap_scan = 2を使用するソリューションを試しましたが、役に立たなかったようです。
誰かが私が間違ったことを知っていますか?
ありがとう、アンディ。
いくつか検索したところ、使用していたBelkinUSBアダプターがLinuxドライバーでアドホックモードをサポートしていないことがわかりました。 「EdimaxEW-7811Un150Mbpsワイヤレス11nナノサイズUSBアダプター」でうまく機能する他のワイヤレスUSBアダプターをいくつか購入しました。それらはより安く、より小さく、そしてドライバーを心配する必要さえなくアドホックモードで働きました。アドホックなRaspberryPiプロジェクトも実行したい場合は、トラブルシューティングに使用した詳細をガイドとして使用できます。
これは/ 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
Essid、channel、apは、任意の有効な値にすることができます(すべてのPiで同じ)。同じサブネット上の異なるアドレスを異なるPiに割り当てるようにしてください。そうすれば、問題はありません。 apは、上記のセルIDを定義します。 FWIW私はTP-linkWN725Nを使用しています。 RTL8188CUSチップセットを搭載しており、dmesgがPiがRTL8192として処理していることを示していても、箱から出して正常に動作します。
RTL8188CUS
チップセットを使用しているアダプターで失敗しました。幸いなことに、RT5370
インターフェイスとアドホックモードをサポートするRalinknl80211
ドングル( このキット から)がいくつかありました。
私のソリューションはwpa_supplicant
を使用することを含み、2つのファイルで構成されています。 nl80211
ドライバーがインストールされていることを確認します。
Sudo apt-get install libnl1
次に、各Piにwpa_supplicant
という名前の次の/etc/wpa_supplicant-adhoc.conf
構成ファイルを作成します。
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"
}
ここで、ssid
、frequency
(有効な値については、 ここ を参照)、およびpsk
を選択できます。コマンドを使用して、ユーザーグループnet-dev
の一部であることを確認してください
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
以外のインターフェース(例:wlan1
、wlan2
など)を使用している場合は、代わりにそのインターフェース名を使用してください。
この時点で、Pisは再起動時に自動的にネットワークに参加する必要があります。 pingまたはsshを使用して接続をテストします。たとえば、IPアドレス10.10.2.1
のエージェントから次のコマンドを実行します。
ssh 10.10.2.2
iPアドレス10.10.2.2
でエージェントにアクセスします。
ここにリストされているステップは、 このArch Linux wiki記事 および このRaspberry Piフォーラムディスカッション から適応されています。