wpa_supplicant 아래의 드라이버(-D) 옵션

wpa_supplicant 아래의 드라이버(-D) 옵션

작업을 완료하려면 먼저 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

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

WEXT(또는 WE= Wireless Extensions)는 Jean Tourrhiles가 1997년에 Linux 커널을 수정한 것입니다. ~에 따르면이 페이지투리엘스가 직접 쓴,

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

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

하지만,이 Linux 무선 웹페이지특별히 정의된

WE가 더 발전하고 있나요?

전혀 그렇지 않다. 우리는 버그 수정만 받아들입니다.

그리고

무선 확장의 대안은 무엇입니까?

새로운 개발은 cfg80211 및 nl80211에 중점을 두어야 합니다.

실제로 wpa_supplicant를 직접 쿼리하면(예: 매뉴얼 페이지가 아니라 명령

 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의 경우 Wex 및 nl80211을 제외한 다른 모든 드라이버에 대한 지원이 제거되었으며 Weext에 대한 지원은 유지되었습니다.

아직도 WE를 사용하나요?

예, cfg80211 및 nl80211은 아직 개발 중이므로 WE도 계속 사용 중입니다. mac80211이 WE를 사용하기 때문에 모든 mac80211 드라이버는 WE를 지원합니다. 아이디어는 아직 존재하지 않는 cfg80211 및 nl80211로 항목을 천천히 이동하기 시작하고 여기에 새로운 기능을 추가하는 것입니다.

이는 Linux 커널 3.11.1-031101-generic에 적용됩니다.

Hostapd를 사용해 본 사람들은 이미 이 모든 것을 어느 정도 알고 있습니다. 왜냐하면 Hostapd의 표준 드라이버가 다름 아닌 nl80211이기 때문입니다.

관련 정보