Понимание wpa_supplicant

TL; DR . Мне нужна помощь:

  1. почему есть ошибки, связанные с ioctl при использовании драйвера wext ,
  2. почему я не могу использовать драйвер nl80211 .

При запуске wpa_supplicant я получаю странные ошибки (строки примечаний, начинающиеся с ioctl ниже):

 $ sudo wpa_supplicant -D wext -i wlan0 -c wpa_supplicant.conf Successfully initialized wpa_supplicant ioctl[SIOCSIWAP]: Operation not permitted ioctl[SIOCSIWENCODEEXT]: Invalid argument ioctl[SIOCSIWENCODEEXT]: Invalid argument wlan0: Trying to associate with 04:8d:38:59:2d:63 (SSID='netis' freq=2457 MHz) wlan0: Association request to the driver failed wlan0: Associated with 04:8d:38:59:2d:63 wlan0: WPA: Key negotiation completed with 04:8d:38:59:2d:63 [PTK=CCMP GTK=TKIP] wlan0: CTRL-EVENT-CONNECTED - Connection to 04:8d:38:59:2d:63 completed [id=0 id_str=] 

Мне нужна помощь, чтобы понять, почему возникают ошибки ioctl .

Несколько примечаний:

  • моя цель здесь – обучение ; Я хочу избавиться от ошибок, даже если это означает wpa_supplicant патча на wpa_supplicant , в Raspbian или в linux kernel / driver,
  • с WiFi нет проблем; работает; Я получаю подключение к Интернету с выводом выше, с этим нет никаких проблем,
  • если в моем случае невозможно избавиться от ошибок, я бы хотел понять, почему это так,
  • Я не пытался протестировать большинство современных версий и версий Linux ядра Linux; ищут доказательства (фиксация в linux kernel repo?), которые я помогу до погружения в компиляцию моего собственного ядра,
  • Я нашел ошибки в исходном коде, здесь и здесь, соответственно. Не уверен, куда идти оттуда.

То, что я узнал до сих пор

  1. Запуск wpa_supplicant с nl80211 вообще не работает:

     $ sudo wpa_supplicant -D nl80211 -i wlan0 -c wpa_supplicant.conf Successfully initialized wpa_supplicant nl80211: Driver does not support authentication/association or connect commands wlan0: Failed to initialize driver interface 

    Почему нет? Я думал, что nl80211 превосходит wext :

    Развивается ли МЫ? Нет. Для WE принимаются только исправления ошибок.

    Что такое замена беспроводных расширений? Новая разработка должна быть сосредоточена на cfg80211 и nl80211.

    https://wireless.wiki.kernel.org/en/developers/Documentation/Wireless-Extensions

  2. Согласно этому списку , мое устройство RTL8188CUS поддерживается драйвером 8192cu , который загружается как модуль ядра (см. Ниже),

  3. Компиляция и запуск wpa_supplicant версии 2.5 дает одни и те же ошибки ioctl .

О моей среде

wpa_supplicant версия wpa_supplicant :

 $ wpa_supplicant -v wpa_supplicant v2.3 Copyright (c) 2003-2014, Jouni Malinen <j@w1.fi> and contributors 

Содержание wpa_supplicant.conf :

 $ cat wpa_supplicant.conf network={ ssid="my_network_name" psk="my_password" } 

Список USB-устройств:

 $ lsusb Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 

Версия Distro:

 $ uname -a Linux raspberrypi 4.1.18+ #846 Thu Feb 25 14:11:56 GMT 2016 armv6l GNU/Linux 

Загруженные модули ядра:

 $ lsmod Module Size Used by cfg80211 479279 0 rfkill 21508 1 cfg80211 8192cu 556175 0 bcm2835_gpiomem 3703 0 snd_bcm2835 22502 0 bcm2835_rng 2207 0 snd_pcm 92829 1 snd_bcm2835 snd_timer 22164 1 snd_pcm snd 67534 3 snd_bcm2835,snd_timer,snd_pcm uio_pdrv_genirq 3526 0 uio 10078 1 uio_pdrv_genirq ipv6 358702 24 

Содержимое ifconfig :

 $ ifconfig eth0 (...omitted for brevity...) lo (...omitted for brevity...) wlan0 Link encap:Ethernet HWaddr 00:f1:40:41:03:a7 inet addr:192.168.1.104 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::c085:fb91:3e68:a44d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:38 errors:0 dropped:61421 overruns:0 frame:0 TX packets:62 errors:0 dropped:4 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:19804518 (18.8 MiB) TX bytes:1192972 (1.1 MiB) 

