LINUX.ORG.RU

Проблема с wifi rtl8723bs SDIO под Android

 


0

1

Всем привет! и хорошего дня!

Ситуация в следующем, имеется отладочная плата Freescale IMX6q sabresd. На ней установлен Android 4.3

Уже какой день пытаюсь подключить к ней по SDIO вайфай rtl8723bs. По настройкам делал все согласно документации от китайцев.

Собираю драйвер как модуль, подкладываю его в папку system/lib/modules и загружаю insmod. При загрузки не каких ошибок не выявил. Логи, конфини и все остальное опишу ниже.

На данный момент существует 2 проблемы:

1. При сборке драйвера rtl8723bs выполняю сначала make clean, а уже после make. В самом конце сборки куча варнингов:

Building modules, stage 2.
MODPOST 1 modules
WARNING: "cfg80211_del_sta" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_mgmt_tx_status" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "wiphy_apply_custom_regulatory" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "ieee80211_frequency_to_channel" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_rx_mgmt" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_new_sta" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_connect_result" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_unlink_bss" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "wiphy_new" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_put_bss" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_roamed" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_scan_done" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_ibss_joined" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_michael_mic_failure" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_disconnected" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_get_bss" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_inform_bss_frame" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "wiphy_free" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "__ieee80211_get_channel" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_ready_on_channel" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "wiphy_unregister" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "cfg80211_remain_on_channel_expired" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
WARNING: "wiphy_register" [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko] undefined!
CC /home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.mod.o
LD [M] /home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/8723bs.ko

В конфиге самого драйвера я создаю новую платформу согласно документации по аналогии другим платформам.

