tùy chọn trình điều khiển (-D) trong wpa_supplicant


11

Trước khi wpa_supplicantcó thể thực hiện công việc của mình, giao diện mạng phải có sẵn và trình điều khiển cho thiết bị phải được tải. wpa_supplicantcho phép một người chỉ định trình điều khiển với cờ "-D". Tôi đã thử điều này trên một vài hệ thống, nhưng wpa_supplicantdường như không bao giờ chấp nhận trình điều khiển mà tôi đã chỉ định. Ví dụ:

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

Tuy nhiên, nếu tôi bắt đầu wpa_supplicantmà không chỉ định trình điều khiển như thế nào wpa_supplicant -i eth1 -c /root/wpafile, thì nó hoạt động hoàn hảo. Tại sao cái này rất? Ngoài ra, trong trường hợp nào cần chỉ định trình điều khiển cho wpa_supplicant?


1
Danh sách các trình điều khiển khả dụng bao gồm (xem hướng dẫn sử dụng): HostAP, Prism54, Madwifi, NDISWrapper, AMTEL, IPW (cả hai trình điều khiển 2100 và 2200), WEXT (Tiện ích mở rộng không dây Linux chung), ethernet có dây. Một trong những điều thú vị nhất là WEXT (được sử dụng cho 70% thiết bị Wifi), NDISWrapper nếu bạn đang sử dụng trình điều khiển Windows, được bao bọc bởi lớp tương thích Linux và Madwifi, nếu bạn đang sử dụng aircrack. Mặc dù, tôi không hiểu từ quan điểm kiến ​​trúc, những trình điều khiển đó đại diện cho cấp độ nào.
Boris Burkov

Câu trả lời:


13

Bạn đang nhầm lẫn trình điều khiển kernel và trình điều khiển không gian người dùng. Trong trường hợp của bạn, bạn chắc chắn có thể sử dụng WEXT, nhưng cũng có thể nl80211 (tôi nghĩ).

WEXT (hoặc WE = Phần mở rộng không dây) là bản sửa đổi được giới thiệu cho nhân Linux vào năm 1997 bởi Jean Tourrhiles. Theo trang web này được viết bởi chính Tourrhiles,

Tiện ích mở rộng không dây (WE) là API chung cho phép trình điều khiển hiển thị không gian người dùng, cấu hình và thống kê cụ thể cho các mạng LAN không dây phổ biến. Vẻ đẹp của nó là một bộ công cụ duy nhất có thể hỗ trợ tất cả các biến thể của Mạng LAN không dây, bất kể loại của chúng (miễn là trình điều khiển hỗ trợ Tiện ích mở rộng không dây). Một ưu điểm khác là các tham số này có thể được thay đổi nhanh chóng mà không cần khởi động lại trình điều khiển (hoặc Linux).

Nói cách khác, WEXT nằm trên trình điều khiển của bạn và cho phép wpa_supplicant tương tác với nó. Lưu ý rằng wpa_supplicant và trình điều khiển thuộc về các hạt nhân khác nhau, (thứ nhất đối với không gian người dùng, thứ hai đối với không gian kernel), do đó, API có khả năng hoạt động như một trung gian được yêu cầu. Đây là vai trò của những người được gọi là trình điều khiển được đề cập bởi Bob.

Tuy nhiên, trang web Linux-Wireless này tuyên bố rõ ràng rằng

Có phải chúng ta đang được phát triển hơn nữa?

Không có nó không phải là. Chỉ sửa lỗi được chấp nhận cho WE.

Thay thế phần mở rộng không dây là gì?

Phát triển mới nên được tập trung vào cfg80211 và nl80211.

Trong thực tế, nếu một truy vấn wpa_supplicant của tôi cực kỳ nghiêm trọng (nghĩa là không phải trang man, mà là lệnh

 wpa_supplicant -h

Tôi nhận được (một phần) câu trả lời này:

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

Nói cách khác, trung thành với lời nói của Linux Wireless, hỗ trợ cho tất cả các trình điều khiển khác ngoại trừ Wext và nl80211 đã bị hủy và hỗ trợ cho Wext vẫn được duy trì vì ...

Chúng ta vẫn sử dụng WE chứ?

Có cfg80211 và nl80211 vẫn đang được làm việc để WE vẫn đang được sử dụng. Tất cả các trình điều khiển mac80211 đều hỗ trợ WE vì mac80211 sử dụng nó. Ý tưởng là từ từ bắt đầu di chuyển mọi thứ lên cfg80211 và nl80211 chưa có và thêm bất kỳ tính năng mới nào vào chúng.

Điều này áp dụng cho Linux Kernel 3.11.1-031101-generic.

Theo một cách nào đó, những người đã sử dụng hostapd, theo một cách nào đó, đã được thông báo về tất cả điều này, bởi vì trình điều khiển tiêu chuẩn cho hostapd chính xác là nl80211.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.