web-dev-qa-db-ja.com

Arch linux wifiは手動で機能しますが、自動にする方法は?

Raspberry Piでカーネル3.6.11-12-Arch +を使用してArch Linuxを実行しています。

次のコマンドを実行した後、Linksys wifi USBドングル(WUSB54GC v3)が稼働しており、動作しています。

$> Sudo ifconfig wlan0 up
$> Sudo iwlist scan
$> Sudo iwconfig wlan0 mode managed essid myssid key "mykey" retry 7
   # Only had to do this next one the first time
$> Sudo wpa_passphrase myssid "mypassword" > /etc/wpa_supplicant/wpa_supplicant.conf 
$> Sudo wpa_supplicant -B -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
$> Sudo dhcpcd wlan0

起動後に毎回このデバイスのWi-Fiを機能させるにはどうすればよいですか?結局、それを有線接続なしで(したがって、wifiを使わずに)場所に配備したいのですが、毎回手動でwifiを起動/接続する必要がある場合は、明らかにそれができません。

24
Matt

Netctlを使用する必要があります。これは、ネットワーク管理システムに組み込まれたArch Linuxです。まだインストールされていない場合(インストールされているはずです)、pacman -Syu netctlを実行してから/etc/netctlを調べます。 /etc/netctl/examplesに設定ファイルの例があります。

すぐに立ち上げて実行するには:

  1. ワイヤレスアダプターのデバイス名をメモします。私の例のwlan0のすべてのインスタンスを、設定に一致する名前に置き換えます。
  2. 必要なパッケージがインストールされていることを確認してください。

    pacman -Syu wpa_supplicant dhcpcd

    1. WPA保護されたアクセスポイントにはwpa_supplicantが必要です。DHCPサーバーを使用してネットワークからIPを取得するには、Arch Linux wikiにリストされているように、dhcpcdが必要です。
  3. 適切な例をコピーします。

    cp /etc/netctl/example/wireless-wpa /etc/netctl/somedescriptivename

  4. セットアップに合わせて、/etc/netctl/somedescriptivenameで新しい構成を編集します。
  5. ワイヤレスアダプターのnetctl-autoサービスを有効にします。繰り返しますが、wlan0をセットアップのデバイス名に置き換えます。

    systemctl enable [email protected]

注意すべきいくつかの事柄:

  • netctlは、アクセスポイントの範囲に移動すると、/ etc/netctlにあるすべてのプロファイルに自動的に接続します
  • この設定は、Security=wpa-configsectionおよびSecurity=wpaを使用するプロファイルでのみ機能します。
  • netctl disable profilenameを使用して以前に有効にしたすべてのwifiプロファイルを無効にします。それ以外の場合、netctl-autoが有効になると、netctlは起動時に2回起動します。

詳細は Netctl wikiエントリ を参照してください。

19
Jacob Wiltse

netctl(Arch wikiの netctl ページから取得)のプロファイルを作成する方法についての当て推量を排除する簡単な方法:

手順1. OPの説明に従ってwpa_supplicantを使用して、ワイヤレスインターネットを手動でセットアップします。システムにインストールされていない場合は、$ pacman -S wpa_supplicantを実行してください。

ステップ2. dialogパッケージも必要なので、$ pacman -S dialogを使用します。次に、システムを再起動するか、ワイヤレスネットワークから切断します。

ステップ3. $ wifi-menu -oを実行し、Windows/Mac風の非常に簡単な設定を実行します。システムのネットワークIDの事前設定値は$ Sudo netctl listで確認できます。値はwlan098-SSIDの形式になります。 (SSID = WLANの名前)

ステップ4.最後に$ netctl enable wlan098-SSIDを実行してシステムを再起動します$ reboot

それでも、temporarily unable to resolve nameなどのエラーメッセージが表示される場合がありますが、もう一度pingを実行すると正常に機能するはずです。

6
xdavidliu

他のすべての回答は、私のコメントで説明されているように、欠陥があると思います。

これらの手順は、最強のホットスポットに自動接続します。 systemdを使用した標準のArchインストールでテスト済み(他のOSでも動作する可能性があります):

ワンタイムセットアップ:

  • ダイアログ、wpa_supplicant、dhcpcd、netctl、wifi-menuがインストールされていることを確認します。

  • Xfceで、xfce4-wavelan-pluginを追加し、選択したパネルに追加します。これは、接続しているときに表示されるインジケータライトです。他の目的はありません。

  • 他のすべてのネットワークマネージャーとサービスが削除または無効になっていることを確認します。 https://wiki.archlinux.org/index.php/Netctl#Wireless

  • 以前に作成したネットワークプロファイルを削除します。 https://www.ostechnix.com/fix-job-netctl-service-failed-error-Arch-linux/

あるいは、@ JacobWiltseが別の回答のコメントで説明しているように、それらを無効にするだけです。 wiki.archlinux.org/index.php/Netctl#Wireless

  • WiFiデバイスIDを取得するbasename $(ls -d /sys/class/net/w*)

  • netctl-autoサービスを有効にします。これは自動接続するサービスです。 systemctl enable [email protected]

初めてホットスポットに接続する:

  • wifi-menuを実行します。ルートが必要です。 pkexec wifi-menu -oまたはSudo wifi-menu -o

入力中にネットワークパスワードを表示するには、-oを省略します。

  • 下向き矢印、目的の接続を選択し、Enterキーを押して、接続名を受け入れ、パスワードを入力します。

必要に応じてホットスポットを追加します。 netctl-autoは、その後、利用可能な最強のホットスポットに自動的に再接続します。

3
johny why