Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
Wifi SDIO RTL8723BS и i.MX 6Quad Freescale - Вспомогательные средства - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Вспомогательные средства
Wifi SDIO RTL8723BS и i.MX 6Quad Freescale
lipovandrey
Добавлено 12.05.2017 16:23
0
Сообщение: 1
lipovandrey
5

Пункты: 2466
Регистрация: 19.03.2015
Пол: Мужчина
Всем доброго вечера и хороших выходных.

И так имеется:
i.MX 6Quad Freescale SabreSD с андройдом 4.3
недавно был приобретен wifi модуль на чипе RTL8723BS
Под него спаял платку и вывел все SDIO выходы на SABRESD.

Так же у китайцев была запрошена документация, драйвер и прошивки для этого модуля. Я их получил.

К сожалению на starterkit не нашел много инфы для настройки нового модуля wifi. Поэтому решил задать вопрос.

Все настроено согласно документации и нескольких тем на фрискейловском форуме.

Как указано в документации Wifi драйвер надо собирать как модуль
Код
"CONFIG_RTL8723BS=m"

Но к сожалению при сборке он не обирается, просто как будто его пропускает.
Файла KO не появляется не где.

Если его ставить с так "CONFIG_RTL8723BS=y" то при сборке мне пишут, драйвер должен собираться как модуль и куча ошибок.

Если же зайти в саму папку с драйвером и выполнить Make, он собирается как модуль "KO", но толком это нечего не дает. Я его закидываю в андройд, пихаю в system/lib/module/ и пытаюсь его запустить
Код
insmod wlan.ko

После чего получаю ошибку:
Цитата
insmod: can't insert 'wlan.ko': invalid parameter


При этом в этой же папке есть другие модули "cfg80211, compact и другие" они загружаются без проблем. Пробовал свой вайфай загрузить перед ними и после них.

В конфиге борды есть такой параметр который я дописывал из документации:
device/fsl/sabresd_6dq/BoardConfig.mk


Скрытый текст
Скрытый текст виден только зарегистрированным пользователям.


далее ниже идут настройки для других драйверов wifi, пробовал их коментить но толку ноль.
Так вот
в моем вайфае пишется:
BOARD_WIFI_VENDOR := realtek
а в другом
BOARD_WLAN_VENDOR:= RALINK

так вот если в моем драйвере стоит WIFI, сборка собирается но как понимаю драйвер в нее не попадает.
Если же я прописываю WLAN в мой конфиг, то драйвер в сборке начинает собираться, но падает с ошибками :

Цитата
Copy: out/target/product/sabresd_6dq/root/fstab.freescale
make: *** No rule to make target `NOTICE-TARGET-STATIC_LIBRARIES-lib_driver_cmd_rtl', needed by `out/target/product/sabresd_6dq/system/bin/hostapd'. Stop.
make: *** Waiting for unfinished jobs....


Мои настройки:

vim kernel_imx/arch/arm/configs/imx6s_{yourdevice}_android_defconfig

PHP - Код
CONFIG_CFG80211=y
CONFIG_MAC80211_MESH
=y
CONFIG_MAC80211
=y
CONFIG_HOSTAP
=y
CONFIG_RTL8723BS
=m


vim device/fsl/{yourdevice}/BoardConfig.mk

PHP - Код
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_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 := rtl8192cu
#BOARD_WLAN_DEVICE := rtl8723bu

WIFI_DRIVER_MODULE_NAME := "wlan"
WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/wlan.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


Add android.hardware.wifi.direct.xml

PHP - Код
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hard
ware
.wifi.direct.xml


init.xxx.rc
PHP - Код
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
PHP - Код
PRODUCT_PROPERTY_OVERRIDES +=
wifi.interface=wlan0


Apply wifi_realtek.c

PHP - Код
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
PHP - Код
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

PHP - Код
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
PHP - Код
obj-$(CONFIG_RTL8723AS) += rtl8723as/


opt/kernel_imx/drivers/net/wireless/Kconfig
PHP - Код
source "drivers/net/wireless/rtl8723bs/Kconfig"
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.05.2017 21:11 Сообщение: 2
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Как указано в документации Wifi драйвер надо собирать как модуль

привет! в каком виде тебе дали драйвер - скопище файлов или одинарный сишник?
чтобы ядро его подхватило нужно помимо Kconfig прописать его в местный Makefile, то сплодит или *.o или *.ko

Цитата
insmod: can't insert 'wlan.ko': invalid parameter

с большой долей вероятности, ты генеришь x86 при отдельной компиляции - натрави на свой модуль или modinfo или file

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
lipovandrey
Добавлено 13.05.2017 00:38 Редактировалось 13.05.2017 00:38 Сообщение: 3
lipovandrey
5

Пункты: 2466
Регистрация: 19.03.2015
Пол: Мужчина
Приветствую Юрий!
Цитата
привет! в каком виде тебе дали драйвер - скопище файлов или одинарный сишник?

