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)는 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를 사용한 사람들은 이미이 모든 것을 알고 있습니다.