작업을 완료하려면 먼저 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이기 때문입니다.