Как создать совместимый модуль драйвера Android (.ko) для встроенного Linux AOSP? В настоящее время я получаю ошибку INSAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как создать совместимый модуль драйвера Android (.ko) для встроенного Linux AOSP? В настоящее время я получаю ошибку INS

Сообщение Anonymous »

Я пытался создать совместимые модули Android (.ko) для моей целевой платформы: STM32MP25F7-EV1 . Запускает OpenStStdroid Distribution, модифицированную версию AOSP. Я успешно построил желаемый модуль USB Bluetooth (

Код: Выделить всё

btusb.ko
), but I cannot enable it with the insmod command because it's incompatible with the target platform's kernel.
Platform Info
Target Hardware Platform: STM32MP25F7-EV1
Target Operating System: OpenSTDroid Distribution (ST-Android-130.0-2024-07-31) [Wiki Link]
версия целевого ядра : 6.1.78-00024-gf31b8a21afa8
ошибки
, когда я запускаю adb chel /vendor/lib/modules/btusb.ko На целевой платформе вывод ISMOD: Ошибка: не может вставить модуль Btusb.ko: exec Format Error .
Я использует строки btusb.ko | grep vermagic и выглядит так, как будто btusb.ko использует немного отличную версию ядра, чем версия ядра цели (версия ядра (

Код: Выделить всё

6.1.78-00024-ge4076639eb90
для модуля V.S. 6.1.78-00024-GF31B8A21AFA8 для ядра).
Вывод строк Btusb.ko | Grep Vermagic

Код: Выделить всё

vermagic=6.1.78-00024-ge4076639eb90 SMP preempt mod_unload aarch64
__UNIQUE_ID_vermagic330
__UNIQUE_ID_vermagic330
Вывод uname -a на моем целевом устройстве:

Код: Выделить всё

Linux localhost 6.1.78-00024-gf31b8a21afa8 #1 SMP PREEMPT Thu Aug  8 14:17:53 CEST 2024 aarch64 Toybox
Я не уверен, как мой файл btusb.ko может быть другим ядром. Я построил его с помощью каталога исходного кода ядра, найденного в моем каталоге AOSP Root. Вот некоторые сравнения с модулем, который уже был включен на моей целевой платформе.

Код: Выделить всё

btusb.ko: ELF relocatable, 64-bit LSB arm64, static, BuildID=bd9e68e5f0fedd7ea24a14ed717032b101d3c55f, not stripped
Вывод File usbeserial.ko , модуль, который поставлялся с моим AOSP

Код: Выделить всё

usbserial.ko: ELF relocatable, 64-bit LSB arm64, static, BuildID=d3335003475dcc18fac829fb2a4f88deb95cfebe, not stripped
< /code>
Вывод строк usbeserial.ko | Grep Vermagic 
, модуль, который поставлялся с моим AOSP

Код: Выделить всё

vermagic=6.1.78-00024-gf31b8a21afa8 SMP preempt mod_unload modversions aarch64
__UNIQUE_ID_vermagic332
What I've Tried
  • Download OpenSTDroid Distribution (following the wiki linked here).
  • Build OpenSTDroid using the wiki linked here.
  • Set the following environment variables

Код: Выделить всё

export BUILD_TOP=$(pwd) /* AOSP root/top directory */
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export KERNEL_src=${BUILD_TOP}/device/stm/stm32mp2-kernel/linux-stm32mp2​
[*] run ./device/stm/stm32mp2-kernel/source/kload_kernel.sh для загрузки ядра. Параметры. M = Drivers/Bluetooth Modules для успешного построения Btusb.ko .
Запустить ADB -драйверы push/bluetooth/btusb.ko/vendor/lib/modules/
< /ol>
Я не в неправильной папке ядра? Я подтвердил ядро ​​в/Device/STM/STM32MP2-kernel составляет 6.1.78 (так же, как моя целевая платформа). Я неправильно строю модуль? Любое понимание будет полезно.

Подробнее здесь: https://stackoverflow.com/questions/795 ... d-linux-ao
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»