Difference between revisions of "Wireless Setup (日本語)"

From ArchWiki
Jump to: navigation, search
(rt3090)
(ワイヤレス管理)
Line 108: Line 108:
 
! 管理方法 || インターフェイスの有効化 || ワイヤレス接続管理 <br>(/=代替) || IP アドレスの取得 <br>(/=代替)  
 
! 管理方法 || インターフェイスの有効化 || ワイヤレス接続管理 <br>(/=代替) || IP アドレスの取得 <br>(/=代替)  
 
|-
 
|-
| [[#手動セットアップ|手動管理]], <br>暗号化なしか WEP || [[Core utilities#ip|ip]] || {{Pkg|iw}} / [https://www.archlinux.org/packages/?name=wireless_tools iwconfig] || [[Core utilities#ip|ip]] / {{Pkg|dhcpcd}} / {{Pkg|dhclient}}
+
| [[#手動セットアップ|手動管理]], <br>暗号化なしか WEP || [[Core Utilities (日本語)#ip|ip]] || {{Pkg|iw}} / [https://www.archlinux.org/packages/?name=wireless_tools iwconfig] || [[Core utilities#ip|ip]] / {{Pkg|dhcpcd}} / {{Pkg|dhclient}}
 
|-
 
|-
| [[#手動セットアップ|手動管理]], <br>WPA か WPA2 PSK || [[Core utilities#ip|ip]] || {{Pkg|iw}} / [https://www.archlinux.org/packages/?name=wireless_tools iwconfig] + [[WPA supplicant|wpa_supplicant]] || [[Core utilities#ip|ip]] / {{Pkg|dhcpcd}} / {{Pkg|dhclient}}
+
| [[#手動セットアップ|手動管理]], <br>WPA か WPA2 PSK || [[Core Utilities (日本語)#ip|ip]] || {{Pkg|iw}} / [https://www.archlinux.org/packages/?name=wireless_tools iwconfig] + [[WPA supplicant|wpa_supplicant]] || [[Core utilities#ip|ip]] / {{Pkg|dhcpcd}} / {{Pkg|dhclient}}
 
|-
 
|-
 
| [[#自動セットアップ|自動管理]], <br>ネットワークプロファイルのサポート || colspan="3" align="center" | [[netctl (日本語)|netctl]], [[Wicd]], [[NetworkManager (日本語)|NetworkManager]], etc.<br>
 
| [[#自動セットアップ|自動管理]], <br>ネットワークプロファイルのサポート || colspan="3" align="center" | [[netctl (日本語)|netctl]], [[Wicd]], [[NetworkManager (日本語)|NetworkManager]], etc.<br>

Revision as of 15:18, 3 March 2014

Template:Related articles start (日本語)

  • ネットワーク設定
  • Software access point
  • Ad-hoc networking
  • Internet sharing
  • </ul></div>

    ワイヤレスネットワークの設定は2段階で行います; まずワイヤレスデバイスを使うために正しいドライバがインストールされているか確認し(インストールメディアにある場合はそれらをインストールします)、インターフェースを設定します。次に、ワイヤレス接続を管理する方法を選びます。この記事では両方をカバーしています。また、ワイヤレス管理ツールへの追加リンクもあります。

    Contents

    デバイスドライバ

    デフォルトの Arch Linux カーネルはモジュール式です、つまりマシンに必要なドライバの多くはハードドライブに置かれ、モジュールとして利用されます。起動時に、udev がハードウェアの棚卸を実施します。Udev はハードウェアに必要である適切なモジュール(ドライバ)をロードし、次に、ドライバをロードしてカーネルインターフェースを作成します。

    ワイヤレスチップセットによっては、適切なドライバーに加えて、ファームウェアも必要になります。ほとんどのファームウェアイメージはデフォルトでインストールされる linux-firmware パッケージに含まれていますが、プロプライエタリなファームウェアイメージは含まれていないため別にインストールする必要があります。#ドライバー・ファームウェアのインストールで説明されています。

    Note:
    • Udev は完全ではありません。起動時に udev が正しいモジュールをロードしない場合、手動でモジュールをロードしてください。また、場合によっては udev が1つのデバイスに複数のドライバをロードし、それが衝突を生んで設定が完了できなくなることがあります。不要なモジュールをブラックリスト化するようにしてください。
    • インターフェースの名前はドライバやチップセットによって変わります。例: wlan0, eth1, ath0Network Configuration (日本語)#デバイス名 を参照してください。
    Tip: 絶対に必要というわけではありませんが、最初に #手動セットアップ で説明されているユーザースペースツールをインストールすると良いでしょう (特に、なんらかの問題が発生する場合)。

    ドライバーの状態を確認する

    あなたのカードに合ったドライバーがロードされているか確認するには、カードを PCI(e) を接続している場合は lspci -k、USB で接続している場合は lsusb -v コマンドの出力をチェックしてください。カーネルドライバーが使われているなら、例えば以下のように表示されるはずです:

    $ lspci -k
    06:00.0 Network controller: Intel Corporation WiFi Link 5100
    	Subsystem: Intel Corporation WiFi Link 5100 AGN
    	Kernel driver in use: iwlwifi
    	Kernel modules: iwlwifi
    
    Note: カードが USB デバイスの場合、dmesg | grep usbcore を実行すると usbcore: registered new interface driver rtl8187 のように表示されるはずです。

    また、ip link コマンドの出力をチェックして無線インターフェイス (例: wlan0, wlp2s1, ath0) が作成されているか確認してください。そして、ip link set <interface> up を実行してインターフェイスを立ち上げて下さい。例えば、インターフェイスが wlan0 の場合:

    # ip link set wlan0 up
    

    次のエラーメッセージが表示される場合: SIOCSIFFLAGS: No such file or directory、おそらくチップセットを機能させるためにファームウェアが必要です。

    ファームウェアがロードされているかカーネルメッセージを確認してください:

    $ dmesg | grep firmware
    [   7.148259] iwlwifi 0000:02:00.0: loaded firmware version 39.30.4.1 build 35138 op_mode iwldvm
    

    出力がない場合は、先に確かめたモジュール (この例では iwlwifi) の完全な出力のメッセージをチェックして関連するメッセージや問題を確認してください:

    $ dmesg | grep iwlwifi
    [   12.342694] iwlwifi 0000:02:00.0: irq 44 for MSI/MSI-X
    [   12.353466] iwlwifi 0000:02:00.0: loaded firmware version 39.31.5.1 build 35138 op_mode iwldvm
    [   12.430317] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
    ...
    [   12.430341] iwlwifi 0000:02:00.0: Detected Intel(R) Corporation WiFi Link 5100 AGN, REV=0x6B
    

    カーネルモジュールが正しくロードされ、インターフェイスが立ち上がっている場合は、次のセクションを飛ばしてかまいません。

    ドライバー・ファームウェアをインストールする

    あなたのカードがサポートされているかどうか調べるために以下のリストを確認してください:

    • Ubuntu Wiki にはワイヤレスカードの一覧と、Linux カーネル・ユーザースペースドライバによってサポートされているかの情報があります (ドライバ名含む)。
    • Linux Wireless Support と Linux Questions の Hardware Compatibility List (HCL) にもカーネルで利用できるハードウェアのデータベースがあります。
    • さらに kernel page にはサポートされているハードウェアの表が存在します。

    あなたのワイヤレスカードが上記のリストにあった場合、このページの #ドライバとファームウェアのトラブルシューティング サブセクションを見て下さい、特定のワイヤレスカードのドライバーやファームウェアのインストール情報が載っています。インストールした後、またドライバーの状態を確認してください。

    ワイヤレスハードウェアが上記のリストになかった場合、おそらくサポートしているのが Windows のみだと思われます (Broadcom, 3com, etc)。そういったカードについては、ndiswrapper を使う必要があります。詳しくは #ndiswrapper を見て下さい。

    ワイヤレス管理

    ドライバがインストールされ正しく動作しているとして、次にワイヤレス接続を管理するための方法を選ぶ必要があります。次のサブセクションが方法を決めるのに役立つでしょう。

    複数の理由によって手順とツールが必要になるでしょう:

    • 望む設定管理の種類; 完全に手動なコマンドラインによる設定方法から、グラフィカルフロントエンドによる自動設定まで。
    • ワイヤレスネットワークを保護する暗号化方式。
    • コンピュータが使うネットワークを頻繁に変える場合 (ラップトップなど)、ネットワークプロファイルの必要性。

    マニュアル設定はあなたに多くの仕事を課しますが、設定のよりよいコントロールが得られます。 一般に、永続的な効果のないコマンドセットを入力する必要があるでしょう、つまり、再起動後に適用はされないでしょう。 起動毎にコマンドを入力するのがやっかいな場合は、コマンドをシェルスクリプトに入れて手順を自動化することができます。スクリプトは起動時に自動で実行されるでしょう。Arch Boot Process (日本語) を見て下さい。

    Tip:
    • どの方法を選ぶにせよ、まずは手動で接続を試行するべきです。問題がおこったときに必要なことは何でどのようにデバッグすればいいかを知るのに役に立つでしょう。
    • 可能であれば (例: あなたが Wi-Fi アクセスポイントを管理している場合)、暗号化なしで接続してみて、全てが動作するか確認してください。それから、WEP (設定がシンプルですが数秒でクラックできます)、WPA、WPA2 などの暗号化を使ってみてください。

    以下の表はワイヤレスネットワーク接続を有効化・管理するために使われる方法を、暗号化と管理方式、必要になるツールによってまとめています。他の方法も存在しますが、よく使われるのはこの通りです:

    管理方法 インターフェイスの有効化 ワイヤレス接続管理
    (/=代替)
    IP アドレスの取得
    (/=代替)
    手動管理,
    暗号化なしか WEP
    ip iw / iwconfig ip / dhcpcd / dhclient
    手動管理,
    WPA か WPA2 PSK
    ip iw / iwconfig + wpa_supplicant ip / dhcpcd / dhclient
    自動管理,
    ネットワークプロファイルのサポート
    netctl, Wicd, NetworkManager, etc.

    これらのツールは手動の方法にあるパッケージのリストから必要な依存パッケージを引き込みます。

    手動セットアップ

    他のネットワークインターフェイスと同じように、無線インターフェイスは iproute2 パッケージの ip で操作します。さらに iw パッケージはワイヤレス接続を管理する基本的なツールのセットを提供します。あなたのカードで iw が動かない場合は、昔の wireless_tools を使ってみて下さい。下の表は両方のツールのコマンドの簡単な比較です ([1] にもっと詳しい例があります)。 また、WPA/WPA2 暗号化を使うには、wpa_supplicant パッケージをインストールする必要があります。これらのパワフルなユーザースペースのツールはすこぶる良く動作し、ワイヤレス接続を完全に手動で操作できます。

    Note:
    • このセクションに出てくる例ではあなたのワイヤレスデバイスを wlan0、wifi のアクセスポイントを your_essid と仮定しています。それぞれ適切な文字列に置き換えて下さい。
    • ほとんどのコマンドは root 権限で実行する必要があることに注意してください。通常ユーザーで実行すると、コマンドによっては (例: iwlist) エラーを出さずに終了して正しい出力をしないため、混乱をきたすおそれが有ります。
    iw コマンド wireless_tools コマンド 説明
    iw dev wlan0 link iwconfig wlan0 リンクの状態を取得。
    iw dev wlan0 scan iwlist wlan0 scan 利用可能なアクセスポイントをスキャン。
    iw dev wlan0 set type ibss iwconfig wlan0 mode ad-hoc 動作モードを ad-hoc に設定。
    iw dev wlan0 connect your_essid iwconfig wlan0 essid your_essid 接続してネットワークを開く。
    iw dev wlan0 connect your_essid 2432 iwconfig wlan0 essid your_essid freq 2432M 接続して指定したチャンネルのネットワークを開く。
    iw dev wlan0 connect your_essid key 0:your_key iwconfig wlan0 essid your_essid key your_key 十六進数のキーを使って WEP で暗号化されたネットワークに接続。
    iw dev wlan0 connect your_essid key 0:your_key iwconfig wlan0 essid your_essid key s:your_key ASCII 文字のキーを使って WEP で暗号化されたネットワークに接続。
    iw dev wlan0 set power_save on iwconfig wlan0 power on 省電力機能を有効にする。
    Note: ハードウェアや暗号化方式によっては、手順のいくつかは必要ありません。カードによってはアクセスポイントに関連付けをして IP アドレスを取得する前に、インターフェースの有効化やアクセスポイントのスキャニングが必要なことがあります。実験が必要かもしれません。例えば、WPA/WPA2 ユーザーは #関連付け の手順から直接ワイヤレスネットワークを有効化できます。

    情報を取得する

    Tip: iw ツールの 公式ドキュメント により多くのサンプルがあります。
    • まず無線インターフェイスの名前を調べる必要があります。次のコマンドを使って確認できます:
    $ iw dev
    phy#0
    	Interface wlan0
    		ifindex 3
    		wdev 0x1
    		addr 12:34:56:78:9a:bc
    		type managed
    		channel 1 (2412 MHz), width: 40 MHz, center1: 2422 MHz
    
    • リンクの状態を確認するには、次のコマンドを使って下さい。アクセスポイント (AP) に接続されていないと以下のように表示されます:
    $ iw dev wlan0 link
    Not connected.
    

    AP に接続されている場合は、以下のように表示されるはずです:

    $ iw dev wlan0 link
    Connected to 12:34:56:78:9a:bc (on wlan0)
    	SSID: MyESSID
    	freq: 2412
    	RX: 33016518 bytes (152703 packets)
    	TX: 2024638 bytes (11477 packets)
    	signal: -53 dBm
    	tx bitrate: 150.0 MBit/s MCS 7 40MHz short GI
    
    	bss flags:	short-preamble short-slot-time
    	dtim period:	1
    	beacon int:	100
    
    • 次のコマンドで tx/rx バイトの総量やシグナルの強さと言った統計値を取得することができます:
    $ iw dev wlan0 station dump
    Station 12:34:56:78:9a:bc (on wlan0)
    	inactive time:	1450 ms
    	rx bytes:	24668671
    	rx packets:	114373
    	tx bytes:	1606991
    	tx packets:	8557
    	tx retries:	623
    	tx failed:	1425
    	signal:  	-52 dBm
    	signal avg:	-53 dBm
    	tx bitrate:	150.0 MBit/s MCS 7 40MHz short GI
    	authorized:	yes
    	authenticated:	yes
    	preamble:	long
    	WMM/WME:	yes
    	MFP:		no
    	TDLS peer:	no
    

    インターフェースの有効化

    (通常は不要)

    カードによっては iwwireless_tools を使う前にカーネルインターフェースを初期化する必要があります:

    # ip link set wlan0 up
    
    Note: RTNETLINK answers: Operation not possible due to RF-kill のようなエラーが表示される場合、ハードウェアのスイッチがオンになっているか確認してください。また、あなたの無線ネットワークカードがソフトブロックされている可能性もあります。詳しくは #Rfkill によるブロック を見て下さい。

    インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:

    # ip link show wlan0
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
        link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
    

    <BROADCAST,MULTICAST,UP,LOWER_UP> にある UP がインターフェイスが立ち上がっていることを示しています。後ろにある state DOWN は関係ありません。

    アクセスポイント検索

    利用できるアクセスポイントを見るには:

    # iw dev wlan0 scan | less
    
    Note: Interface doesn't support scanning と表示される場合、おそらくファームウェアのインストールを忘れているはずです。iw が root 権限で実行されていない時にもこのメッセージが表示されることがあります。
    Tip: 住んでいる地域によっては、利用できるネットワークを全て表示するために規制範囲を正しく設定する必要があります。

    チェックするべきポイント:

    • SSID: ネットワークの名前。
    • Signal: dbm のワイヤレス出力 (例: -100 から 0)。負の値が0に近づくほど、信号が良いことを示しています。
    • Security: 直接は報告されません、capability から始まる行を見て下さい。capability: ESS Privacy ShortSlotTime (0x0411) のように Privacy が含まれている場合、そのネットワークは保護されています。
      • RSN 情報ブロックがある場合、そのネットワークは Robust Security Network プロトコル、別名 WPA2 によって保護されています。
      • WPA 情報ブロックがある場合、そのネットワークは Wi-Fi Protected Access プロトコルによって保護されています。
      • RSNWPA ブロックには以下の情報が含まれていることがあります:
        • Group cipher: 値は TKIP, CCMP, その両方, もしくはその他。
        • Pairwise ciphers: 値は TKIP, CCMP その両方, もしくはその他。Group cipher と同じ値である必要はありません。
        • Authentication Suites: 値は PSK, 802.1x, もしくはその他。家庭用ルーターでは、一般的に PSK になるでしょう (つまりパスフレーズ)。大学などでは、ログインとパスワードが必要な 802.1x スイートになると思われます。利用するためにはどのキーマネージメント (例: EAP) とカプセル化 (例: PEAP) が使われているか知る必要があります。詳しくは Wikipedia:Authentication protocol と関連記事を見て下さい。
      • Privacy があるのに RSNWPA ブロックがない場合、WEP が使われています。

    動作モード

    (任意、または必須)

    ワイヤレスカードの正しい動作モードを設定する必要があるかもしれません。具体的に言うと、ad-hoc ネットワークに接続したい場合、動作モードを ibss に設定する必要があります:

    # iw dev wlan0 set type ibss
    
    Note: カードによっては、動作モードを変更するためにワイヤレスインターフェースを down させておく必要があるかもしれません (ip link set wlan0 down)。

    関連付け

    暗号化方式によって、利用するアクセスポイントと暗号化キーをワイヤレスデバイスに関連付ける必要があります。

    • 暗号化なし
    # iw dev wlan0 connect your_essid
    
    • WEP

    十六進数キーか ASCII キーを使う (WEP キーは長さが固定されているため、どちらの形式かは自動で識別されます):

    # iw dev wlan0 connect your_essid key 0:your_key
    

    十六進数キーか ASCII キーを使う、3番目に設定したキーをデフォルトとして指定する (キーは0からカウントされます):

    # iw dev wlan0 connect your_essid key d:2:your_key
    
    • WPA/WPA2

    WPA_Supplicant で説明されているように #アクセスポイント検索 で得られた結果にあわせて /etc/wpa_supplicant.conf ファイルを編集する必要があります。それができたら、次のコマンドを実行してください:

    # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
    

    ここではあなたのデバイスが wext ドライバを使うと仮定しています。これで動かない場合、オプションを修正しなくてはならないかもしれません。 接続に成功したなら、新しいターミナルで次に進んでください (もしくは Ctrl+cwpa_supplicant を終了し上記のコマンドに -B スイッチを付けてバックグラウンドで実行してください)。WPA Supplicant にはより詳しい情報とトラブルシューティングが載っています。

    使う方法によらず、関連付けが成功しているかどうかは次を実行することで確かめられます:

    # iw dev wlan0 link
    

    IP アドレスを取得

    Note: 詳しくは Network Configuration (日本語)#IP アドレスの設定 を見て下さい。この部分は全く同じです。

    最後に、ネットワークインターフェースに IP アドレスを与えます。例えば DHCP を使って:

    # dhcpcd wlan0
    

    または

    # dhclient wlan0
    

    固定 IP アドレスの場合:

    # ip addr add 192.168.0.2/24 dev wlan0
    # ip route add default via 192.168.0.1
    
    Tip: dhcpcd contains a hook (enabled by default) to automatically launch WPA supplicant on wireless interfaces. It is started only if a configuration file at /etc/wpa_supplicant.conf exists and no wpa_supplicant process is listening on that interface. In most cases, you do not need to create any custom service, just enable dhcpcd@interface.

    カスタムスタートアップスクリプト・サービス

    手動設定はワイヤレスに関する問題のトラブルシューティングに役立ちますが、再起動する毎にコマンドを再入力する必要があります。全体のプロセスを自動で行うシェルスクリプトを書けば、設定の全てのコントロールを維持しながらネットワーク管理をとても便利にすることができます。

    systemd と dhcpcd を使って起動時に手動でワイヤレス接続

    この例ではスタートアップに systemd を、接続に WPA supplicant を、IP アドレスの取得に dhcpcd を使っています。

    Note: あらかじめ wpa_supplicant をインストールして /etc/wpa_supplicant.conf を作成してください。詳しくは WPA supplicant を見て下さい。

    systemd のユニットを作成してください、例: /etc/systemd/system/network-wireless@.service:

    /etc/systemd/system/network-wireless@.service
    [Unit]
    Description=Wireless network connectivity (%i)
    Wants=network.target
    Before=network.target
    BindsTo=sys-subsystem-net-devices-%i.device
    After=sys-subsystem-net-devices-%i.device
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    
    ExecStart=/usr/bin/ip link set dev %i up
    ExecStart=/usr/bin/wpa_supplicant -B -i %i -c /etc/wpa_supplicant.conf
    ExecStart=/usr/bin/dhcpcd %i
    
    ExecStop=/usr/bin/ip link set dev %i down
    
    [Install]
    WantedBy=multi-user.target
    

    ユニットを有効にして起動してください (インターフェイスの名前を指定します):

    # systemctl enable network-wireless@wlan0.service
    # systemctl start network-wireless@wlan0.service
    
    Systemd と wpa_supplicant と固定 IP
    Note: あらかじめ wpa_supplicant をインストールして /etc/wpa_supplicant.conf を作成してください。詳しくは WPA supplicant を見て下さい。

    まず systemd サービスの設定ファイルを作成してください (<interface> は適切なインターフェイス名に置き換えて下さい):

    /etc/conf.d/network-wireless@<interface>
    address=192.168.0.10
    netmask=24
    broadcast=192.168.0.255
    gateway=192.168.0.1
    

    systemd のユニットファイルを作成してください:

    /etc/systemd/system/network-wireless@.service
    [Unit]
    Description=Wireless network connectivity (%i)
    Wants=network.target
    Before=network.target
    BindsTo=sys-subsystem-net-devices-%i.device
    After=sys-subsystem-net-devices-%i.device
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    EnvironmentFile=/etc/conf.d/network-wireless@%i
    
    ExecStart=/usr/bin/ip link set dev %i up
    ExecStart=/usr/bin/wpa_supplicant -B -i %i -c /etc/wpa_supplicant.conf
    ExecStart=/usr/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
    ExecStart=/usr/bin/ip route add default via ${gateway}
    
    ExecStop=/usr/bin/ip addr flush dev %i
    ExecStop=/usr/bin/ip link set dev %i down
    
    [Install]
    WantedBy=multi-user.target
    

    ユニットを有効にして起動してください (インターフェイスの名前を指定します):

    # systemctl enable network-wireless@wlan0.service
    # systemctl start network-wireless@wlan0.service
    

    自動セットアップ

    様々な方法を選ぶことができますが、相互に相容れないことを忘れないで下さい; 2つのデーモンを同時に実行してはいけません。下の表は接続マネージャを比較しています。それぞれの詳細は下のサブセクションにあります。

    接続マネージャ ネットワーク
    プロファイル
    サポート
    ローミング
    (切断したり場所を変更した時の
    自動接続)
    PPP サポート
    (例: 3G モデム)
    公式
    GUI
    コンソールツール
    Connman Yes Yes Yes No connmanctl
    netctl Yes Yes Yes No netctl,wifi-menu
    NetworkManager Yes Yes Yes Yes nmcli
    Wicd Yes Yes No Yes wicd-curses

    Netctl

    netctlnetcfg の後継で systemd で動作するように設計されています。設定にプロファイルを使い、幅広いタイプのネットワークを検知・接続することができます。グラフィカルツールを使うのと難易度は大して変わりません。

    参照: Netctl (日本語)

    Wicd

    Wicd は無線・有線両方の接続を管理することができるネットワークマネージャです。Python と Gtk で書かれており NetworkManager よりも依存ライブラリがすくなく、軽量なデスクトップを使うユーザーにとって理想的な選択肢になるかもしれません。

    参照: Wicd

    Note: ドライバーによっては NetworkManager で問題なく動くものが、wicd では何度も切断することがあります。

    NetworkManager

    NetworkManager は高度なネットワーク管理ツールであり、人気のある GNU/Linux ディストーションのほとんどでデフォルトで有効にされています。有線接続の管理に加えて、NetworkManager は、GUI プログラムで利用したいネットワークを選択する、使いやすくて、心配のないワイヤレスローミングを提供します。

    参照: NetworkManager (日本語)

    Note: 最初に (AUR にある) xfce4-xfapplet-pluginAUR をインストールすれば、GNOME の network-manager-appletXfce でも動作させることができます。さらに、KDE で利用できるアップレットもあります。

    WiFi Radar

    WiFi Radar はワイヤレスプロファイルを管理する Python/PyGTK2 ユーティリティです(ワイヤレスだけをサポートしています)。利用できるネットワークのスキャンとネットワークのプロファイルの作成ができます。

    参照: Wifi Radar

    トラブルシューティング

    Rfkill によるブロック

    Many laptops have a hardware button (or switch) to turn off wireless card, however, the card can also be blocked by kernel. This can be handled by rfkill. Use rfkill to show the current status:

    # rfkill list
    0: phy0: Wireless LAN
    	Soft blocked: yes
    	Hard blocked: yes
    

    If the card is hard-blocked, use the hardware button (switch) to unblock it. If the card is not hard-blocked but soft-blocked, use the following command:

    # rfkill unblock wifi
    
    Note: It is possible that the card will go from hard-blocked and soft-unblocked state into hard-unblocked and soft-blocked state by pressing the hardware button (i.e. the soft-blocked bit is just switched no matter what). This can be adjusted by tuning some options of the rfkill kernel module.

    More info: http://askubuntu.com/questions/62166/siocsifflags-operation-not-possible-due-to-rf-kill

    規制範囲

    For example, the iwl3945 driver is by default configured to only work with networks on channels 1-11. Higher frequency bands are not allowed in some parts of the world (e.g. the US). In the EU however, channels 12 and 13 are used quite commonly (and Japan allows for channel 14). If the regulatory domain is set to e.g. US, then networks using higher channels will not show up in the scan.

    It is possible to configure the cfg80211 kernel module to use specific regulatory domain by adding e.g. options cfg80211 ieee80211_regdom=EU to /etc/modprobe.d/modprobe.conf (see Kernel modules for details).

    Tip: Check the Frequencies: block in the output of iw list to see which frequencies are allowed for your card.

    An alternative configuration would be installing the crda package and editing /etc/conf.d/wireless-regdom (the file is actually provided by wireless-regdb which is a dependency of crda).

    ログの取得

    トラブルシューティングで一番初めにするべきなのはシステムのログファイルを解析することです。全部を手でパースしないために、新しいターミナル(コンソール)を開いて、接続を試行している間のカーネルメッセージを次のコマンドで見ると良いでしょう:

    $ dmesg -w
    

    ネットワーク管理にツールを使っている場合、systemd でも同じことができます:

    # journalctl -f 
    

    この記事にあるそれぞれのツールは詳細なデバッグ出力をするオプションを用意しているので、必要ならば、解析の第二段階としてそれを使うことができます。

    省電力機能

    Power saving#Network interfaces を見て下さい。

    IP アドレスの取得に失敗する

    • デフォルトの dhcpcd クライアントでは IP アドレスの取得に何度も失敗する場合、代わりに dhclient をインストールして使用してみて下さい。あなたの使っている接続マネージャで DHCP クライアントとして dhclient を忘れずに選択してください。
    • 有線インターフェイスでは IP アドレスを取得できるのに、無線インターフェイスでは出来ない場合、ワイヤレスカードの省電力機能を無効にしてみてください:
    # iwconfig wlan0 power off
    
    • waiting for carrier の問題でタイムアウトエラーになる場合、特定のデバイスのチャンネルモードを auto に設定する必要があるかもしれません:
    # iwconfig wlan0 channel auto
    

    チャンネルを auto に変える前に、あなたのワイヤレスインターフェースが止まっていることを確認してください。変更が成功したら、インターフェースを立ち上げなおして次の手順に進んで下さい。

    接続がいつもタイムアウトになる

    The driver may suffer from a lot of tx excessive retries and invalid misc errors for some unknown reason, resulting in a lot of packet loss and keep disconnecting, sometimes instantly. Following tips might be helpful.

    レートを下げる

    Try setting lower rate, for example 5.5M:

    # iwconfig wlan0 rate 5.5M auto
    

    Fixed option should ensure that the driver does not change the rate on its own, thus making the connection a bit more stable:

    # iwconfig wlan0 rate 5.5M fixed
    

    txpower を下げる

    You can try lowering the transmit power as well. This may save power as well:

    # iwconfig wlan0 txpower 5
    

    Valid settings are from 0 to 20, auto and off.

    rts や fragmentationのしきい値を設定する

    Default iwconfig options have rts and fragmentation thresholds off. These options are particularly useful when there are many adjacent APs or in a noisy environment.

    The minimum value for fragmentation value is 256 and maximum is 2346. In many windows drivers the maximum is the default value:

    # iwconfig wlan0 frag 2346
    

    For rts minimum is 0, maximum is 2347. Once again windows drivers often use maximum as the default:

    # iwconfig wlan0 rts 2347
    

    ランダムに切断する

    原因 #1

    If dmesg says wlan0: deauthenticating from MAC by local choice (reason=3) and you lose your Wi-Fi connection, it is likely that you have a bit too aggressive power-saving on your Wi-Fi card[2]. Try disabling the wireless card's power-saving features:

    # iwconfig wlan0 power off
    

    See Power saving for tips on how to make it permanent (just specify off instead of on).

    If your card does not support iwconfig wlan0 power off, check the BIOS for power management options. Disabling PCI-Express power management in the BIOS of a Lenovo W520 resolved this issue.

    原因 #2

    If you are experiencing frequent disconnections and dmesg shows messages such as

    ieee80211 phy0: wlan0: No probe response from AP xx:xx:xx:xx:xx:xx after 500ms, disconnecting

    try changing the channel bandwidth to 20MHz through your router's settings page.

    原因 #3

    On some laptop models with hardware rfkill switches (e.g., Thinkpad X200 series), due to wear or bad design, the switch (or its connection to the mainboard) might become loose over time resulting in seemingly random hardblocks/disconnects when you accidentally touch the switch or move the laptop. There is no software solution to this, unless your switch is electrical and the BIOS offers the option to disable the switch. If your switch is mechanical (most are), there are lots of possible solutions, most of which aim to disable the switch: Soldering the contact point on the mainboard/wifi-card, glueing or blocking the switch, using a screw nut to tighten the switch or removing it altogether.

    ドライバとファームウェアのトラブルシューティング

    このセクションでは、一般的な方法とは異なる、特定のチップセットのカーネルモジュールとファームウェアをインストールする方法を説明します。

    モジュールの動作についての一般的な情報は Kernel modules (日本語) を見て下さい。

    Ralink

    rt2x00

    Ralink のチップセット用の統合ドライバー (rt2500, rt61, rt73 などを置き換えます)。このドライバーは Linux カーネル 2.6.24 から含まれており、チップに合わせて適切なモジュールをロードするだけで問題なく使うことができます: rt2400pci, rt2500pci, rt2500usb, rt61pci, rt73usbrt2x00 モジュールもそれぞれ自動でロードします。

    このモジュールでサポートされているデバイスの一覧はプロジェクトの ホームページ で見ることができます。

    追加情報
    • カーネル 3.0 から、rt2x00 は次のドライバーを含んでいます: rt2800pci, rt2870usb
    • カーネル 3.0 から、staging ドライバー rt2860start2870sta は mainline ドライバー rt2800pcirt2800usb によって置き換えられました[3]
    • デバイスによっては iwpriv を使って様々なオプションを設定することができます。これらのオプションについては Ralink から入手できる source tarballs にまとめられています。

    rt3090

    rt3090 を使っているデバイスには rt2800pci ドライバを使うことができますが、うまく動作しないことがあります (例えば、時々 2Mb/s 以上の速度が出なくなります)。

    AUR から rt3090-dkmsAUR ドライバを使うのが最適です。rt2800pci モジュールをブラックリスト化して、起動時に rt3090sta モジュールをロードするように設定します。

    Note: このドライバは rt3062 チップセットでも動作します。また、rt3090AUR パッケージは最新のカーネルではサポートされなくなったので代わりに rt3090-dkmsAUR を使って下さい。

    rt3290

    rt3290 チップセットはカーネルの rt2800pci モジュールによって認識されます。ただし、問題が起こることもあり、そのような場合はパッチがあてられた Ralink ドライバーに戻すと良いようです。

    rt3573

    2012年時点で新しいチップセットです。Ralink が提供している新しいプロプライエタリドライバが必要かもしれません。様々な製造会社がそれを使っています、Belkin N750 無線 USB アダプタのスレッドを見て下さい。

    rt5572

    5 Ghz 帯をサポートした2012年時点で新しいチップセットです。Ralink が提供している新しいプロプライエタリドライバをコンパイルする必要があるかもしれません。DLINK DWA-160 rev のためのコンパイル方法が書かれています。B2 here

    Realtek

    rtl8192cu

    このドライバーはカーネルに含まれていますが、多くのユーザーがネットワークのスキャンはできても接続が出来ないと報告しています。

    AUR にある dkms-8192cuAUR パッケージで改善するかもしれません。

    rtl8192e

    このドライバはカーネルパッケージの一部になっています。以下のエラーメッセージを表示してモジュールの初期化が失敗する場合があるかもしれません:

    rtl819xE:ERR in CPUcheck_firmware_ready()
    rtl819xE:ERR in init_firmware() step 2
    rtl819xE:ERR!!! _rtl8192_up(): initialization is failed!
    r8169 0000:03:00.0: eth0: link down
    

    回避方法は単純にモジュールをアンロードするだけです:

    # modprobe -r r8192e_pci
    

    そして (一定時間後) モジュールをリロードします:

    # modprobe r8192e_pci
    

    rtl8188eu

    TP-Link TL-WN725N v2 (rtl8179 チップセットを使用) などのドングルには、このドライバーと互換性のあるチップセットを使っているものがあります。ドングルを使うには AUR の dkms-8188euAUR パッケージをインストールしてください。

    Atheros

    MadWifi チーム によって、Atheros チップセットを使っているデバイス用に3つのモジュールがメンテナンスされています:

    • madwifi は古い、旧式のドライバーです。2.6.39.1 から Arch のカーネルには含まれていません[4]
    • ath5k は新しいドライバーで madwifi ドライバーを置き換えます。現在、チップセットによってはベターな選択肢ですが、全てのチップセットがサポートされているわけではありません(下を見て下さい)。
    • ath9k は3つのドライバーの中で最新のドライバーで、新しい Atheros チップセットに対応しています。802.11n 対応のチップは全てサポートしています。

    Atheros デバイス向けに他にも複数のドライバーが存在します。詳しくは Linux Wireless documentation を見て下さい。

    ath5k

    参照:

    ウェブページのロードがランダムで極端に遅くなったり、デバイスが IP アドレスを取得できなくなったら、ath5k モジュールに nohwcrypt=1 オプションを付けてロードして暗号化をハードウェアからソフトウェアに切り替えてください。詳しくは Kernel modules (日本語)#設定 を見て下さい。

    ラップトップによっては無線 LED インディケータが赤と青に点滅する問題が発生することがあります。この問題を解決するには、以下を実行して下さい:

    # echo none > /sys/class/leds/ath5k-phy0::tx/trigger
    # echo none > /sys/class/leds/ath5k-phy0::rx/trigger
    

    もしくは このバグレポート を見て下さい。

    ath9k

    参照:

    不安定になる場合、compat-wireless パッケージを使ってみることができます。 サポートや開発などの議論をする ath9k mailing list が存在します。

    ASUS

    ASUS のノートパソコンでは (ASUS U32U シリーズでテスト)、/etc/modprobe.d/asus_nb_wmi.confoptions asus_nb_wmi wapf=1 を追加すると rfkill に関連する問題が解決するかもしれません。

    Intel

    ipw2100 と ipw2200

    モジュールはカーネルによって完全にサポートされていますが、追加のファームウェアが必要になります。使うチップセットによって、ipw2100-fwipw2200-fwインストールしてください。そして適切なモジュールを再ロードしてください。

    Tip: 以下のモジュールオプションを使用できます:
    • rtap_iface=1 オプションを使うと radiotap インターフェイスが有効になります
    • led=1 オプションを使うと無線が接続・切断した時にフロントの LED が光るようになります

    iwlegacy

    iwlegacy は Intel の 3945, 4965 ワイヤレスチップのワイヤレスドライバーです。このファームウェアは linux-firmware パッケージに含まれています。

    udev が自動でドライバーをロードするはずですが、ロードしないときは手動で iwl3945iwl4965 をロードしてください。詳しくは Kernel modules (日本語)#ロード を見て下さい。

    iwlwifi

    iwlwifi は 5100AGN, 5300AGN, 5350AGN などの Intel の最新のワイヤレスチップのワイヤレスドライバーです。full list of supported devices を見て下さい。このファームウェアは linux-firmware パッケージに含まれています。

    接続品質が悪いといった一般的なネットワーク接続の問題が起こる場合は、802.11n を無効にしてソフトウェア暗号を有効にして見て下さい:

    /etc/modprobe.d/iwlwifi.conf
    options iwlwifi 11n_disable=1
    options iwlwifi swcrypto=1

    これで上手くいかない場合、無線アダプターの省電力モードを切ってみて下さい。永続的に設定するには、新しい udev ルールを追加します:

    /etc/udev/rules.d/80-iwlwifi.rules
    ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="<your_mac_address>", RUN+="/usr/bin/iw dev %k set power_save off"

    LED の点滅を無効化する

    Note: iwlegacyiwlwifi ドライバーで動作します。

    デフォルト設定ではモジュールの動作中 LED が点滅するようになっています。人によってはこれが鬱陶しく感じるかもしれません。Wi-Fi を使っている時に LED を固定するには、systemd-tmpfiles を使って下さい:

    /etc/tmpfiles.d/phy0-led.conf
    w /sys/class/leds/phy0-led/trigger - - - - phy0radio
    

    変更を適用するには、systemd-tmpfiles --create phy0-led.conf を実行するか再起動してください。

    LED のトリガの全ての設定値を見るには:

    # cat /sys/class/leds/phy0-led/trigger
    
    Tip: /sys/class/leds/phy0-led がない場合、led_mode="1" モジュールオプションを使ってみて下さい。

    Broadcom

    Broadcom wireless を見て下さい。

    他のドライバー・デバイス

    Tenda w322u

    この Tenda カードは rt2870sta デバイスとして扱って下さい。#rt2x00 を参照。

    orinoco

    カーネルパッケージの一部となっているので、別個インストールする必要はありません。

    いくつかの Orinoco チップセットは Hermes I/II です。orinoco_cs の代わりに wlags49_h1_cs を使うことで WPA サポートを得ることができます。このドライバーを使うには orinoco_csブラックリスト化して下さい。

    prism54

    このドライバー p54 はカーネルに含まれていますが、このサイト からあなたのカードに対応するファームウェアをダウンロードして /usr/lib/firmware ディレクトリにインストールする必要があります。

    Note: 古いドライバー prism54 が新しいドライバー (p54pcip54usb) と衝突することがあります。prism54ブラックリスト化して下さい。

    ACX100/111

    Warning: The drivers for these devices are broken and do not work with newer kernel versions.

    パッケージ: tiacx tiacx-firmware (公式リポジトリや AUR からは削除されました)

    詳しくは official wiki を見て下さい。

    zd1211rw

    zd1211rw は ZyDAS ZD1211 802.11b/g USB WLAN チップセット用のドライバで、最近の Linux カーネルに含まれています。サポートされているドライバの一覧は [5] を見て下さい。zd1211-firmware パッケージとして提供されているファームウェアをインストールすることだけが必要です。

    hostap_cs

    Host AP は Intersil の Prism2/2.5/3 チップセットを使ったワイヤレス LAN カードの Linux ドライバです。hostap_cslinux パッケージに含まれています。

    Note: orinico_cs と問題を発生することがあるので、ブラックリスト化してください。

    ndiswrapper

    Ndiswrapper は Linux で Windows のドライバーを使うためのラッパースクリプトです。互換リストは ここ を見て下さい。Windows のドライバーに含まれる *.inf.sys ファイルが必要です。ドライバがあなたのアーキテクチャ (例: 32/64 ビット) に適合しているかも確認してください。

    Tip: *.exe ファイルからこれらのファイルを展開する必要がある場合は、cabextract を使って下さい。

    ndiswrapper を設定するには以下の手順に従って下さい。

    1. ドライバを /etc/ndiswrapper/* にインストールします

    # ndiswrapper -i ファイル名.inf
    

    2. ndiswrapper にインストールされたドライバを全て一覧します

    $ ndiswrapper -l
    

    3. 以下の設定ファイルを書き出します

    /etc/modprobe.d/ndiswrapper.conf
    ndiswrapper -m
    depmod -a
    

    これで ndiswrapper のインストールはほぼ完了です; あとは Kernel modules (日本語)#ロード の指示に従って起動時に自動でモジュールをロードするようにしてください。

    重要なことは ndiswrapper が他のモジュールと一緒にロードされることです。ndiswrapper がロードされているかテストするには、次を実行してください:

    # modprobe ndiswrapper
    # iwconfig
    

    wlan0 が表示されるはずです。問題が起こった場合は次のページを見て下さい: Ndiswrapper installation wiki

    compat-drivers-patched

    Patched compat wireless ドライバは "fixed-channel -1" 問題を修正し、より良いインジェクションを提供します。AUR から compat-drivers-patchedAUR パッケージをインストールしてください。

    compat-drivers-patchedAUR は他のパッケージや /usr/lib/modules/your_kernel_version/updates に作られるモジュールと衝突しません。

    Linux Wireless project ではパッチ済みのドライバを提供しており多くのチップがサポートされています:

    ath5k ath9k_htc carl9170 b43 zd1211rw rt2x00 wl1251 wl12xx ath6kl brcm80211
    

    サポートされているグループ:

    atheros ath iwlagn rtl818x rtlwifi wl12xx atlxx bt
    

    PKGBUILD を編集することで特定のモジュール・ドライバやドライバグループをビルドすることも可能です。以下は atheros グループのビルドの例:

    scripts/driver-select atheros
    

    コンパイルやインストールの前に可能な他の修正についてはパッケージの PKGBUILD を読んで下さい。

    参照