Автор Тема: Как собрать модуль ядра?  (Прочитано 3408 раз)

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Как собрать модуль ядра?
« : 02.10.2012 22:46:39 »
Добрый день!
Пытаюсь собрать модуль из пакета kernel-source-svgalib_helper.
Он нужен для работы с модулем graph из freepascal.
Установил этот пакет, распаковал архив с исходниками.
Исправил Makefile так, как написано здесь: http://www.altlinux.org/%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9_%D1%8F%D0%B4%D1%80%D0%B0
Все равно получаю ошибку об отсутствии файла linux/config.h.
Пытался даже от root собирать - то же самое.
[root@father kernel-source-svgalib_helper-1.9.25]# make
make -C /usr/src/linux-3.0.42-std-def SUBDIRS=/usr/src/kernel/sources/kernel-source-svgalib_helper-1.9.25 CLASS_CFLAGS= modules
make[1]: Entering directory `/usr/src/linux-3.0.42-std-def-alt0.M60P.1'
  CC [M]  /usr/src/kernel/sources/kernel-source-svgalib_helper-1.9.25/main.o
/usr/src/kernel/sources/kernel-source-svgalib_helper-1.9.25/main.c:1:26: fatal error: linux/config.h: Нет такого файла или каталога
compilation terminated.
make[2]: *** [/usr/src/kernel/sources/kernel-source-svgalib_helper-1.9.25/main.o] Ошибка 1
make[1]: *** [_module_/usr/src/kernel/sources/kernel-source-svgalib_helper-1.9.25] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-3.0.42-std-def-alt0.M60P.1'
make: *** [default] Ошибка 2

Подскажите, ЧЯДНТ, как собрать модуль?

Научить нельзя, научиться можно.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 351
Re: Как собрать модуль ядра?
« Ответ #1 : 03.10.2012 00:47:10 »
А где, по ссылке, написано, что надо собирать посредством make, да ещё и от root ? Хотя, в одном маленьком абзаце там make упоминается...  На самом деле, это инструкция для имеющих доступ git.alt.

Последний раз модуль собирался очень давно для старого ядра:
http://packages.altlinux.org/en/Platform5/srpms/kernel-modules-svgalib_helper-ovz-rhel
В любом случае, начать лучше с этого src.rpm.

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Re: Как собрать модуль ядра?
« Ответ #2 : 03.10.2012 08:37:31 »
А где, по ссылке, написано, что надо собирать посредством make, да ещё и от root ? Хотя, в одном маленьком абзаце там make упоминается...  На самом деле, это инструкция для имеющих доступ git.alt.

Последний раз модуль собирался очень давно для старого ядра:
http://packages.altlinux.org/en/Platform5/srpms/kernel-modules-svgalib_helper-ovz-rhel
В любом случае, начать лучше с этого src.rpm.

Вот тут и написано:

Сборка

...

Для того, чтобы обойти эту проблему, нужно переопределить переменную (обычно KERNELSOURCE или KSRC) в Makefile. Далее запускаем сборку, например make KSRC=/usr/src/linux-2.6.25-std-def. Обычно модуль после этого собирается.

Собранный модуль можно попробовать загрузить с помощью insmod, или положить его к другим модулям ядра в /lib/modules/<kernelversion> и загрузить modprobe. Если модуль загрузился и работает, то можно переходить к следующей части.

Вот! К какой следующей части переходить, если модуль не собирается при помощи make? Он вообще на 3.0.х ядрах будет работать?
Доступа к  git.alt у меня, естественно нет.

Посоветуйте документацию, связанную со сборкой src.rpm, пожалуйста.
Научить нельзя, научиться можно.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 351
Re: Как собрать модуль ядра?
« Ответ #3 : 03.10.2012 10:08:01 »
Он вообще на 3.0.х ядрах будет работать?
Посоветуйте документацию, связанную со сборкой src.rpm, пожалуйста.
Вот на эти два вопроса я ответа не знаю. В кратце, по второму, так. Ставите src.rpm от пользователя, при этом, у Вас уже должны быть установлены пакеты rpm-build и rpm-build-kernel. Наверное, ещё rpm-build-licenses надо. Далее, смотрите в ~/RPM/SPECS в соответствующий спек. Правите, что увидите. Как минимум, это будут kversion, krelease и, возможно, flavour. Далее rpm -bb <спек>. Каких-то пакетов будет не хватать, их доустановить (это уже от root). Если версия модуля поменялась, соответствующие переменные правите тоже. В этом случае не плохо поправить список изменений в нижней части спека. Тут удобно воспользоваться утилитой add_changelog из пакета rpm-utils.
add_changelog <спек>
Это после правок переменных. Далее - как пойдёт. А Вы, кстати, для p6 пробуете собрать ?
« Последнее редактирование: 03.10.2012 10:59:24 от asy »

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Re: Как собрать модуль ядра?
« Ответ #4 : 03.10.2012 20:11:34 »
А Вы, кстати, для p6 пробуете собрать ?
Да. Школьные 6-ки ведь на p6.
В выходные сяду поразбираться.
Научить нельзя, научиться можно.

Оффлайн rotkart

  • Участник
  • *
  • Сообщений: 661
Re: Как собрать модуль ядра?
« Ответ #5 : 05.10.2012 11:48:14 »
Ставите src.rpm от пользователя, при этом, у Вас уже должны быть установлены пакеты rpm-build и rpm-build-kernel. Наверное, ещё rpm-build-licenses надо. Далее, смотрите в ~/RPM/SPECS в соответствующий спек. Правите, что увидите. Как минимум, это будут kversion, krelease и, возможно, flavour. Далее rpm -bb <спек>. Каких-то пакетов будет не хватать, их доустановить (это уже от root). Если версия модуля поменялась, соответствующие переменные правите тоже. В этом случае не плохо поправить список изменений в нижней части спека. Тут удобно воспользоваться утилитой add_changelog из пакета rpm-utils.
add_changelog <спек>
Это после правок переменных. Далее - как пойдёт. А Вы, кстати, для p6 пробуете собрать ?
Решил пока собрать на ядре 2.6.32-el-smp, оно у меня пока основное из-за интерактивной доски.
Не собирается :(
Смотрел в интернете патчи, нашел svgalib-helper-1.25-kernel-2.6.36.patch - он может помочь?
Научить нельзя, научиться можно.