Обновление 10/8/2016 : По предложению Rui F Ribero ниже я попытался использовать неофициальные драйверы . Результаты:

  1. Эта ошибка: ioctl[SIOCSIWENCODEEXT]: Invalid argument теперь ушел! Однако ioctl[SIOCSIWAP]: Operation not permitted , все еще присутствует.

  2. wpa_supplicant до сих пор не будет работать с неофициальным драйвером nl80211 . Только на этот раз вывод имеет новое сообщение, начинающееся с deinit :

     $ sudo ./wpa_supplicant -D nl80211 -i wlan0 -c wpa_supplicant.conf Successfully initialized wpa_supplicant nl80211: Driver does not support authentication/association or connect commands nl80211: deinit ifname=wlan0 disabled_11b_rates=0 wlan0: Failed to initialize driver interface 

  • Ручная настройка или поставщик WPA для Wi-Fi в университетской сети
  • Как отключить ведение журнала wpa_supplicant в syslog
  • Вручную подключиться к точке доступа Wi-Fi (AP), несмотря на предварительно сконфигурированные точки доступа в wpa_supplicant
  • Как определить параметры для сети предприятия WPA2?
  • Подключение к Wi-Fi сети с помощью страницы входа в портал с помощью wpa_supplicant
  • «Wpa supplicant: не найдена сетевая конфигурация для текущего AP» - адаптер Wi-Fi, основанный на carl9170, скрежет на Debian 7
  • Как запросить определенный IP-адрес с сервера DHCP?
  • Wifi Direct между linux & android
  • 2 Solutions collect form web for “Понимание wpa_supplicant”

    Дешевая прошивка Realtek wifi, драйверы ядра Linux и аппаратное обеспечение очень ужасно.

    Люди из сообщества ARM работают круглосуточно, чтобы попытаться смягчить некоторые проблемы, вернуть прежние версии модулей ядра realtek и старые версии hostapd, а также старые версии прошивки.

    Один из драйверов, поддерживаемых вашим чипом, находится на странице https://github.com/pvaret/rtl8192cu-fixes, и этот поток рассказывает об установке его.

    Пожалуйста, также прочитайте мой ответ: проблемы Wi-Fi с использованием адаптера ASUS USB-N13 и связанная с ним нить на форуме armbian, на который я ссылаюсь. Lamobo-R1 wifi нестабилен в режиме AP («хозяин») – лучше купить хороший wifi-ключ с соответствующей поддержкой linux

    У меня есть совместимая машина для малины и чип realtek. Забудьте использовать свой чип для служб AP, это мир боли. Будучи клиентом wifi, у него тоже будут проблемы.

    Я советую покупать Ralink с двумя частотами 2,4 ГГц / 5 ГГц для около 10 долларов США на aliexpress, и покончить с этим. http://www.aliexpress.com/item/Dual-Band-5GHz-2-4GHz-300Mbps-USB-Wireless-WiFi-WLAN-Network-Card-Adapter-IEEE-802-11a/32455426779.html

    Установите dkms Загрузите исправление:

      git clone https://github.com/pvaret/rtl8192cu-fixes.git 

    Установите модуль DKMS (с правами root):

     dkms add ./rtl8192cu-fixes 

    Создайте и установите его (с правами root):

      dkms install 8192cu/1.9 

    Обновите список модулей:

      depmod -a 

    Черный список модуля ядра и отключите энергосбережение:

      echo "blacklist rtl8192cu" > /etc/modules.d/8192.conf echo "options 8192cu rtw_power_mgnt=0 rtw_enusbss=0" >> /etc/modules.d/8192cu 

    Выгрузите старый драйвер и загрузите исправленный драйвер:

      rmmod rtl8192cu rtl_usb rtlwifi rtl8192c_common modprobe 8192cu 
    Interesting Posts

    Восстановление данных с BTRFS RAID5

    Как включить переписывание URL-адресов на маршрутизаторе DD-WRT?

    Отложить некоторый трафик localhost

    Пожалуйста, объясните вывод команды ls -all

    Что я могу использовать для мониторинга и регистрации входящего / исходящего трафика на / с удаленных хостов?

    Как сохранить окно графика gnuplot-x11 открытым до закрытия вручную?

    где я должен поместить sudo в эту команду?

    Установите несколько пакетов с помощью разных методов в одной команде Yum

    Показывать только скрытые файлы (файлы точек) в псевдониме ls

    Переключение программного обеспечения с Linux на OS X, что такое gotchas?

    Can / mnt / hgfs / 'shared folder' используется в качестве корня apache?

    Приостановка и перезапуск всех процессов Python

    Копирование последнего измененного файла из нескольких каталогов

    Какие разделы следует шифровать?

    Короткое чтение при попытке открыть / dev / sda2

    Linux и Unix - лучшая ОС в мире.