LINUX.ORG.RU

Установка драйвера на Android

 , , ,


0

2

Архитектура arm64.Клонировал репозиторий с гитхаба(драйвер для WiFi адаптера), пишу make, а мне выдает

 make ARCH=arm64 CROSS_COMPILE= -C /lib/modules/3.18.31-Paranoid/build M=/root/rtl8188eus modules
make[1]: *** /lib/modules/3.18.31-Paranoid/build: No such file or directory. Stop.
make: *** [Makefile:2061: modules] Error 2 

Думаю что надо headers установить, но не могу найти под версию ядра 3.18.31.Может подскажете?

Ответ на: комментарий от anonymous

Добавлю, что для сборки модулей могут потребоваться артефакты сборки полного ядра. Это верно что как минимум заголовки нужно ставить, и вроде как линуксовые пакеты с linux-headers содержат такие артефакты сборки, т.е. не чисто заголовки, если не ошибаюсь (имею право ошибиться :) т.е. я анонимно пишу)

А вот что ставил ты? Ты собираешь НА андроиде или ДЛЯ андроида. Ты указал откуда драйвер надыбал, но не сказал что установил на системе где идет сборка.

Там всё достаточно хрупкое, ты пытаешься положить двигатель в багажник и удивляешься почему запорожец не едет

anonymous ()
Ответ на: комментарий от anonymous

Надо чтоб работал внешний адаптер wifi на android,и поэтому я скачал с гитхаба эти дрова которые у меня прекрасно работают на Ubuntu с этим адаптером, и думал что на Android они тоже встанут.Headers на андроиде не могу поставить, пишет что типо нет /lib/modules/3.18.31-Paranoid/build.Вот и думаю что делать.

Roman678 ()

как у вас получилось это сделать, расскажете?

Bkolin ()

Как написали выше, нужны исходники ядра, взять можно отсюда - https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.18.31.tar.gz.
Но ещё будет нужен конфиг ядра, его можно взять из /proc/config.gz, если такая функция включена в работающем ядре. Ну и не плохо бы знать, что за железка и откуда именно скачаны дрова.

AbbaT ()
Последнее исправление: AbbaT (всего исправлений: 1)

Android не является дистрибутивом, там нет пакетов, он собирается сразу целиком под конкретное устройство. Не предполагается, что кто-то будет там собирать модули ядра, поэтому заголовков ядра нет, за ненадобностью.

Другими словами, простого решения твоей проблемы нет. Нужно искать исходники под твой телефон, вкорячивать в них нужный драйвер и собирать заново.

i-rinat ★★★★★ ()
Ответ на: комментарий от olesz

Например, если родной адаптер работает только в g.

AbbaT ()

Забей, или пересобирай ядро целиком. Нельзя вот так просто взять и из левых исходников собрать драйвер под своё ядро. Даже если версия хидеров совпадает с ядром.

sergej ★★★★★ ()
Ответ на: комментарий от AbbaT

Ядро собрал сам из этого исходника https://github.com/sunnyraj84348/android_kernel_xiaomi_msm8917 -b cm14.1

драйвер пытаюсь собрать этот https://github.com/kimocoder/rtl8188eus

Есть какой то способ собрать его в исходнике, потом собрать ядро уже с этим драйвером?

Roman678 ()
Ответ на: комментарий от AbbaT

/proc/config.gz такого файла я не нашел у себя

Что это за файл, за что он отвечает?

Roman678 ()
Ответ на: комментарий от Roman678

Собираешь ядро. В директории с драйвером запускаешь

make -C <path_to_kernel_src> M=$PWD

Где-то там у тебя получится .ko файл. Кладёшь его туда, где остальные модули лежат.

i-rinat ★★★★★ ()
Ответ на: комментарий от Roman678

Я вообще писал просто про ядро, потому что не знаю, как под Android оно пакуется.

Я сейчас подумал — там наверняка ядро собирается с поддержкой модулей, потому что наверняка драйвера вендоров оформлены именно модулями, а не собраны монолитом. Если это так, то в сборочной системе Android’а должна быть возможность положить исходники в специальное место, откуда их сборка подхватит. Нужно только это место найти.

i-rinat ★★★★★ ()
Ответ на: комментарий от Roman678

нужно в boot закинуть модуль.

Ядро самосборное сейчас на устройстве? boot (или как там в сяоми оно называется) умеешь пересобирать?

kickass ()
Ответ на: комментарий от AbbaT

Я собрал ядро без драйвера, пробовал включить поддержку нужного чипсета адаптера, но его нет в списке там.Сейчас да, на ядре самосборном

Roman678 ()
Ответ на: комментарий от kickass

Можете обобщить информацию, а то как то все разбросано, что в итоге мне нужно сделать для получения результата?

Roman678 ()
Ответ на: комментарий от Roman678

ядро на компе собирал если, то попробуй

make ARCH=arm64 CROSS_COMPILE= -C /путь/где/собирал/ядро M=/путь/где/исходники/rtl8188eus modules

kickass ()
Ответ на: комментарий от kickass

ввел

 make ARCH=arm64 CROSS_COMPILE= -C /home/roman/папка с исходником ядра/ M=/home/roman/rtl8188eus(папка где лежит драйвер) modules 

выдало

 make: вход в каталог «/home/pavel/neth/android_kernel_xiaomi_msm8917-cm-14.1»

  ERROR: Kernel configuration is invalid.
         include/generated/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.


  WARNING: Symbol version dump ./Module.symvers
           is missing; modules will have no dependencies and modversions.

  Building modules, stage 2.
scripts/Makefile.modpost:42: include/config/auto.conf: Нет такого файла или каталога
make[1]: *** Нет правила для сборки цели «include/config/auto.conf».  Останов.
Makefile:1402: recipe for target 'modules' failed
make: *** [modules] Error 2
make: выход из каталога «/home/pavel/neth/android_kernel_xiaomi_msm8917-cm-14.1» 

Что я сделал не так?

Roman678 ()
Ответ на: комментарий от Roman678

запустил make oldconfig && make prepare

выдал типо нет /toolchain64/toocchain64/какого то файла, тулчейн что ли кривой попробую другой найти

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