Wpa supplicant

From Toshiba AC100 wiki
Jump to navigation Jump to search

Оживление драйвера 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