Скопище файлов, конфигов, PDFников с настройками и патчами.
В Kconfig и Makefile все прописано, я поэтому и удивлен.
/opt/kernel_imx/drivers/net/wireless/Makefile
Прописано:
PHP - Код
obj-$(CONFIG_RTL8723AS) += rtl8723as/


/opt/kernel_imx/drivers/net/wireless/Kconfig
Прописано:
PHP - Код
source "drivers/net/wireless/rtl8723bs/Kconfig"


в самом драйвере:
/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/Kconfig
PHP - Код
config RTL8723BS
tristate
"Realtek 8723B SDIO or SPI WiFi"
---help---
Help message of RTL8723BS


/home/mark/Android/opt/kernel_imx/drivers/net/wireless/rtl8723bs/Makefile
PHP - Код
CONFIG_RTL8723B = y

Создал свою платформу
PHP - Код
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_FSL_IMX6Q
= y
CONFIG_PLATFORM_ANDROID_X86
= n
CONFIG_PLATFORM_ANDROID_INTEL_X86
= n


И прописал ее ниже как подобает:
PHP - Код

ifeq
($(CONFIG_PLATFORM_FSL_IMX6Q), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID
EXTRA_CFLAGS
+= -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS
+= -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS
+= -DCONFIG_P2P_IPS
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


Цитата
с большой долей вероятности, ты генеришь x86 при отдельной компиляции - натрави на свой модуль или modinfo или file

Как видно из makefile драйвера компилю вроде как под ARM.

При выполнении file, происходит ругань что такой утилиты нет.
а с modinfo вообще прикол, при выполнении пустым вываливается как обычно help
Код

1|root@sabresd_6dq:/system/lib/modules # busybox modinfo
busybox modinfo
BusyBox v1.21.1 (2013-07-08 10:26:30 CDT) multi-call binary.

Usage: modinfo [-adlp0] [-F keyword] MODULE

-a Shortcut for '-F author'
-d Shortcut for '-F description'
-l Shortcut for '-F license'
-p Shortcut for '-F parm'
-F keyword Keyword to look for
-0 Separate output with NULs


При выполнении modinfo wlan.ko или busybox modinfo wlan.ko

Код
modinfo: can't open '/lib/modules/3.0.35/modules.dep': No such file or directory


Как бы утилита есть, но ее нет.
Нашел другой способ узнать для кого собран
1|root@sabresd_6dq:/system/lib/modules # strings wlan.ko | grep vermagic
получаем вот так
PHP - Код

strings wlan
.ko | grep vermagic
vermagic
=3.0.35 SMP preempt mod_unload modversions [b]ARMv7[/b]
__mod_vermagic5
__mod_vermagic5
Спуститься к концу Подняться к началу
Персональная информация
lipovandrey
Добавлено 13.05.2017 00:44 Сообщение: 4
lipovandrey
5

Пункты: 2466
Регистрация: 19.03.2015
Пол: Мужчина
Так же к дополнению ко всему, я изменил название модуля
MODULE_NAME := 8723bs
как это сделано у всех остальных, это роли не играет, поменял его в самом драйвере так и в BoardConfig.mk

Так вот при выполнении make в самом драйвере заметил кучу варнингов, но файл ko появляется, они и раньше были, просто не придавал значения.


Код

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
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 13.05.2017 11:47 Сообщение: 5
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
совсем кратенько
Цитата
modinfo: can't open '/lib/modules/3.0.35/modules.dep': No such file or directory

надо создать файл нулевой длины
/lib/modules/3.0.35/modules.dep
потом дать команду
depmod -a
которая поищет модули и создаст индексы для зависимостей
а перед этим накидать нужных модулей сюда
/lib/modules/3.0.35/

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
lipovandrey
Добавлено 14.05.2017 02:06 Сообщение: 6
lipovandrey
5

Пункты: 2466
Регистрация: 19.03.2015
Пол: Мужчина
Цитата
совсем кратенько
Цитата
modinfo: can't open '/lib/modules/3.0.35/modules.dep': No such file or directory

надо создать файл нулевой длины
/lib/modules/3.0.35/modules.dep
потом дать команду
depmod -a
которая поищет модули и создаст индексы для зависимостей
а перед этим накидать нужных модулей сюда
/lib/modules/3.0.35/


К сожалению из-за не до-Linuxа папка modules находится
system/lib/modules
При создании system/lib/modules/3.0.35/ в ней файла modules.dep происходит та же ругань.

Создал в rootе папки /lib/modules/3.0.35 и положил туда пустой modules.dep и модули, но при выполнении depmod -a нечего не происходит, ни ошибок и нечего.

Варнинги при сборке драйвера связаны явно как то с CFG80211
но как я не понимаю....
Если в самом конфиге makefile убрать эту строчку, о сборка происходит без варнингов.
PHP - Код
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT

но как я читал на каком то форуме, где тоже так и не решили проблему, что если собирать без этой строки то варнинги потом полезут при запуске модуля.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Вспомогательные средства