ワイヤレスネットワークに自動的に接続する(Ångström Linux)

ワイヤレスネットワークに自動的に接続する(Ångström Linux)

使っていますオングストロームLinuxでビーグルボード-xM。一つインストールしましたRTL8188SU USB Wi-Fiアダプタ正しく設定してください。ただし、autoファイル内のインターフェイスを1つとしてマークしても自動的には接続されません。/etc/network/interfaces私の/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)

ご覧のとおり、インターフェイスinetには接続がありませんwlan0。を入力し続けると、ifdown wlan0インターフェイスifup wlan0の設定に従ってワイヤレス接続が正常に確立されます。ifconfig再起動後の出力はwlan0次のとおりです。

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.

しかし、私は問題の原因を認識していませんでした。システムが起動したら、ネットワークを再起動して接続を確立できます。

答え1

または私のメモを活用する方が良いです...

  1. コネクタを無効にする:

    # systemctl disable connman.service
    
  2. $ 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
    
  3. 作るresolv.conf

    $ cat >/etc/resolv.conf <<EOF
    search local
    nameserver 192.168.0.1
    EOF
    
  4. 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
    
  5. 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
    
  6. 〜できるようにするsystemctl

    # systemctl enable net.service
    

答え2

このように?冗談のように感じますが、こんにちは

私はイーサネット固定IPで組み込みプロジェクトを設定し、簡単にSSHで接続できるようにするのが好きです。 WiFIは有線より優れているため、プロジェクトをモバイルにすることができます。これの最善の点は、BBBが私が持っているEdimax USB WiFiモジュールと連携するためにドライバを必要としないことです。これはRaspberry Piでよく使われるものと同じです。 Angstromの功労(時には損害を受けることもあります)、彼らはパッケージとドライバの最新の改訂版に非常によく従います。

まず、Angstromに付属のネットワーク管理者であるConnmanを試しました。 Connmanは問題なくDHCP用のWiFiを設定できました。欠点は、起動時にインターフェイスを呼び出さないようで、静的IPで設定できないことです。私はGUIを介してこれを達成し、ワイヤレスインターフェイス用のConnman設定ファイルを作成しようとしました。だからコンマンをあきらめた。まだ全盛期を迎える準備ができていません。一部の人々は、Ubuntuの採用がUbuntuの準備になったことを証明したと主張しています。しかし、長年にわたりUbuntuで過酷なネットワーク管理を経験した人々は、これを受け入れるよりもよく知っています。しかし、もっと重要なのは、BBBがラップトップではなく組み込みシステムであるということです。 GUIインターフェイスに注意を払うべきではありません。ユーザーは、外出中でもワイヤレスインターフェイスを継続的に再設定できます。私はこれを何かにする予定で、インターフェイスが毎回同じ方法で安定して現れることを望みます。

だから私は基本に戻ることにしました。まず、邪魔にならないようにCommonが必要です。次のように無効にできます。

$ 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を使用しないため、起動時にインターフェイスを起動するには、インターフェイスファイルにauto wlan0以降が必要です。 Angstromは初期化時に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を提供します。 SSHを介してBBBにログインし、リモートでドライブをマウントできます。

関連情報