This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Wifi
この記事では、無線LANネットワークデバイスのセットアップについて説明します。
インストール中のWifiの使用
Gentooのインストール中にwifi接続が必要な場合には、 Gentoo minimal install CD では限られた数のドライバーしか使えないことや、 WPA/WPA2/Enterprise 接続の設定方法として wpa_cliのみが提供されている(wpa_guiは提供されない)ことに注意してください。
minimal install CD に必要なドライバーが含まれていなかったり、あるいは wpa_supplicant のグラフィカルフロントエンドをお望みの場合は、 System Rescue CD のような別のライブCDを選択してください。Gentoo 以外のライブCDを利用する場合には、いくつかの特別な手順が必要になるかもしれないことに留意してください。
ハードウェアの検出
まずwifiコントローラーを検出します。この作業には、 lspci や lsusbといったコマンドラインツールが利用できます。
起動した Linux (LiveCD/USB) でwifi接続が作成された場合:
root #
lspci -k
ドライバーは Kernel driver in use:
から始まる行で識別できます。
起動したシステムがwifi接続を作成しない場合、現在のシステムからハードウェアIDの完全な一覧を取得します。このリストは、後で適切なドライバーを識別するために使用できます:
root #
lspci -n
コマンドが生成した PCIID のリストをコピーし、 http://kmuto.jp/debian/hcl/ にペーストします。
USBデバイスについても、似たようなアプローチをとることができます。最初にシステムで見つかったUSBデバイスのリストを取得します:
user $
lsusb
このコマンドは、システムに接続されたすべてのUSBデバイスの PCI ID、メーカー、型式、モデル、そしてチップセットのリストを生成します。これらのうち、チップセットがおそらくもっとも有用な情報です。しばしば、linuxwireless.org <チップセット>とウェブ検索するのが、USB NIC のドライバーやファームウェアの名前を知るためのもっとも手っ取り早い方法です。
代わりに、必要な情報を取得するために lshw を使用することもできます。
root #
lshw | grep -i driver
このコマンドは、デバイスがPCIベースかUSBベースかに関わらず、すべてのドライバーのリストを生成します。
カーネル
ドライバーが識別できたら、Linux カーネルの設定をしましょう。
IEEE 802.11
少なくとも cfg80211 と mac80211 を有功にしてください。いくつかのワイヤレスドライバーについては rate control algorithm も必要です。
[*] Networking support ---> [*] Wireless ---> <*> cfg80211 - wireless configuration API [ ] nl80211 testmode command [ ] enable developer warnings [ ] cfg80211 regulatory debugging [ ] cfg80211 certification onus [*] enable powersave by default [ ] cfg80211 DebugFS entries [ ] use statically compiled regulatory rules database [ ] cfg80211 wireless extensions compatibility <*> Generic IEEE 802.11 Networking Stack (mac80211) [*] Minstrel [*] Minstrel 802.11n support [ ] Minstrel 802.11ac support Default rate control algorithm (Minstrel) ---> [ ] Enable mac80211 mesh networking (pre-802.11s) support -*- Enable LED triggers [ ] Export mac80211 internals in DebugFS [ ] Trace all mac80211 debug messages [ ] Select mac80211 debugging features ----
Minstrel とその 802.11n サポートはrate control algorithmの1つです。
WEXT
WEXT として知られる "cfg80211 wireless extensions compatibility" オプションは、古い wireless-tools および iwconfig をサポートします。
[*] Networking support ---> [*] Wireless ---> [*] cfg80211 wireless extensions compatibility
デバイスドライバー
次に、先ほど調べたハードウェアやドライバーをもとに、該当するカーネルオプションを有功にする必要があります。おすすめの方法は、ドライバーをモジュールとしてビルドすることです。また、ワイヤレスネットワークで WPA や WPA2 暗号化を使用する場合には AES 暗号のサポートを必ず有功にしてください。
'"`UNIQ--pre-00000005-QINU`"'
ドライバーをモジュールとして(
<M>
)ではなくカーネル内にビルドする(<*>
)場合には、ファームウェアも同様にカーネル内にビルドする必要があります。
設定を変更した後は、カーネルを再構築するのを忘れないようにしましょう。
LED サポート
異なるパケット受信/送信イベントのための LED トリガーを有効にするには、以下のオプションでカーネルをコンパイルします:
'"`UNIQ--pre-00000008-QINU`"'
ファームウェア
カーネルドライバーに加えて、いくつかのチップセットについてはファームウェアも必要です。必要なら、以下のリストから見つけてインストールしてください:
root #
emerge --ask sys-kernel/linux-firmware
Wifi デバイス | ドライバー | ファームウェア | 備考 |
---|---|---|---|
Atheros AR9271 & AR7010 | ath9k_htc | sys-kernel/linux-firmware | |
Broadcom 43xx wireless support | b43 / b43legacy | sys-firmware/b43-firmware | Aircrack-ng 対応、あなたの bcm43xx デバイスがサポートされているならこれがおそらく最良の選択です |
Broadcom PCIe and SDIO/USB devices | brcmsmac / brcmfmac | sys-kernel/linux-firmware | 省電力機能、LED サポート、およびその他の機能には非対応 |
Broadcom 43xx wireless support | wl | net-wireless/broadcom-sta | プロプライエタリ、AP や Monitor モードは非対応、bcm43xx ドライバーの比較 |
Intel PRO/Wireless 2200BG | ipw2200 | sys-firmware/ipw2200-firmware | |
Intel PRO/Wireless 3945ABG/BG | iwlegacy | sys-kernel/linux-firmware | |
Intel Wireless WiFi 4965AGN | iwl4965 | sys-kernel/linux-firmware | |
All other Intel Wireless devices | iwlwifi | sys-kernel/linux-firmware | 詳細な手順については iwlwifi の記事を参照してください。 |
Qualcomm Atheros QCA6174 | ath10k_pci | ath10k-firmware | Qualcomm_Atheros_QCA6174#Firmware を参照 |
Ralink/MediaTek USB devices | e.g. rt2800usb | sys-kernel/linux-firmware | |
Realtek RTL8191SE & RTL8192SE | rtl8192se | sys-kernel/linux-firmware | |
Realtek 8723AU/8723BU/8191EU/8192EU/8188EU/8188RU | rtl8xxxu | sys-kernel/linux-firmware | すべてのデバイスを見るには、 CONFIG_RTL8XXXU_UNTESTED カーネルオプションが必要かもしれません。デフォルトではカーネル開発者によって検証されたもののみが有効化されています。 |
ドライバーがファームウェアを要求しているのにリストに載っていない場合、手動でファームウェアをダウンロードして /lib/firmware に置く必要があります。
ネットワークデバイス名
起動時にカーネルが作成する eth0
や eth1
のようなネットワークデバイス名(dmesg 参照)は、/lib/udev/rules.d/80-net-name-slot.rules での udev ルールを用いて変更可能です。
旧来の命名ルールを維持するには、/etc/udev/rules.d ディレクトリ内に、同じ名称のファイルを空で作成することで上書きします:
root #
touch /etc/udev/rules.d/80-net-name-slot.rules
WPA supplicant
無線ネットワークがWPAまたはWPA2で設定されている場合には、wpa_supplicantを使う必要があります。Gentoo Linuxでの無線ネットワーク設定のさらなる情報については、Gentooハンドブックの無線ネットワークの章を読んでください。
テスト
新しいカーネルで再起動するかモジュールを読み込んだ後で、以下の方法を使ってデバイスが利用可能かテストできます:
- /sys ファイルシステムを使用する
- ip コマンドを使用する
- ifconfig コマンドを使用する
- iw コマンドを使用する
/sys ファイルシステム
/sys/class/net ディレクトリの内容を ls -al や(app-text/tree パッケージに入っている)tree コマンドで一覧表示させます:
user $
tree /sys/class/net
/sys/class/net/ ├── enp2s14 -> ../../devices/pci0000:00/0000:00:1e.0/0000:02:0e.0/net/enp2s14 ├── lo -> ../../devices/virtual/net/lo ├── sit0 -> ../../devices/virtual/net/sit0 └── wlp8s0 -> ../../devices/pci0000:00/0000:00:1c.0/0000:08:00.0/net/wlp8s0
ip コマンド
デバイス名を取得したりワイヤレスカードが認識されているか検証するには、以下の ip コマンドを実行します:
user $
ip addr
3: wlan0: ...
ifconfig コマンド
ifconfig コマンドは sys-apps/net-tools パッケージを通じて提供されています。まだ有効化されていないものやアクティブになっていないものも含め、認識されているすべてのネットワークカードのリストを表示するには ifconfig -a を使用してください:
user $
ifconfig -a
wlan0 ...
以下のようにして、ネットワークカードをアクティブにできます:
root #
ifconfig -v wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill WARNING: at least one error occurred. (-1)
この例では、(通常はベイの電力消費を抑え、また偶然ワイヤレスネットワークに接続してしまわないようにする目的で) radio frequency kill state がセットされているため、ワイヤレスカードの有効化は失敗しています。
iw コマンド
ワイヤレスネットワークカードのドライバーが nl80211 スタックをサポートしていれば、 net-wireless/iw パッケージで提供される iw コマンドで、認識されているワイヤレスカードを表示できます:
root #
iw dev
phy#0 Interface wlan0 ifindex 4 type managed
dmesg
dmesg の出力をチェックしてください。
user $
dmesg | grep -i -E 'xx:xx.x|wlan|iwl|80211'
xx:xx.x
をlspciで得られたID(PCIID)に、wlan
をネットワークインターフェース名に、iwl
をKernel driver in use
に、
必ず置き換えてください。
トラブルシューティング
- Forum thread: wireless lan can't get ip from access point では、間違ったIPアドレスである 169.254.x.x (リンクローカルアドレス)について説明されています。
- Forum thread: iwlwifi fails to load after upgrade to 3.17.0
- Forum thread: Where is my network !?
さらなる情報
- Handbook:AMD64/Networking/Wireless
- AC1200 Wireless Adapters
- iproute2
- iwlwifi
- Qualcomm Atheros QCA6174
外部の情報
- ArchLinuxにおける ワイヤレスネットワーク設定