LINUX.ORG.RU

Проблема с сборкой модуля.


0

1

Добрый день. Пытаюсь скомпилить модуль для ядра 2,6,30 для дистра Mandriva. При попытке компиляции make -C /usr/src/kernel-linus-`uname -r` SUBDIRS=$PWD
Выдаётся данная ошибка:

make: Entering directory `/usr/src/kernel-linus-2.6.30-2mdv'

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


  WARNING: Symbol version dump /usr/src/kernel-linus-2.6.30-2mdv/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /home/test/module.o
/home/test/module.c:1: ошибка: модель кодирования kernel не поддерживается в 32-битном режиме
/home/test/module.c:1: пока не реализовано: 64-битный режим не компилируется в
make[1]: *** [/home/test/module.o] Ошибка 1
make: *** [_module_/home/test/module] Ошибка 2
make: Leaving directory `/usr/src/kernel-linus-2.6.30-2mdv'


Как откомпилировать модуль?

Перемещено JB из Development

Deleted

У тебя ядро сконфигурено или ты просто сорцы распаковал?

Pavval ★★★★★
()

make -C /usr/src/kernel-linux-`uname -r` SUBDIRS=$PWD должно помочь

SlothSpot
()

> Run 'make oldconfig && make prepare' on kernel src to fix it.

тебе же английским по-черному пишут, что сделать надо

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

Pavval - просто сорцы рапаковал )
ananas - зашёл в папку с исходниками, там сделал make oldconfig && make prepare и теперь компиляция вроде как запускается нормально.
Если можно, поясните мне смысл этой команды и что от неё изменяется, что происходит вообще?

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

что происходит вообще?


Ты установил Linux =)

Кстати, есть вероятность, очень сильно отличающаяся от 0, что модуль твой скомпилируется, но не запустится. Ты где сорцы ядра взял и что у тебя за дистрибутив?

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

Дистр Mandriva 2009 , исходиники через их установщик пакетов скачал.
Сейчас повнимательней вывод компиляции посмотрел, вот какая ошибка.

Building modules, stage 2.
  MODPOST 1 modules
/bin/sh: scripts/mod/modpost: Нет такого файла или каталога
make[1]: *** [__modpost] Ошибка 127
make: *** [modules] Ошибка 2
make: Leaving directory `/usr/src/kernel-linus-2.6.30-2mdv'

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

Проблема решена) мне просто тупить не надо было. Сорцы для компиляции были в папке kernel-linus-devel-2.6.30-2mdv а не kernel-linus-2.6.30-2mdv

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

make prepare необходим, чтобы создались необходимые хидеры, типа autoconf.h, с которых содержится информация о конфигурации ядра

ananas ★★★★★
()

Появилась ещё одна проблема, компилирую модуль для 2,6,27
И при компиляции выдаётся ошибка.
include/linux/mmzone.h:18:26 error: linux/bounds.h: Нет такого файла или каталога
include/linux/mmzone.h:256:5 warning: «MAX_NR_ZONES» is not defined
include/linux/mmzone.h:277: ошибкаЖ 'MAX_NR_ZONES' не описан в этой области видимости (не в функции)
include/linux/mm.h:443:63 warning: «NR_PAGEFLAGS» is not defined
Поискал данные константы в исходниках ядра, вроде как в коде используются, но не вижу где они определены.
Как мне справится с этой проблемой?

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