wpa_supplicant의 driver (-D) 옵션


11

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?에 대한 드라이버를 지정해야합니다 .


1
사용 가능한 드라이버 목록에는 HostAP, Prism54, Madwifi, NDISWrapper, AMTEL, IPW (2100 및 2200 드라이버 모두), WEXT (일반 Linux 무선 확장), 유선 이더넷이 포함됩니다 (설명서 참조). 가장 흥미로운 것 중 WEXT (70 % Wifi 장치에 사용 중), NDISWrapper (Windows 드라이버를 사용하는 경우 NDISWrapper, Linux 호환 레이어로 래핑 됨) 및 Madwifi (사용중인 경우)가 있습니다 aircrack. 비록 아키텍처 관점에서 볼 때, 그 드라이버가 나타내는 수준을 이해하지 못합니다.
Boris Burkov

답변:


13

커널 드라이버와 사용자 공간 드라이버를 혼동하고 있습니다. 귀하의 경우에는 반드시 WEXT를 사용할 수 있지만 nl80211도 생각합니다.

WEXT (또는 WE = Wireless Extensions)는 1997 년 Jean Tourrhiles가 Linux 커널에 도입 한 수정 사항입니다. Tourrhiles 자신 작성한 이 웹 페이지 에 따르면 ,

WE (Wireless Extension)는 드라이버가 일반 무선 LAN과 관련된 사용자 공간, 구성 및 통계에 노출 할 수 있도록하는 일반 API입니다. 이 도구의 장점은 드라이버가 무선 확장을 지원하는 한 단일 도구 세트가 유형에 관계없이 모든 무선 LAN을 지원할 수 있다는 것입니다. 또 다른 장점은 이러한 매개 변수가 드라이버 (또는 Linux)를 다시 시작하지 않고 즉시 변경 될 수 있다는 것입니다.

즉, WEXT는 드라이버 위에 있으며 wpa_supplicant가 드라이버와 상호 작용할 수 있도록합니다. wpa_supplicant와 드라이버는 서로 다른 커널 영역 (첫 번째는 사용자 공간, 두 번째는 커널 공간)에 속하므로 중간 역할을 수행 할 수있는 API가 필요합니다. 이것이 Bob이 언급 한 소위 드라이버가 수행하는 역할입니다.

그러나이 Linux-Wireless 웹 페이지

우리는 더 발전하고 있습니까?

전혀 그렇지 않다. WE에는 버그 수정 만 허용됩니다.

Wireless-Extensions의 대체품은 무엇입니까?

cfg80211 및 nl80211에 새로운 개발이 집중되어야합니다.

실제로, 내 wpa_supplicant에 대한 쿼리가 drectly (즉, 매뉴얼 페이지가 아니라 명령 인 경우)

 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 Kernel 3.11.1-031101-generic에 적용됩니다.

hostapd의 표준 드라이버는 정확히 nl80211이므로 hostapd를 사용한 사람들은 이미이 모든 것을 알고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.