ifeq ($(CONFIG_PLATFORM_FSL_IMX6Q), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT -DCONFIG_IOCTL_CFG80211 
ARCH := arm
CROSS_COMPILE := /home/mark/Android/opt/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/arm-eabi-
KSRC := /home/mark/Android/opt/kernel_imx
MODULE_NAME := 8723bs
endif

В этой части если закоментить этот параметр #-DCONFIG_IOCTL_CFG80211

То сборка происходит без варнингов. Вот тут то и хотел обратится к помощи профессионалов, из-за чего вызваны эти варнинги? (как понимаю этот параметр не мало важен для работы вайфая) Чтобы избавится от них, перепробовал порядка 3-5 разных драйверов брав их из разных мест на github-е.

2. Как понимаю из-за предыдущей проблемы у меня и не работает wifi. Пробовал собирать драйвер как модуль так и как bult-in. при bult-in просто не каких ошибок и варнингов не обнаружил. При запуски модуля через insmod

D/MtpServer( 2941): path: /storage/emulated/0/87238723bs2.ko parent: 0 storageID: 00
010001
I/wpa_supplicant( 3598): Successfully initialized wpa_supplicant
D/MtpService( 2941): updating state; isCurrentUser=true, mMtpLocked=false
D/MtpService( 2941): addStorageLocked 65537 /storage/emulated/0
D/MtpService( 2941): updating state; isCurrentUser=true, mMtpLocked=false
D/MtpService( 2941): starting MTP server in MTP mode
D/MtpService( 2941): addStorageLocked 65537 /storage/emulated/0
D/BluetoothAdapter( 2927): 1102533832: getState() :  mService = null. Returning
STATE_OFF 

При выполнении netcfg и ifconfig , wifi не обнаружен.

Еще вопрос такой у остальных драйверов вижу еще файлы: cfg80211.ko compact.ko Как их скомпилировать их для моего драйвера?

Конфиги:

Ставлю в конфиге:

CONFIG_CFG80211=m 
CONFIG_MAC80211_MESH=y 
CONFIG_MAC80211=y 
CONFIG_HOSTAP=y 
CONFIG_RTL8723BS=m
в BoardConfig.mk
BOARD_WIFI_VENDOR := realtek
ifeq ($(BOARD_WIFI_VENDOR), realtek)
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
CONFIG_DRIVER_WEXT :=y
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl
BOARD_HOSTAPD_DRIVER:= NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl

BOARD_WLAN_DEVICE := rtl8723bs
#BOARD_WLAN_DEVICE := rtl8192du
#BOARD_WLAN_DEVICE := rtl8192ce
#BOARD_WLAN_DEVICE := rtl8192de
#BOARD_WLAN_DEVICE := rtl8723as
#BOARD_WLAN_DEVICE := rtl8723au
#BOARD_WLAN_DEVICE := rtl8189es
#BOARD_WLAN_DEVICE := rtl8723bs
#BOARD_WLAN_DEVICE := rtl8723bu

WIFI_DRIVER_MODULE_NAME := "8723bs"
WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/8723bs.ko"
WIFI_DRIVER_MODULE_ARG:= "ifname=wlan0 if2name=p2p0"

WIFI_FIRMWARE_LOADER := ""
WIFI_DRIVER_FW_PATH_STA := ""
WIFI_DRIVER_FW_PATH_AP:= ""
WIFI_DRIVER_FW_PATH_P2P := ""
WIFI_DRIVER_FW_PATH_PARAM := ""
endif

init.xxx.rc

service rtw_suppl_con /system/bin/wpa_supplicant 
-ip2p0 -Dnl80211 -c /data/misc/wifi/p2p_supplicant.conf -e/data/misc/wifi/entropy.bin -N 
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf 
class main 
socket wpa_wlan0 dgram 660 wifi wifi 
disabled 
oneshot 

service rtw_suppl /system/bin/wpa_supplicant -iwlan0 -Dnl80211 
-c/data/misc/wifi/wpa_supplicant.conf 
socket wpa_wlan0 dgram 660 wifi wifi 
class main 
disabled 
oneshot

Set wifi.interface

PRODUCT_PROPERTY_OVERRIDES += 
wifi.interface=wlan0

Apply wifi_realtek.c

ifeq ($(BOARD_WIFI_VENDOR), realtek) 
LOCAL_SRC_FILES += ../realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c 
else 
LOCAL_SRC_FILES += wifi/wifi.c 
endif

wpa_supplicant_8

ifeq ($(BOARD_WIFI_VENDOR), realtek) 
L_CFLAGS += -DREALTEK_WIFI_VENDOR 
L_CFLAGS += -DANDROID_P2P 
L_CFLAGS += -DCONFIG_ANDROID_4_2_PERSISTENT_IOT 
Endif

Adding or Selecting Target Platform opt/kernel_imx/drivers/net/wireless/rtl8723bs/makefile

CONFIG_PLATFORM_FSL_IMX6Q = y 
CONFIG_PLATFORM_I386_PC = n 
CONFIG_PLATFORM_ANDROID_X86 = n 
CONFIG_PLATFORM_ARM_S3C2K4 = n 
CONFIG_PLATFORM_ARM_PXA2XX = n 
CONFIG_PLATFORM_ARM_S3C6K4 = n 
CONFIG_PLATFORM_MIPS_RMI 
= n 
CONFIG_PLATFORM_RTD2880B 
= n 
CONFIG_PLATFORM_MIPS_AR9132 = n 
CONFIG_PLATFORM_MT53XX 
= n 
CONFIG_PLATFORM_RTK_DMP 
= n
opt/kernel_imx/drivers/net/wireless/Makefile
obj-$(CONFIG_RTL8723AS) += rtl8723as/

opt/kernel_imx/drivers/net/wireless/Kconfig

source "drivers/net/wireless/rtl8723bs/Kconfig" 

Заранее благодарен за любые идеи, помощь, подсказки! Андрей!

rtl - это дрянь дряньская, она ни у кого нормально не работает, забей

adminlinwin
()

WARNING: «cfg80211_michael_mic_failure» [/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs

/usr/src/linux/include/net/cfg80211.h:

void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr,

panzerito
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.