Компиляция модуля ядра для Android ARM
Задаю вопрос т.к. уже довольно долго безуспешно пытаюсь решить задачу. Хочу понять как происходит компиляция модулей для ядра Андроид. Задача состоит в том что бы сконнектить USB WiFi адаптер с Андроид по OTG и управлять интерфейсом посредством терминала. Вообще это не основная задача но как пример для обучения подходит идеально. Прочитав множество статей на эту тему я так и не приблизился к решению.
Но из прочитанного я узнал что:
- Есть два варианта: встроить модуль в ядро при компиляции или скомпилировав подгрузить его отдельно (при условии поддержки ядром такой возможности).
- Софт необходимый для компиляции это: Android NDK, SDK.
- Необходимы исходники ядра под которое будет компилироваться модуль (Можно использовать похожее по версии и архитектуре чистое ядро, версия должна совпадать до второй цифры после точки).
- Получить файл конфигурации ядра с устройства. (/proc/config.gz)
Но на этом все, что делать дальше не понимаю. Устройство которое я использую для тестов Xiaomi Mi A1 (Android One) т.е. проблемм с исходниками ядра нет, плюс активная поддержка LineageOS, сейчас это основная ОС. Исходники модуля который хочу собрать на GitHub'е с пометкой "Support Android".
Не понимаю порядок действий, есть ли способ сборки наподобие сборки для PC, т.е. для десктопа это просто make, make install?! Но что делать в моей ситуации понятия не имею.
Если у кого есть замечания по описанному выше, неточности, ошибки или любая дополнительная информация, прошу дайте знать. Так-же очень важный вопрос как проверить поддерживает ли ядро загрузку модулей на лету или что нужно поправить для такой возможности, хотя без готового модуля это не так уж и важно, но все же?!
Буду рад любой информации, сам уже не могу разобраться т.к. инфо в различных источниках разниться и нет никакого универсального метода сборки.