wpa_supplicant
が機能する前に、ネットワークインターフェイスが利用可能であり、デバイスのドライバーがロードされている必要があります。 wpa_supplicant
では、「-D」フラグを使用してドライバーを指定できます。私はいくつかのシステムでこれを試しましたが、wpa_supplicant
は指定したドライバを受け入れないようです。例えば:
T42 ~ # lspci -v -s 02:02.0
02:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
Subsystem: Intel Corporation Device 1011
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at c0214000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2
Kernel driver in use: ipw2200
Kernel modules: ipw2200
T42 ~ # wpa_supplicant -D ipw2200 -i eth1 -c /root/wpafile
Unsupported driver 'ipw2200'.
T42 ~ #
ただし、wpa_supplicant
のようにドライバーを指定せずにwpa_supplicant -i eth1 -c /root/wpafile
を起動すると、問題なく動作します。これはなぜですか?さらに、その場合、wpa_supplicant
?のドライバーを指定する必要があります。
カーネルドライバーとユーザースペースドライバーが混乱しています。あなたの場合、あなたは確かにWEXTを使うかもしれませんが、nl80211(私は思う)も使うかもしれません。
WEXT(またはWE = Wireless Extensions)は、Jean Tourrhilesによって1997年にLinuxカーネルに導入された変更です。 このWebページ によると、トゥルヒルズ自身が書いた、
ワイヤレス拡張(WE)は、ドライバーが一般的なワイヤレスLANに固有のユーザー空間、構成、および統計を公開できるようにする汎用APIです。その優れた点は、1つのツールセットで、種類に関係なく、ワイヤレスLANのすべてのバリエーションをサポートできることです(ドライバーがワイヤレス拡張をサポートしている限り)。別の利点は、ドライバー(またはLinux)を再起動せずに、これらのパラメーターをその場で変更できることです。
言い換えると、WEXTはドライバーの上にあり、wpa_supplicantがドライバーと対話できるようにします。 wpa_supplicantとドライバーは異なるカーネルレルム(1つ目はユーザー空間、2つ目はカーネル空間)に属しているため、仲介役として機能するAPIが必要です。これは、ボブが言及したいわゆるドライバーが果たす役割です。
ただし、 このLinux-Wireless Webページ は、
WEはさらに開発されていますか?
いいえそうではありません。 WEはバグ修正のみを受け付けています。
そして
Wireless-Extensionsの交換とは何ですか?
新しい開発はcfg80211とnl80211に焦点を合わせる必要があります。
実際、クエリが私のwpa_supplicantを直接実行した場合(つまり、manページではなく、コマンド
wpa_supplicant -h
私は(部分的に)この返信を受け取ります:
drivers:
wext = Linux wireless extensions (generic)
nl80211 = Linux nl80211/cfg80211
wired = Wired Ethernet driver
none = no driver (RADIUS server/WPS ER)
options:....
言い換えると、Linux Wirelessの言葉に忠実であり、Wextとnl80211を除く他のすべてのドライバーへのサポートが削除され、Wextへのサポートが維持されたのは...
まだWEを使用していますか?
はいcfg80211とnl80211はまだ作業中であるため、WEは引き続き使用されています。すべてのmac80211ドライバーは、mac80211が使用するWEをサポートしています。そのアイデアは、まだ存在していないものをcfg80211とnl80211に徐々に移動し始め、それらに新しい機能を追加することです。
これはLinuxカーネル3.11.1-031101-genericに適用されます。
Hostapdを使用したことがある人は、hostapdの標準ドライバが正確にnl80211であるため、ある意味で、これらすべてについてすでに通知されています。