ネットワーク設定/ワイヤレス
ネットワーク設定に関するメインの記事は ネットワーク設定 です。
ワイヤレスネットワークの設定は2段階で行います; まずワイヤレスデバイスを使うために正しいドライバがインストールされているか確認し(インストールメディア上では利用できても、明示的にインストールする必要があります)、インターフェースを設定します。次に、ワイヤレス接続を管理する方法を選びます。この記事では両方をカバーしています。また、ワイヤレス管理ツールへの追加リンクもあります。
#iw セクションでは iw を使ってワイヤレスネットワークインターフェイス/ワイヤレス LAN を手動で管理する方法を説明しています。ネットワーク設定#ネットワークマネージャ セクションでは、ワイヤレスインターフェイスを自動的に管理する際に使用できるいくつかのプログラムについて説明しています。それらはすべてネットワークプロファイルのサポートを含んでおり(ノート PC のようにワイヤレスネットワークを頻繁に切り替える際に便利です)、それらのうち一部は GUI を含んでいます。
目次
デバイスドライバ
デフォルトの Arch Linux カーネルはモジュール式です、つまりマシンに必要なドライバの多くはハードドライブに置かれ、モジュールとして利用されます。起動時に、udev がハードウェアの棚卸を実施します。Udev はハードウェアに必要である適切なモジュール(ドライバ)をロードし、次に、ドライバをロードしてカーネルインターフェースを作成します。
ワイヤレスチップセットによっては、適切なドライバーに加えて、ファームウェアも必要になります。ほとんどのファームウェアイメージはデフォルトでインストールされる linux-firmware パッケージに含まれていますが、プロプライエタリなファームウェアイメージは含まれていないため別にインストールする必要があります。#ドライバー・ファームウェアのインストールで説明されています。
ドライバーの状態を確認する
あなたのカードに合ったドライバーがロードされているか確認するには、カードを 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
また、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
カーネルモジュールが正しくロードされ、インターフェイスが立ち上がっている場合は、次のセクションを飛ばしてかまいません。
ドライバー・ファームウェアをインストールする
あなたのカードがサポートされているかどうか調べるために以下のリストを確認してください:
- 既存の Linux ワイヤレスドライバー表 から飛べる各ドライバーのページにはサポートしているデバイスのリストが載っています。Linux における Wi-Fi デバイスの ID リスト も存在します。
- Ubuntu Wiki にはワイヤレスカードの一覧と、Linux カーネル・ユーザースペースドライバによってサポートされているかの情報があります (ドライバ名含む)。
- Linux Wireless Support と Linux Questions の Hardware Compatibility List (HCL) にもカーネルで利用できるハードウェアのデータベースがあります。
あなたのワイヤレスカードが上記のリストにあった場合、このページの #ドライバとファームウェアのトラブルシューティング サブセクションを見て下さい、特定のワイヤレスカードのドライバーやファームウェアのインストール情報が載っています。インストールした後、またドライバーの状態を確認してください。
ワイヤレスハードウェアが上記のリストになかった場合、おそらくサポートしているのが Windows のみだと思われます (Broadcom, 3com, etc)。そういったカードについては、ndiswrapper を使う必要があります。詳しくは #ndiswrapper を見て下さい。
ユーティリティ
他のネットワークインターフェイスと同じように、ワイヤレスインターフェイスも iproute2 パッケージの ip でコントロールします。
ワイヤレス接続の管理には基本的なツール一式が必要です。ネットワークマネージャ を使うか、以下のうち1つを直接使ってください:
ソフトウェア | パッケージ | WEXT | nl80211 | WEP | WPA/WPA2 | Archiso [1] |
---|---|---|---|---|---|---|
wireless_tools1 | wireless_tools | Yes | No | Yes | No | Yes |
iw | iw | No | Yes | Yes | No | Yes |
wpa_supplicant | wpa_supplicant | Yes | Yes | No | Yes | Yes |
iwd | iwd | No | Yes | No | Yes | Yes |
- 非推奨
一部のカードは WEXT のみをサポートすることに注意してください。
iw と wireless_tools の比較
以下の表は iw と wireless_tools の比較可能なコマンドの概要です。さらなる例は iw replaces iwconfig を見てください。
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 | 16進数のキーを使って WEP で暗号化されたネットワークに接続。 |
iwconfig wlan0 essid your_essid key s:your_key | ASCII 文字のキーを使って WEP で暗号化されたネットワークに接続。 | |
iw dev wlan0 set power_save on | iwconfig wlan0 power on | 省電力機能を有効にする。 |
iw
このセクションに出てくる例ではあなたのワイヤレスデバイスを interface
、wifi のアクセスポイントを your_essid
と仮定しています。それぞれ適切な文字列に置き換えて下さい。
インターフェイス名の取得
ワイヤレスインターフェイスの名前を取得するには:
$ iw dev
インターフェイス名は "Interface" という単語のあとに出力されます。例えば、インターフェイス名は wlan0
が一般的です。
インターフェイスの状態の取得
リンクの状態を確認するには、次のコマンドを使ってください。
$ iw dev interface link
次のコマンドで tx/rx バイトの総量やシグナルの強さといった統計値をを取得することができます:
$ iw dev interface station dump
インターフェイスの有効化
カードによっては iw や wireless_tools を使う前にカーネルインターフェースをアクティブ化する必要があります:
# ip link set interface up
インターフェイスが立ち上がっているか確認するには、次のコマンドの出力を見て下さい:
$ ip link show interface
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 interface scan | less
チェックするべきポイント:
- SSID: ネットワークの名前。
- Signal: は dBm 単位でワイヤレスの信号強度を報告します(例: -100 から 0)。負の数が 0 に近づくほど、信号の品質が良いことを表します。良質なリンクや低品質なリンクで報告された強度を観察することで、それぞれの範囲を知ることができます。
- Security: 直接は報告されません、
capability
から始まる行を見て下さい。capability: ESS Privacy ShortSlotTime (0x0411)
のようにPrivacy
が含まれている場合、そのネットワークは保護されています。RSN
情報ブロックがある場合、そのネットワークは Robust Security Network プロトコル、別名 WPA2 によって保護されています。WPA
情報ブロックがある場合、そのネットワークは Wi-Fi Protected Access プロトコルによって保護されています。RSN
やWPA
ブロックには以下の情報が含まれていることがあります:- Group cipher: 値は TKIP, CCMP, その両方, もしくはその他。
- Pairwise ciphers: 値は TKIP, CCMP その両方, もしくはその他。Group cipher と同じ値である必要はありません。
- Authentication Suites: 値は PSK, 802.1x, もしくはその他。家庭用ルーターでは、一般的に PSK になるでしょう (つまりパスフレーズ)。大学などでは、ログインとパスワードが必要な 802.1x スイートになると思われます。利用するためにはどのキーマネージメント (例: EAP) とカプセル化 (例: PEAP) が使われているか知る必要があります。詳しくは Wikipedia:Authentication protocol と関連記事を見て下さい。
Privacy
があるのにRSN
やWPA
ブロックがない場合、WEP が使われています。
動作モードの設定
ワイヤレスカードの正しい動作モードを設定する必要があるかもしれません。具体的に言うと、アドホックネットワークに接続したい場合、動作モードを ibss
に設定する必要があります:
# iw dev interface set type ibss
アクセスポイントへの接続
暗号化方式によっては、使用するワイヤレスデバイスをアクセスポイントと関連付けて、暗号化キーを渡す必要があります:
- 暗号化なし
# iw dev interface connect "your_essid"
- WEP
- 16進数、または ASCII キーを使用する(WEP のキーは固定長なので、キーの形式は自動的に判別されます):
# iw dev interface connect "your_essid" key 0:your_key
- 16進数、または ASCII キーを使用し、3番目に設定したキーをデフォルトとして指定する(キーは 0 からカウントされます。4 つまで可能です):
# iw dev interface connect "your_essid" key d:2:your_key
- 16進数、または ASCII キーを使用する(WEP のキーは固定長なので、キーの形式は自動的に判別されます):
- その他
- iw は WEP のみを扱えます。他の暗号化スキームを使用して接続する場合、下記の #認証 を見てください。
どの方法を使用しても、正しく関連付けできたかどうかは以下で確認できます:
# iw dev interface link
認証
WPA2 Personal
WPA2 Personal, a.k.a. WPA2-PSK, is a mode of Wi-Fi Protected Access.
You can authenticate to WPA2 Personal networks using wpa_supplicant or iwd, or connect using a network manager. If you only authenticated to the network, then to have a fully functional connection you will still need to assign the IP address(es) and routes either manually or using a DHCP client.
WPA2 Enterprise
WPA2 Enterprise is a mode of Wi-Fi Protected Access. It provides better security and key management than WPA2 Personal, and supports other enterprise-type functionality, such as VLANs and NAP. However, it requires an external authentication server, called RADIUS server to handle the authentication of users. This is in contrast to Personal mode which does not require anything beyond the wireless router or access points (APs), and uses a single passphrase or password for all users.
The Enterprise mode enables users to log onto the Wi-Fi network with a username and password and/or a digital certificate. Since each user has a dynamic and unique encryption key, it also helps to prevent user-to-user snooping on the wireless network, and improves encryption strength.
This section describes the configuration of network clients to connect to a wireless access point with WPA2 Enterprise mode. See Software access point#RADIUS for information on setting up an access point itself.
For a comparison of protocols see the following table.
MS-CHAPv2
WPA2-Enterprise wireless networks demanding MSCHAPv2 type-2 authentication with PEAP sometimes require pptpclient in addition to the stock ppp package. netctl seems to work out of the box without ppp-mppe, however. In either case, usage of MSCHAPv2 is discouraged as it is highly vulnerable, although using another method is usually not an option.
eduroam
eduroam is an international roaming service for users in research, higher education and further education, based on WPA2 Enterprise.
Manual/automatic setup
- wpa_supplicant can be configured directly by its configuration file or using its CLI/GUI front ends and used in combination with a DHCP client. See the examples in
/usr/share/doc/wpa_supplicant/wpa_supplicant.conf
for configuring the connection details. - iwd#WPA Enterprise
- NetworkManager can create WPA2 Enterprise profiles with nmcli or the graphical front ends. nmtui does not support this (NetworkManager issue 376), but may use existing profiles.
- ConnMan needs a separate configuration file before connecting to the network. See connman-service.config(5) and ConnMan#Connecting to eduroam (802.1X) for details.
- netctl supports wpa_supplicant configuration through blocks included with
WPAConfigSection=
. See netctl.profile(5) for details.
WPA3 Personal
WPA3 Personal, a.k.a. WPA3-SAE, is a mode of Wi-Fi Protected Access.
wpa_supplicant supports WPA3 Personal (CONFIG_SAE
is enabled in wpa_supplicant since version 2:2.9-4).
iwd supports WPA3 since version 0.7.
ヒントとテクニック
規制範囲
The regulatory domain, or "regdomain", is used to reconfigure wireless drivers to make sure that wireless hardware usage complies with local laws set by the FCC, ETSI and other organizations. Regdomains use ISO 3166-1 alpha-2 country codes. For example, the regdomain of the United States would be "US", China would be "CN", etc.
Regdomains affect the availability of wireless channels. In the 2.4GHz band, the allowed channels are 1-11 for the US, 1-14 for Japan, and 1-13 for most of the rest of the world. In the 5GHz band, the rules for allowed channels are much more complex. In either case, consult this list of WLAN channels for more detailed information.
Regdomains also affect the limit on the effective isotropic radiated power (EIRP) from wireless devices. This is derived from transmit power/"tx power", and is measured in dBm/mBm (1dBm=100mBm) or mW (log scale). In the 2.4GHz band, the maximum is 30dBm in the US and Canada, 20dBm in most of Europe, and 20dBm-30dBm for the rest of the world. In the 5GHz band, maximums are usually lower. Consult the wireless-regdb for more detailed information (EIRP dBm values are in the second set of brackets for each line).
Misconfiguring the regdomain can be useful - for example, by allowing use of an unused channel when other channels are crowded, or by allowing an increase in tx power to widen transmitter range. However, this is not recommended as it could break local laws and cause interference with other radio devices.
The kernel loads the database directly when wireless-regdb is installed. For direct loading the kernel should, for security's sake, be configured with CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS
set to yes to allow for cryptographic verification of the database. This is true of the stock Arch kernel, but if you are using an alternate kernel, or compiling your own, you should verify this. More information is available at this guide.
To configure the regdomain, install wireless-regdb and reboot (to reload the cfg80211
module and all related drivers). Check the boot log to make sure that the database is loaded and key verified by cfg80211
:
# dmesg | grep cfg80211
The current regdomain can be set to the United States with:
# iw reg set US
And queried with:
$ iw reg get
However, setting the regdomain may not alter your settings. Some devices have a regdomain set in firmware/EEPROM, which dictates the limits of the device, meaning that setting regdomain in software can only increase restrictions, not decrease them. For example, a CN device could be set in software to the US regdomain, but because CN has an EIRP maximum of 20dBm, the device will not be able to transmit at the US maximum of 30dBm.
For example, to see if the regdomain is being set in firmware for an Atheros device:
# dmesg | grep ath:
For other chipsets, it may help to search for "EEPROM", "regdomain", or simply the name of the device driver.
To see if your regdomain change has been successful, and to query the number of available channels and their allowed transmit power:
$ iw list | grep -A 15 Frequencies:
A more permanent configuration of the regdomain can be achieved through editing /etc/conf.d/wireless-regdom
and uncommenting the appropriate domain.
wpa_supplicant can also use a regdomain in the country=
line of /etc/wpa_supplicant/wpa_supplicant.conf
.
It is also possible to configure the cfg80211 kernel module to use a specific regdomain by adding, for example, options cfg80211 ieee80211_regdom=JP
as module options. The module option is inherited from the old regulatory implementation and in modern kernels act as a userspace regulatory hint as if it came through nl80211
through utilities like iw
and wpa_supplicant
.
Rfkill の注意点
多くのノート PC にはワイヤレスカードの電源を切るハードウェアボタン/スイッチがあります。しかし、カードがカーネルによってブロックされている場合があります。これは rfkill によって操作できます。現在の状態を確認するには以下のコマンドを使用してください:
# rfkill list
0: phy0: Wireless LAN Soft blocked: yes Hard blocked: yes
カードが hard-blocked である場合、ハードウェアボタン/スイッチを使ってカードをアンロックできます。カードが hard-blocked でなく、soft-blocked である場合、以下のコマンドを使用してください:
# rfkill unblock wifi
ワイヤレスカードを切り替えるハードウェアボタンはベンダー固有のカーネルモジュールによって操作されます。これらは WMI モジュールであることが多いです。非常に新しいハードウェアモデルでは特に、最新の安定版カーネルでモデルが完全にサポートされていないことがあります。この場合、カーネルのバグトラッカーで情報を探し、まだ報告されていない場合は各ベンダーのカーネルモジュールのメンテナにモデルを報告することが役に立ちます。
[2] も参照してください。
省電力
電源管理#ネットワークインターフェイス を見てください。
トラブルシューティング
一時的にネットワークにアクセス
ハードウェアに問題があるときに、インターネットに接続してソフトウェアをダウンロードしたりフォーラムでヘルプを得たい場合、Android に内蔵されている機能を使って USB ケーブルでインターネット共有をすることができます。詳しくは Android テザリング#USB テザリングを見て下さい。
ログの取得
トラブルシューティングで一番初めにするべきなのはシステムのログファイルを解析することです。全部を手でパースしないために、新しいターミナル(コンソール)を開いて、接続を試行している間のカーネルメッセージを次のコマンドで見ると良いでしょう:
$ dmesg -w
ネットワーク管理にツールを使っている場合、systemd でも同じことができます:
# journalctl -f
この記事にあるそれぞれのツールは詳細なデバッグ出力をするオプションを用意しているので、必要ならば、解析の第二段階としてそれを使うことができます。
IP アドレスの取得に失敗する
- デフォルトの dhcpcd クライアントでは IP アドレスの取得に何度も失敗する場合、代わりに dhclient をインストールして使用してみて下さい。あなたの使っている接続マネージャで DHCP クライアントとして dhclient を忘れずに選択してください。
- 有線インターフェイスでは IP アドレスを取得できるのに、無線インターフェイスでは出来ない場合、ワイヤレスカードの省電力機能を無効にしてみてください:
# iwconfig wlan0 power off
- waiting for carrier の問題でタイムアウトエラーになる場合、特定のデバイスのチャンネルモードを
auto
に設定する必要があるかもしれません:
# iwconfig wlan0 channel auto
チャンネルを auto に変える前に、あなたのワイヤレスインターフェースが止まっていることを確認してください。変更が成功したら、インターフェースを立ち上げなおして次の手順に進んで下さい。
IP アドレスは取得できるのにホスト解決ができない
公共の無線ネットワークを使っている場合 Captive Portal が存在することがあります。その場合、resolv.conf からカスタム DNS サーバーを削除する必要があります。
接続がいつもタイムアウトになる
何らかの理由で tx excessive retries や invalid misc などのエラーが大量に発生すると、パケットをロスしたり接続が切れたりすることがあります。以下のヒントが役に立つかもしれません。
レートを下げる
低いレートに設定してみてください (例: 5.5M):
# iwconfig wlan0 rate 5.5M auto
fixed オプションを使うことでドライバーによってレートが変わらないようにすることができ、接続が少しだけ安定します:
# iwconfig wlan0 rate 5.5M fixed
txpower を下げる
出力も同じように下げることができます。出力を下げると電力も節約できます:
# iwconfig wlan0 txpower 5
利用できる設定は 0
から 20
までと auto
または off
です。
RTS や fragmentation のしきい値を設定する
無線ハードウェアはデフォルトでは RTS と fragmentation を無効化しています。帯域幅を犠牲にスループットを高める方法は2つ存在します。近隣にアクセスポイントが多く存在する環境で、干渉によってタイムアウトが発生したり接続が途切れる場合、設定によって改善する可能性があります。
パケットの断片化は fragmentation の閾値を越えたパケットを分割してスループットを改善します。最大値 (2346) にするとパケットが超過することはなくなるため断片化を無効化にするのと同義です。最低値 (256) にするとスループットは最大になりますが、かなり帯域幅を消費します。設定するには:
# iw phy0 set frag 512
RTS は RTS の閾値を越えるパケットを送信する前にアクセスポイントとハンドシェイクを実行することでスループットを改善します。最大値 (2347) にするとパケットが超過しなくなり RTS を無効化するのと同じになります。最低値 (0) では全てのパケットで RTS が有効になりますが、大抵の場合は無駄になります。
# iw phy0 set rts 500
ランダムに切断する
原因 #1
dmesg に wlan0: deauthenticating from MAC by local choice (reason=3)
と表示され Wi-Fi 接続が失われる場合は、おそらく Wi-Fi カードの省電力機能がアグレッシブすぎるのが原因です [3]。無線カードの省電力機能を無効化してみてください:
# iwconfig wlan0 power off
この設定を永続化する方法は省電力設定を見て下さい (on
の代わりに off
を指定)。
あなたのカードが iwconfig wlan0 power off
をサポートしていない場合は、BIOS の電源管理のオプションを確認してください。Lenovo W520 では BIOS にある PCI-Express の電源管理を無効化すると問題が解決します。
原因 #2
頻繁に切断が発生し、dmesg で以下のようなメッセージが表示される場合:
ieee80211 phy0: wlan0: No probe response from AP xx:xx:xx:xx:xx:xx after 500ms, disconnecting
ルーターの設定でチャンネルの帯域を 20MHz
に変更してみてください。
原因 #3
ノートパソコン (例: Thinkpad X200 シリーズ) に rfkill のハードウェアスイッチが付いている場合、スイッチの経年劣化や設計不良により、スイッチ (またはメインボードへの接続) がゆるくなってしまっている可能性があります。結果として、スイッチに触れたり、ノートパソコンをちょっと動かすだけで、ハードウェアによる無線のブロックが発生して、インターネットから切断されているのかもしれません。このような問題に対するソフトウェアによる解決方法は存在しません。電気仕掛けのスイッチなら、BIOS にスイッチを無効化するオプションが存在することがあります。機械式のスイッチの場合 (ほとんどのスイッチはそうです)、スイッチを壊してしまうというのが解決法になります: メインボードや wifi カードとの接触点をハンダ付けする、スイッチを糊で固める、塞ぐ、またはスクリューナットを使ってスイッチを固く締める、取り除いてしまう。
原因 #4
頻繁に切断したり接続が成功しない他の原因として、ルーターが仕様に合わない挙動をする、ルーターの設定が誤っている、他の無線デバイスによる干渉、などが考えられます。
トラブルシューティングするには、まず認証なしでルーターに接続できないか試して下さい。
それで動作する場合、WPA/WPA2 を再度有効にして、ルーターの設定を変更してみてください。例えば:
- ルーターが(クライアントで使っている)無線デバイスと比べて相当に旧式である場合、ルーターを別のワイヤレスモードに設定して動作するかテストする
- mixed-mode 認証を無効化 (例: WPA2 と AES、またはルーターが古い場合 TKIP)
- "auto" チャンネル以外のチャンネルを使ってみる (隣家のルーターが古くて干渉している可能性があります)
- WPS を無効化
40Mhz
周波数帯を無効化 (スループットは悪くなりますが衝突は起きにくくなります)- ルーターにサービス品質に関する設定がある場合、設定が完全であることを確認 (例: Wi-Fi Multimedia (WMM) は任意の QoS フロー制御の一部です。問題のあるルーターファームウェアは設定が有効になっていない場合も有効であるかのように見せかけてくることがあります)
規制範囲が間違っているために Wi-Fi ネットワークが認識されない
コンピュータの Wi-Fi チャンネルがユーザーの居住国の規制範囲に一致していない場合、Wi-Fi ネットワークが認識されないことがあります。#規制範囲を参照して設定を行ってください。
ドライバとファームウェアのトラブルシューティング
このセクションでは、一般的な方法とは異なる、特定のチップセットのカーネルモジュールとファームウェアをインストールする方法を説明します。
モジュールの動作についての一般的な情報はカーネルモジュールを見て下さい。
Ralink/Mediatek
rt2x00
Ralink のチップセット用の統合ドライバー (rt2500
, rt61
, rt73
などを置き換えます)。このドライバーは Linux カーネル 2.6.24 から含まれており、チップに合わせて適切なモジュールをロードするだけで問題なく使うことができます: rt2400pci
, rt2500pci
, rt2500usb
, rt61pci
, rt73usb
は rt2x00
モジュールもそれぞれ自動でロードします。
このモジュールでサポートされているデバイスの一覧はプロジェクトの ホームページ で見ることができます。
- 追加情報
- カーネル 3.0 から、rt2x00 は次のドライバーを含んでいます:
rt2800pci
,rt2870usb
。 - カーネル 3.0 から、staging ドライバー
rt2860sta
とrt2870sta
は mainline ドライバーrt2800pci
とrt2800usb
によって置き換えられました[4]。 - デバイスによっては
iwpriv
を使って様々なオプションを設定することができます。これらのオプションについては Ralink から入手できる source tarballs にまとめられています。
rt3090
rt3090 を使っているデバイスには rt2800pci
ドライバを使うことができますが、うまく動作しないことがあります (例えば、時々 2Mb/s 以上の速度が出なくなります)。
rt3290
rt3290 チップセットはカーネルの rt2800pci
モジュールによって認識されます。ただし、問題が起こることもあり、そのような場合はパッチがあてられた Ralink ドライバーに戻すと良いようです。
rt3573
2012年時点で新しいチップセットです。Ralink が提供している新しいプロプライエタリドライバが必要かもしれません。様々な製造会社がそれを使っています、Belkin N750 無線 USB アダプタのスレッドを見て下さい。
rt5572
5 Ghz 帯をサポートした2012年時点で新しいチップセットです。Ralink が提供している新しいプロプライエタリドライバをコンパイルする必要があるかもしれません。DLINK DWA-160 rev のためのコンパイル方法が書かれています。B2 here。
mt7612u
新しい商号 Mediatek でリリースされている最新のチップセットです。AC1200 または AC1300 チップセットになります。サポートページ で Linux 用のドライバーがメーカーから公開されています。
Realtek
rtl8192cu
このドライバーはカーネルに含まれていますが、多くのユーザーがネットワークのスキャンはできても接続が出来ないと報告しています。
問題が起こる場合は 8192cu-dkmsAUR パッケージで改善するかもしれません。
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 の 8188eu-dkmsAUR パッケージをインストールしてください。
rtl8723ae/rtl8723be
Linux カーネルのバージョン 3.6 から新しい rtl8723ae
モジュールが含まれるようになりました。同 3.15 から rtl8723be
モジュールが追加されています。
このカードの省電力機能についてエラーが発生することがあります。症状としては、ときどき上位のネットワークマネージャ (netctl, NetworkManager) で認識されなくなり切断されます。このエラーは dmesg -w
や journalctl -f
を実行して省電力機能や rtl8723ae
/rtl8723be
モジュールに関連するメッセージを探すことで確認できます。この問題を解決するには、fwlps=0
カーネルオプションを使って、WiFi カードが自動的にスリープ状態にならないようにしてください:
/etc/modprobe.d/rtl8723ae.conf
options rtl8723ae fwlps=0
または:
/etc/modprobe.d/rtl8723be.conf
options rtl8723be fwlps=0
信号が弱い場合、デバイスにアンテナがひとつしか接続されておらず自動モードが機能していない可能性があります。ant_sel=1
や ant_sel=2
カーネルオプションでアンテナを強制的に設定することができます [5]。
rtl88xxau
Realtek の rtl8811au/rtl8812au/rtl8814au/rtl8821au チップセットは AC600 から AC1900 までの様々な USB アダプタ用に設計されています。
以下のパッケージでカーネルドライバーをインストールできます:
チップセット | ドライバーのバージョン | AUR パッケージ | ノート |
---|---|---|---|
rtl8812au | 5.2.9.3 | rtl8812au-dkms-gitAUR | rtl8812au 専用の最新版のドライバー |
rtl8811au, rtl8812au, rtl8821au | 5.1.5 | rtl8821au-dkms-gitAUR | rtl8812au については最新版を使うことを推奨します。 |
rtl8814au | 4.3.21 | rtl8814au-dkms-gitAUR | rtl8813au でも動作する可能性があります。 |
上記のパッケージを使うには DKMS が必要です。適切なカーネルヘッダーをインストールしてください。
rtl8822bu
rtl8822bu-dkms-gitAUR には Edimax EW7822ULC USB3 や Asus AC53 Nano USB 802.11ac アダプタに搭載されている Realtek 8822bu チップセットを使うためのカーネルモジュールが入っています。
パッケージをインストールするには DKMS が必要です。適当なカーネルヘッダーをインストールしてください。
rtl8xxxu
サードパーティ製のモジュールをコンパイルすることでメインラインカーネルの rtl8xxxu
モジュールの問題を解決できる場合があります。ソースコードは GitHub リポジトリ に存在します。
一部のドライバーは AUR の rtl8723bu-gitAUR[リンク切れ: パッケージが存在しません] や rtl8723bu-git-dkmsAUR パッケージなどでインストールできます。
Atheros
MadWifi チーム によって、Atheros チップセットを使っているデバイス用に3つのモジュールがメンテナンスされています:
madwifi
は古い、旧式のドライバーです。2.6.39.1 から Arch のカーネルには含まれていません[6]。ath5k
は新しいドライバーでmadwifi
ドライバーを置き換えます。現在、チップセットによってはベターな選択肢ですが、全てのチップセットがサポートされているわけではありません(下を見て下さい)。ath9k
は3つのドライバーの中で最新のドライバーで、新しい Atheros チップセットに対応しています。802.11n 対応のチップは全てサポートしています。
Atheros デバイス向けに他にも複数のドライバーが存在します。詳しくは Linux Wireless ドキュメント を見て下さい。
ath5k
参照:
ウェブページのロードがランダムで極端に遅くなったり、デバイスが IP アドレスを取得できなくなったら、ath5k
モジュールに nohwcrypt=1
オプションを付けてロードして暗号化をハードウェアからソフトウェアに切り替えてください。詳しくはカーネルモジュール#設定を見て下さい。
ラップトップによっては無線 LED インディケータが赤と青に点滅する問題が発生することがあります。この問題を解決するには、以下を実行して下さい:
# echo none > /sys/class/leds/ath5k-phy0::tx/trigger # echo none > /sys/class/leds/ath5k-phy0::rx/trigger
もしくは このバグレポート を見て下さい。
ath9k
参照:
Linux 3.15.1 現在、一部のユーザーが帯域幅が減少することを報告しています。/etc/modprobe.d/ath9k.conf
を編集して以下の行を追加することで問題が解決することがあります:
options ath9k nohwcrypt=1
安定性に問題が起こる場合、backports-patchedAUR パッケージを試してみることもできます。サポートと開発のための ath9k メーリングリスト が存在します。
省電力機能
Linux Wireless には AR9280 よりも新しい Atheros 製の ath9k シングルチップでは動的な省電力機能が有効になると書かれていますが、一部のデバイス (例: AR9285) では powertop を使って確認すると省電力機能が無効になっていることがわかります。そのような場合、手動で有効にしてください。
ただし一部のデバイス (例: AR9285) では省電力機能を有効にすると以下のようなエラーが発生します:
# iw dev wlan0 set power_save on
command failed: Operation not supported (-95)
ath9k
モジュールの ps_enable=1
オプションを設定することでエラーは解決できます:
/etc/modprobe.d/ath9k.conf
options ath9k ps_enable=1
ASUS
ASUS のノートパソコンでは (ASUS U32U シリーズでテスト)、/etc/modprobe.d/asus_nb_wmi.conf
に options asus_nb_wmi wapf=1
を追加すると rfkill に関連する問題が解決するかもしれません。
Intel
ipw2100 と ipw2200
モジュールはカーネルによって完全にサポートされていますが、追加のファームウェアが必要になります。使うチップセットによって、ipw2100-fw か ipw2200-fw をインストールしてください。そして適切なモジュールを再ロードしてください。
iwlegacy
iwlegacy は Intel の 3945, 4965 ワイヤレスチップのワイヤレスドライバーです。このファームウェアは linux-firmware パッケージに含まれています。
udev が自動でドライバーをロードするはずですが、ロードされないときは手動で iwl3945
か iwl4965
をロードしてください。詳しくはカーネルモジュール#ロードを見てください。
信号品質が極端に悪い場合やネットワークに接続できない場合、802.11n を無効化してみてください:
/etc/modprobe.d/iwl4965.conf
options iwl4965 11n_disable=1
iwlwifi
iwlwifi は 5100AGN, 5300AGN, 5350AGN などの Intel の最新のワイヤレスチップのワイヤレスドライバーです。full list of supported devices を見て下さい。このファームウェアは linux-firmware パッケージに含まれています。linux-firmware-iwlwifi-gitAUR パッケージをインストールすることで新しいバージョンを使用することができます。
接続品質が悪いといった一般的なネットワーク接続の問題が起こる場合は、802.11n を無効にしてソフトウェア暗号を有効にしてみて下さい:
/etc/modprobe.d/iwlwifi.conf
options iwlwifi 11n_disable=1 swcrypto=1
802.11n モードでアップリンクの速度が遅い (例: 20Mbps) 場合は、アンテナのアグリゲーションを有効化してみてください:
/etc/modprobe.d/iwlwifi.conf
options iwlwifi 11n_disable=8
オプションの名前に惑わされてはいけません。値が 8
に設定されている場合、無効化ではなくアンテナのアグリゲーションが再有効化されます [7] [8]。
これで上手くいかない場合、無線アダプターの省電力モードを切ってみて下さい。永続的に設定するには、新しい 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"
Bluetooth の共存
Bluetooth ヘッドセットを接続できない場合やダウンロード速度があまり出ない場合、Bluetooth の共存を無効化してみてください [9]:
/etc/modprobe.d/iwlwifi.conf
options iwlwifi bt_coex_active=0
LED の点滅を無効化する
デフォルト設定ではモジュールの動作中 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
Broadcom
Broadcom ワイヤレスを見て下さい。
他のドライバー・デバイス
Tenda w322u
この Tenda カードは rt2870sta
デバイスとして扱って下さい。#rt2x00 を参照。
orinoco
カーネルパッケージの一部となっているので、別個インストールする必要はありません。
いくつかの Orinoco チップセットは Hermes I/II です。orinoco_cs
の代わりに wlags49_h1_cs
を使うことで WPA サポートを得ることができます。このドライバーを使うには orinoco_cs
をブラックリスト化して下さい。
prism54
このドライバー p54
はカーネルに含まれていますが、このサイト からあなたのカードに対応するファームウェアをダウンロードして /usr/lib/firmware
ディレクトリにインストールする必要があります。
ACX100/111
パッケージ: tiacx
tiacx-firmware
(公式リポジトリや AUR からは削除されました)
詳しくは 公式 wiki を見て下さい。
zd1211rw
zd1211rw
は ZyDAS ZD1211 802.11b/g USB WLAN チップセット用のドライバで、最近の Linux カーネルに含まれています。サポートされているドライバの一覧は [10] を見て下さい。zd1211-firmwareAUR パッケージとして提供されているファームウェアをインストールすることだけが必要です。
hostap_cs
Host AP は Intersil の Prism2/2.5/3 チップセットを使ったワイヤレス LAN カードの Linux ドライバです。hostap_cs
は linux
パッケージに含まれています。
ndiswrapper
Ndiswrapper は Linux で Windows のドライバーを使うためのラッパースクリプトです。互換リストは ここ を見て下さい。Windows のドライバーに含まれる *.inf
と .sys
ファイルが必要です。ドライバがあなたのアーキテクチャ (例: 32/64 ビット) に適合しているかも確認してください。
ndiswrapper を設定するには ndiswrapper-dkms をインストールしてから以下の手順に従って下さい。
1. ドライバを /etc/ndiswrapper/*
にインストールします
# ndiswrapper -i ファイル名.inf
2. ndiswrapper にインストールされたドライバを全て一覧します
$ ndiswrapper -l
3. 以下の設定ファイルを書き出します
/etc/modprobe.d/ndiswrapper.conf
ndiswrapper -m depmod -a
これで ndiswrapper のインストールはほぼ完了です; あとはカーネルモジュール#ロードの指示に従って起動時に自動でモジュールをロードするようにしてください。
重要なことは ndiswrapper が他のモジュールと一緒にロードされることです。ndiswrapper がロードされているかテストするには、次を実行してください:
# modprobe ndiswrapper # iwconfig
wlan0 が表示されるはずです。問題が起こった場合は次のページを見て下さい: Ndiswrapper installation wiki。
backports-patched
backports-patchedAUR は新しいカーネルのドライバーは旧カーネルで使えるようにバックポートしたパッケージです。プロジェクトは2007年から開始され最初は compat-wireless という名前で、次に compat-drivers となり、最近になって backports になりました。
古いカーネルを使っていて無線が繋がらない場合、このパッケージをインストールすることで問題が解決する場合があります。