@emashev

Как правильно собрать модуль ядра под armv7?

Есть древняя тв приставка на android 4.2.2, решил сделать из нее консоль для ретро игр. В запасе куча китайских гемпадов, которые определяются как VID:PID 0079:0006 . Но в моем ядре на этой приставке нет модуля под них.
Нашел железку с таким же процессором A20, версией ядра и версией android. Так же там была инструкция как этот драйвер скомпилировать. Скачал исходники, запустил сборку с параметрами для кросскомпиляции:
./build.sh -p sun7i_android
Модуль собрался, закинул я его на приставку - а там фиаско:
1|root@android:/system/vendor/modules # insmod hid-dr.ko                                                                                                                   
insmod: can't insert 'hid-dr.ko': invalid module format

В dmesg:
[15483.755630] hid_dr: disagrees about version of symbol module_layout


На приставке ядро
root@android:/system/vendor/modules # uname -r                                                                                                                             
3.4.39+


У меня в исходниках 3.4.39, в Makefile исправил SUBLEVEL на 39+ и пересобрал.
Все равно фиаско.

Скачал уже пару скомпиленных модулей с приставки и сравнил с моим:

Вот с приставки:
root@6ef91ccf2081:/temp/1# modinfo hi704.ko  
filename:       hi704.ko
license:        GPL
description:    A low-level driver for Hynix HI704 sensors
author:         raymonxiu
srcversion:     D520B3B57CDA80DAE6AC278
alias:          i2c:hi704
depends:        
intree:         Y
vermagic:       3.4.39+ SMP preempt mod_unload modversions ARMv7 p2v8


Вот мой:

root@6ef91ccf2081:/temp/1# modinfo hid-dr.ko 
filename:       hid-dr.ko
license:        GPL
srcversion:     633B2932308A266BBE5C934
alias:          hid:b0003v00000079p00000011
alias:          hid:b0003v00000079p00000006
depends:        
intree:         Y
vermagic:       3.4.39+ SMP preempt mod_unload modversions ARMv7 p2v8


Разницы никакой. Может в как-то можно обойти проверку на несоответствие модуля версии ядра?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
@emashev Автор вопроса
отвечу сам, получилось собрать без ругани на insmod. Я взял конфиг с приставки в /proc/config.gz
и там подредактировал сборку модуля. Собрал с этим конфигом, а не с arch/arm/ и insmod не ругался больше.
Возможно кому-нибудь поможет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы