LINUX.ORG.RU

Компиляция модуля ядра под arch linux

 , , ,


0

1

Здравствуйте! Пытался научиться разработке модулей ядра по книге Олега Цилюрика «Разработка модулей ядра Linux». Сразу же столкнулся с проблемой - собранный модуль не хочет загружаться.

$ insmod md1.ko
insmod: ERROR: could not insert module md1.ko: Invalid module format
$ modprobe md1.ko
$ dmesg | tail -1
[188270.664792] md1: no symbol version for module_layout
Нагуглил, что это может быть из за несовместимости версий ядра. Мое ядро:
$ uname -r
3.15.8-1-ARCH
Исходники для компиляции качал с kernel.org. Версия 3.15.8. Конфиг выкачал из текущего ядра и кинул в каталог с исходниками. Но там релиз не "-1-ARCH", а "-ARCH". Что, собственно, мы и замечаем в собранном модуле в графе vermagic:
$ modinfo md1.ko
filename:       /root/my_module/md1.ko
version:        3.15.8-1-ARCH
author:         Oleg Tsiliuric <olej@front.ru>
license:        GPL
srcversion:     5E2EE73E2DB63255874264A
depends:        
vermagic:       3.15.8-ARCH SMP preempt mod_unload modversions
Есть ли возможность писать модули для текущего арчевского ядра, или они подгрузятся только в заново скомпилированное?


cd /root/my_module
make -C /lib/modules/`uname -r`/build M=$(pwd)

ЕМНИП

false ★★★★★
()
pacman -S linux-headers

Оно в /usr/lib/modules/`uname -r` поставит все что нужно для сборки модуля.

Только сейчас в арче 3.16.1-1

naszar
()
Последнее исправление: naszar (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.