И так имеется:
i.MX 6Quad Freescale SabreSD с андройдом 4.3
недавно был приобретен wifi модуль на чипе RTL8723BS
Под него спаял платку и вывел все SDIO выходы на SABRESD.
Так же у китайцев была запрошена документация, драйвер и прошивки для этого модуля. Я их получил.
К сожалению на starterkit не нашел много инфы для настройки нового модуля wifi. Поэтому решил задать вопрос.
Все настроено согласно документации и нескольких тем на фрискейловском форуме.
Как указано в документации Wifi драйвер надо собирать как модуль
Но к сожалению при сборке он не обирается, просто как будто его пропускает.
Файла KO не появляется не где.
Если его ставить с так "CONFIG_RTL8723BS=y" то при сборке мне пишут, драйвер должен собираться как модуль и куча ошибок.
Если же зайти в саму папку с драйвером и выполнить Make, он собирается как модуль "KO", но толком это нечего не дает. Я его закидываю в андройд, пихаю в system/lib/module/ и пытаюсь его запустить
После чего получаю ошибку:
При этом в этой же папке есть другие модули "cfg80211, compact и другие" они загружаются без проблем. Пробовал свой вайфай загрузить перед ними и после них.
В конфиге борды есть такой параметр который я дописывал из документации:
device/fsl/sabresd_6dq/BoardConfig.mk
далее ниже идут настройки для других драйверов wifi, пробовал их коментить но толку ноль.
Так вот
в моем вайфае пишется:
BOARD_WIFI_VENDOR := realtek
а в другом
BOARD_WLAN_VENDOR:= RALINK
так вот если в моем драйвере стоит WIFI, сборка собирается но как понимаю драйвер в нее не попадает.
Если же я прописываю WLAN в мой конфиг, то драйвер в сборке начинает собираться, но падает с ошибками :
Мои настройки:
vim kernel_imx/arch/arm/configs/imx6s_{yourdevice}_android_defconfig
vim device/fsl/{yourdevice}/BoardConfig.mk
Add android.hardware.wifi.direct.xml
init.xxx.rc
Set wifi.interface
Apply wifi_realtek.c
wpa_supplicant_8
Adding or Selecting Target Platform
opt/kernel_imx/drivers/net/wireless/rtl8723bs/makefile
привет! в каком виде тебе дали драйвер - скопище файлов или одинарный сишник?
чтобы ядро его подхватило нужно помимо Kconfig прописать его в местный Makefile, то сплодит или *.o или *.ko
с большой долей вероятности, ты генеришь x86 при отдельной компиляции - натрави на свой модуль или modinfo или file
Скопище файлов, конфигов, PDFников с настройками и патчами.
В Kconfig и Makefile все прописано, я поэтому и удивлен.
/opt/kernel_imx/drivers/net/wireless/Makefile
Прописано:
Как видно из makefile драйвера компилю вроде как под ARM.
При выполнении file, происходит ругань что такой утилиты нет.
а с modinfo вообще прикол, при выполнении пустым вываливается как обычно help
При выполнении modinfo wlan.ko или busybox modinfo wlan.ko
Как бы утилита есть, но ее нет.
Нашел другой способ узнать для кого собран
1|root@sabresd_6dq:/system/lib/modules # strings wlan.ko | grep vermagic
получаем вот так
Так же к дополнению ко всему, я изменил название модуля
MODULE_NAME := 8723bs
как это сделано у всех остальных, это роли не играет, поменял его в самом драйвере так и в BoardConfig.mk
Так вот при выполнении make в самом драйвере заметил кучу варнингов, но файл ko появляется, они и раньше были, просто не придавал значения.
надо создать файл нулевой длины /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 убрать эту строчку, о сборка происходит без варнингов.