opsi driver (-D) di bawah wpa_supplicant

11

Sebelum wpa_supplicantdapat melakukan tugasnya, antarmuka jaringan harus tersedia dan driver untuk perangkat harus dimuat. wpa_supplicantmemungkinkan seseorang menentukan driver dengan flag "-D". Saya telah mencoba ini pada beberapa sistem, tetapi wpa_supplicantsepertinya tidak pernah menerima driver yang telah saya tentukan. Sebagai contoh:

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 ~ # 

Namun, jika saya mulai wpa_supplicanttanpa menentukan seperti driver wpa_supplicant -i eth1 -c /root/wpafile, maka ia berfungsi dengan sempurna. Kenapa begitu? Selain itu, dalam hal apa diperlukan untuk menentukan driver wpa_supplicant?

Martin
sumber
1
Daftar driver yang tersedia meliputi (lihat manual): HostAP, Prism54, Madwifi, NDISWrapper, AMTEL, IPW (keduanya driver 2100 dan 2200), WEXT (ekstensi nirkabel Linux Generik), ethernet berkabel. Yang paling menarik adalah WEXT (yang digunakan untuk 70% perangkat Wifi), NDISWrapper jika Anda menggunakan driver Windows, dibungkus oleh lapisan kompatibilitas Linux dan Madwifi, jika Anda menggunakan aircrack. Padahal, saya tidak mengerti dari sudut pandang arsitektur, level apa yang diwakili oleh pengemudi itu.
Boris Burkov

Jawaban:

13

Anda membingungkan driver kernel dan driver ruang pengguna. Dalam kasus Anda, Anda tentu dapat menggunakan WEXT, tetapi juga nl80211 (saya pikir).

WEXT (atau WE = Wireless Extensions) adalah modifikasi yang diperkenalkan ke kernel Linux pada tahun 1997 oleh Jean Tourrhiles. Menurut halaman Web ini yang ditulis oleh Tourrhiles sendiri,

Wireless Extension (WE) adalah API generik yang memungkinkan driver untuk mengekspos ke ruang pengguna, konfigurasi dan statistik khusus untuk LAN Nirkabel umum. Keindahannya adalah bahwa satu set alat dapat mendukung semua variasi LAN Nirkabel, terlepas dari jenisnya (selama driver mendukung Perpanjangan Nirkabel). Keuntungan lain adalah parameter ini dapat diubah dengan cepat tanpa me-restart driver (atau Linux).

Dengan kata lain, WEXT duduk di atas driver Anda, dan memungkinkan wpa_supplicant untuk berinteraksi dengannya. Perhatikan bahwa wpa_supplicant dan driver termasuk dalam ranah kernel yang berbeda, (yang pertama ke ruang pengguna, yang kedua ke ruang kernel), oleh karena itu diperlukan API yang dapat bertindak sebagai perantara. Ini adalah peran yang dimainkan oleh pembalap yang disebut oleh Bob.

Namun, halaman Web Linux-Wireless ini secara eksplisit menyatakan itu

Apakah KAMI sedang dikembangkan lebih lanjut?

Tidak, bukan. Hanya perbaikan bug yang diterima untuk KAMI.

dan

Apa yang dimaksud dengan penggantian Wireless-Extensions?

Pengembangan baru harus difokuskan pada cfg80211 dan nl80211.

Bahkan, jika kueri wpa_supplicant saya secara drect (yaitu, bukan halaman manual, tetapi perintah

 wpa_supplicant -h

Saya mendapatkan (sebagian) balasan ini:

drivers:
  wext = Linux wireless extensions (generic)
  nl80211 = Linux nl80211/cfg80211
  wired = Wired Ethernet driver
  none = no driver (RADIUS server/WPS ER)
options:....

Dengan kata lain, setia pada kata-kata Linux Wireless, dukungan untuk semua driver lain kecuali Wext dan nl80211 telah dijatuhkan, dan dukungan untuk Wext telah dipertahankan karena ...

Apakah kita masih menggunakan KAMI?

Ya cfg80211 dan nl80211 masih sedang dikerjakan sehingga WE masih digunakan. Semua driver mac80211 mendukung WEs karena mac80211 menggunakannya. Idenya adalah untuk perlahan-lahan mulai memindahkan barang ke cfg80211 dan nl80211 yang belum ada di sana dan menambahkan fitur baru ke dalamnya juga.

Ini berlaku untuk Linux Kernel 3.11.1-031101-generic.

Anda yang telah menggunakan hostapd, sudah pasti sudah mengetahui semua ini, karena driver standar untuk hostapd persis nl80211.

MariusMatutiae
sumber