Wpa supplicant

Материал из Toshiba AC100 wiki
Перейти к: навигация, поиск

Оживление драйвера RT2800USB (RT2X00) из состава ядра 3.1


New Wifi problems (Kitkat 4.4.4)

Look like this permission was root of this problem frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml

Logcat log: http://pastebin.com/uEcit2RF Dmesg: http://pastebin.com/EZQPKgYT

Current wpa_supplicant start string: https://github.com/zombah/android_device_toshiba_paz00-common/blob/cm-11.0-devel/prebuild/init.paz00.rc#L200

Some more errors to think about, but they was before and was not critical:

D/ConnectivityService(  420): ConnectivityService starting up
D/ConnectivityService(  420): wifiOnly=false
E/ConnectivityService(  420): Ignoring protectedNetwork 14
...
E/WifiHW  (   93): Failed to open wlan fw path param (No such file or directory)
E/SoftapController(   93): Softap fwReload failed
E/WifiStateMachine(  420): Failed to reload STA firmware java.lang.IllegalStateException: command '3 softap fwreload wlan0 STA' failed with '400 3 SoftAP command has failed'
...

And dmesg:

[   24.642962] rndis_wlan: Unknown symbol cfg80211_inform_bss (err 0)

Инфо

  • Наше ядро 3.1-exp из репо marvin24
  • Наш драйвер rt2800usb из состава входящего в ядро mainline набора драйверов rt2x00
  • Наш драйвер использует API mac80211 и должен работать с драйвером nl80211 из состава wpa_supplicant
  • Текущий wpa_supplicant_8 собирается только с использованием private lib
    • Драйвер rt2x00 заведомо известно что рабочий, работает в линуксе отлично.
    • Устройство wlan0 появляется после загрузки модуля драйвера нормально при использовании wpa_supplicant_8.
    • firmware используется rt2870.bin версии 22

wpa_supplicant_6

  • WEXT
CONFIG_DRIVER_WEXT := true
WPA_SUPPLICANT_VERSION  := VER_0_6_X

собирается

      • не стартует
E/WifiStateMachine(  152): Failed to start supplicant!
W/Netd    (   95): No subsystem found in netlink event
D/NetlinkEvent(   95): Unexpected netlink message. type=0x11
  • NL80211
CONFIG_DRIVER_NL80211 := true
WPA_SUPPLICANT_VERSION  := VER_0_6_X

не собирается

    • видимо нужен private lib


wpa_supplicant_8

  • WEXT
  • NL80211
BOARD_WPA_SUPPLICANT_DRIVER             := NL80211
WPA_SUPPLICANT_VERSION                  := VER_0_8_X
BOARD_WPA_SUPPLICANT_PRIVATE_LIB        := lib_driver_cmd_bcmdhd
BOARD_HOSTAPD_DRIVER                    := NL80211
BOARD_HOSTAPD_PRIVATE_LIB               := lib_driver_cmd_bcmdhd
BOARD_WLAN_DEVICE                       := wlan0

собираются только с private lib

    • пробовал private lib из hardware/broadcom/wlan/bcm4239 и bcmdhd
      • с обоими стартует,но не работает
    • пробовал mac80211 от hardware/ti не собирается
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideab
i/bin/ld: out/target/product/paz00/obj/EXECUTABLES/hostapd_intermediates/src/drivers/driver_nl80211.o: in function wpa_driver_nl8021
1_ops:driver_nl80211.c(.data.rel.ro.wpa_driver_nl80211_ops+0x130): error: undefined reference to 'wpa_driver_set_ap_wps_p2p_ie'     
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideab
i/bin/ld: out/target/product/paz00/obj/EXECUTABLES/hostapd_intermediates/src/drivers/driver_nl80211.o: in function wpa_driver_nl8021
1_ops:driver_nl80211.c(.data.rel.ro.wpa_driver_nl80211_ops+0x168): error: undefined reference to 'wpa_driver_get_p2p_noa'           
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideab
i/bin/ld: out/target/product/paz00/obj/EXECUTABLES/hostapd_intermediates/src/drivers/driver_nl80211.o: in function wpa_driver_nl8021
1_ops:driver_nl80211.c(.data.rel.ro.wpa_driver_nl80211_ops+0x16c): error: undefined reference to 'wpa_driver_set_p2p_noa'           
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideab
i/bin/ld: out/target/product/paz00/obj/EXECUTABLES/hostapd_intermediates/src/drivers/driver_nl80211.o: in function wpa_driver_nl8021
1_ops:driver_nl80211.c(.data.rel.ro.wpa_driver_nl80211_ops+0x170): error: undefined reference to 'wpa_driver_set_p2p_ps'            
collect2: ld returned 1 exit status
make: *** [out/target/product/paz00/obj/EXECUTABLES/hostapd_intermediates/LINKED/hostapd] Error 1
make: *** Waiting for unfinished jobs....

* собрался

      • завелся
      • все работает вроде

Идеи

  • Искать еще варианты private lib, возможно найдется совсетимая
  • Адаптировать private lib от bcmdhd или ti-pandaboard под rt2x00, нужен знающий человек или тот кто может в этом разобраться
  • Cобрать, то что не собирается

1338505112