LINUX.ORG.RU

OpenVPN компиляция TUN.ko (bFLT)

 , ,


1

1

Приветствую! Есть железяка ZTE. Нужен на нее драйвер TUN.

Linux version 3.14.12. gcc version 4.8.3

Работает сие чудо под linux-uclibc noMMU(!) Соответственно файлы у него формата BFLT, а не ELF.

При помощи buildroot выбрал kernel, gcc, собрал некоторые утилиты busybox. Работают нормально на железке. Теперь нужно собрать драйвер tun. И тут проблема.

buildroot menuconfig -> kernel выбираю kernel 3.14.12 При этом в настройках тулчейна buildroot как и раньше стоит: ARM, noMMU, Binary format: FLAT (он же bFLT). В конфиге исходников kernel правлю «CONFIG_TUN=m» Собираю модули, ошибок нет. При этом в таргете получается

# file /root/333/target/lib/modules/3.14.12/kernel/drivers/net/tun.ko
/root/333/target/lib/modules/3.14.12/kernel/drivers/net/tun.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), not stripped relocatable, ARM, EABI5 version 1 (SYSV), not stripped

Для примера этот же таргет, эта же сборка

# file /root/333/target/bin/busybox
/root/333/target/bin/busybox: setuid BFLT executable - version 4 ram

Т.е. модули собираются ELF, а не BFLT. Подскажите как собрать BFLT Tun. Желательно из под buildroot


Было

# insmod -f /var/tun.ko
и
# insmod /var/tun.ko
# dmesg
[ ] tun: version magic '3.14.12 mod_unload ARMv7 p2v8 ' should be '3.14.12-zteuc0-rt9+ preempt mod_unload modversions ARMv7 '

Поменял в Makefile ядра

EXTRAVERSION = -zteuc0-rt9+

Не помогло

# insmod -f /var/tun.ko
и
# insmod /var/tun.ko
# dmesg
[ ] tun: disagrees about version of symbol module_layout

config.gz в /proc отсутствует :((( Фиг знает куда теперь копать ((( Может можно как-то отключить проверку совместимости insmod?

doko
() автор топика
Последнее исправление: doko (всего исправлений: 2)
Ответ на: комментарий от doko

можно как-то отключить проверку совместимости insmod?

только если перебирать всё ядро, оно в нём включается

CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_SIG=n
CONFIG_MODULE_SRCVERSION_ALL=n

Как вариант - возможно поможет отключение CONFIG_MODVERSIONS, но это более затратный процесс и всё равно придется всё ядро перебирать, а тогда смысла в этом нет.

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