私は Ångström Linux on BeagleBoard-xM を使用しています。 RTL8188SU USB Wi-Fiアダプター をインストールし、正しく構成しました。しかし、/etc/network/interfaces
ファイルでインターフェースをauto
としてマークしたにもかかわらず、自動的に接続されません。私の/etc/network/interfaces
ファイルを以下に示します(wlan0
設定のみを貼り付けました):
auto wlan0
iface wlan0 inet static
address 192.168.2.50
netmask 255.255.255.0
gateway 192.168.2.1
wireless_mode managed
wireless_essid MY NETWORK ESSID
wireless_key MY_PASS
システム起動後のifconfig
コマンドの出力は次のとおりです。
root@beagleboard:~# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1632 (1.5 KiB) TX bytes:1632 (1.5 KiB)
wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet6 addr: fe80::2e0:4cff:fe03:cbb1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:241 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)
ご覧のとおり、インターフェースwlan0
にはinet
接続がありません。 ifdown wlan0
とifup wlan0
を連続して入力すると、インターフェースの設定に従ってワイヤレス接続を正常に確立できます。 wlan0
を再起動した後のifconfig
の出力を以下に示します。
wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.2.50 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:974 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
システムの起動時に(できればWi-Fiアダプターを再接続した後)ワイヤレス接続を自動的に確立したい。私がそうするために欠けているものはありますか?
編集:
ブートログをトレースし、ESSIDの設定について不平を言っているメッセージを見ました。
Error for wireless request "Set ESSID" (8B1A) :
SET failed on device wlan0 ; Operation not permitted.
しかし、私は問題の原因に気づいていません。システムの起動後、ネットワークを再起動して接続を確立できます。
または私自身のメモからここにもっと良い....
Connmanを無効にします。
# systemctl disable connman.service
$ cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.99
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.0
gateway 192.168.7.1
dns-nameservers 192.168.7.1
iface wlan0 inet static
address 192.168.0.98
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
wireless_mode managed
wireless_essid “VM275247-2G”
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
post-down killall -q wpa_supplicant
EOF
作成resolv.conf
$ cat >/etc/resolv.conf <<EOF
search local
nameserver 192.168.0.1
EOF
作成wpa_supplicant.conf
パスワード付き
$ cat >/etc/wpa_supplicant.conf <<EOF
ap_scan=2
network={
ssid="VM275247-2G"
proto=WPA RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx1
}
EOF
Wi-Fiのサービスを作成する
$ cat >/etc/systemd/system/net.service <<EOF
[Unit]
Description=Network interfaces
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-wlan0.device
After=sys-subsystem-net-devices-wlan0.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "sleep 5;ifup wlan0"
ExecStop=/bin/sh -c "ifdown wlan0"
[Install]
WantedBy=multi-user.target
EOF
systemctl
を有効にする
# systemctl enable net.service
このような?疫病のように感じますが、ちょっとホー
イーサネットを使用して組み込みプロジェクトを静的IPでセットアップするのが好きなので、簡単にSSH接続できます。プロジェクトをモバイルにできるように、有線よりもWi-Fiの方が好まれます。これを行うことの大きな部分は、BBBが私が持っているEdimax USBWiFiモジュールで動作するためにドライバーを必要としなかったことです。これは、RaspberryPiでよく使用されるものと同じです。オングストロームの功績(そして時には不利益)は、パッケージとドライバーの最新リビジョンに追いつくのに優れています。
私は最初に、コンマンのオングストロームに付属しているネットワークマネージャーを試してみました。 ConnmanはDHCP用のWiFiを問題なくセットアップできました。失敗したのは、起動時にインターフェースを起動できなかったようで、静的IPを使用してインターフェースを構成できなかったためです。私は、GUIと、ワイヤレスインターフェイス用のConnman構成ファイルの作成の両方でこれを達成しようとしました。それで私はコンマンをあきらめました。プライムタイムの準備ができていません。 Ubuntuがそれを採用したことで、その準備ができていることが証明されると主張する人もいます。しかし、Ubuntuで何年にもわたって貧弱なネットワーク管理者に苦しんできた私たちの人々は、それを受け入れるよりもよく知っています。さらに重要なのは、BBBはラップトップではなく組み込みシステムです。外出中のユーザーがワイヤレスインターフェイスを頻繁に再構成できるようにするGUIインターフェイスを気にする必要はありません。私はこれを何かに組み込むことを計画しており、インターフェースが毎回同じように確実に起動することを望んでいます。
そこで、基本に立ち返ることにしました。まず、邪魔にならないようにConnmanが必要でした。次のように無効にできます。
$ systemctl disable connman.service
次に、有線インターフェイスと無線インターフェイスの両方を構成するためのインターフェイスファイルを作成する必要がありました。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.xxx
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.xxx,8.8.8.8
iface usb0 inet static
address 192.168.10.xxx
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 192.168.10.1,8.8.8.8
auto wlan0
iface wlan0 inet static
address 192.168.0.xx
netmask 255.255.255.0
gateway 192.168.0.xxx
dns-nameservers 192.168.0.1,8.8.8.8
wireless_mode managed
wireless_essid NAME_OF_AP
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
post-down killall -q wpa_supplicant
ワイヤレスで暗号化を使用している場合(そしてそうすべきです)、接続に役立つwpa_supplicantファイルが必要になります。このファイルにはパスキーが必要です。あなたはこのようにあなたのネットワークのためにそれを得ることができます:
$ wpa_passphrase
出力をコピーしてwpa_supplicantファイルに貼り付けるだけです(/etc/wpa_supplicant.conf
)。次のようになります。
ap_scan=2
network={
ssid=
proto=WPA RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk=Big long string of hex number
}
最後に、Angstromはinit.dを使用しないため、起動時にインターフェイスを起動するには、インターフェイスファイルにautowlan0以上のものが必要です。 Angstromはinitで代わりにsystemdを使用しています。下位互換性のために、systemdはinit.dフォルダーでスクリプトを実行することを読みましたが、そうではなかったようです。とにかく、新しい体系化された方法を採用することは理にかなっているようです。そこで、起動時にインターフェイスを表示するための簡単なサービス構成を作成しました。それは住んでいます /etc/systemd/system/net.service
。
サービスファイルの内容は次のとおりです。
[Unit]
Description=Network interfaces
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-wlan0.device
After=sys-subsystem-net-devices-wlan0.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "sleep 5;ifup wlan0"
ExecStop=/bin/sh -c "ifdown wlan0"
[Install]
WantedBy=multi-user.target
これにより、ドライバーがロードされた後、ネットワークターゲット(ネットワークを使用するほとんどすべてのもの)の前にWiFiが起動します。
起動時に実行できるようにするには、次の手順を実行します。
$ systemctl enable net.service
それはそれをします。 WiFiは起動時に静的IPを考え出します。 BBBにSSH接続して、ドライブをリモートでマウントできます。