LinuxForum.Fans
Тема

модуль и ядро

Автор: Peter 15 сообщений 1258 просмотров
14.02.2017 20:43 #420327

Здравствуйте!

Скажите, по каким признакам ядро определяет, с ним ли скомпилирован загружаемый модуль или нет?
Конкретно в Astra Linux есть модуль безопасности, его исходный текст недоступен. Я попробовал при
компиляции ядра оставить ту же версию, что и у дистрибутивного, вроде бы это удалось.
Но всё равно оно не позволяет пользователю войти в систему, т.к. не может загрузить этот модуль.
Но вообще, в любой Linux, как это определяется?

Пётр.

14.02.2017 22:08 #420333

Что говорит [highlight=black]modinfo /path/to/module.ko[/highlight]? А вообще, см. depmod(8).

15.02.2017 09:11 #420348

Вот вывод modinfo:
[console]
filename: /lib/modules/3.2.0-27-generic/misc/parsec.ko
license: Commercial
srcversion: 211C0DFC7E111EB2B579B4F
depends:
vermagic: 3.2.0-27-generic SMP mod_unload modversions
parm: enabled:enable or disable PARSEC (uint)
[/console]

15.02.2017 16:11 #420381

А какое ядро используется? 3.2.0?

15.02.2017 16:39 #420382

Это вывод для дистрибутивного модуля, дистрибутивное ядро называется 3.2.0-27-generic,
скомпилированное собрано с этим же именем в Makefile в корне исходного кода,
CONFIG_VERSION_SIGNATURE и version в deb-пакетах совпадают.

Пётр.

15.02.2017 20:38 #420385

Хм. Ну, вообще, модуль для другого ядра может и не грузиться (и с очень большой вероятностью не будет грузиться), потому что у ядра и модуля несовместимы ABI. Но если вы думаете, что ABI все-таки совместимы, но модуль не грузится из-за несовпадения строки "vermagic", вшитой в модуль, можно попробовать [highlight=black]# modprobe --force-vermagic parsec[/highlight]. Но это без гарантий. Положите модуль по пути /lib/modules/`uname -r`/misc/, затем выполните [highlight=black]# depmod -a[/highlight], затем пробуйте загрузить модуль командой выше, затем смотрите в dmesg результаты.
И да, арчвики -- весьма толковое чтиво.

16.02.2017 00:38 #420389

Модуль именно там и находится и "depmod -a" для него делалось.
Насчёт ABI я ничего не думаю, т.к. не знаю, что это, хотя когда-то пытался смотреть.
Как я представляю, модуль грузится не во время загрузки системы, а когда пользователь
пытается войти, т.е. само ядро грузится. В auth.log при этом именно сообщение, что
parsec.ko не загрузился.

Пётр.

16.02.2017 09:09 #420396

Оказалось, что в пакетах со скомпилированным ядром в /boot вообще нет abi-файла,
и в Astra 1.3 и в 1.4. А как он создаётся и возможно ли построить его отдельной командой?

Пётр.

16.02.2017 10:45 #420402

Какой еще abi-файл? ABI -- это нечто совершенно другое. Так что, если ABI несовместим, похоже, придется писать модуль-привязку...

16.02.2017 11:11 #420404

Действительно, это совершенно другое, но всё же в пакете с дистрибутивным ядром в /boot
есть abi-файл, а в пакете со скомпилированным - нет. Написать его самому - абсолютно
не вариант, я же не разработчик Astra и не знаю того, что для этого надо. Да и вообще
я модулей ядра никогда не писал.

Пётр.

09.03.2017 20:17 #421058
"Peter" написал:
Скажите, по каким признакам ядро определяет, с ним ли скомпилирован загружаемый модуль или нет?

Практикум по Linux Kernel
Соответствие модуля ядру тупо определяется по текстовой сигнатуре (наименованию) ядра - переименуйте ядро при сборке, и все модули окажутся неприемлемыми.

09.03.2017 20:26 #421060
Olej написал:
[quote="Peter"]Скажите, по каким признакам ядро определяет, с ним ли скомпилирован загружаемый модуль или нет?

Практикум по Linux Kernel
Соответствие модуля ядру тупо определяется по текстовой сигнатуре (наименованию) ядра - переименуйте ядро при сборке, и все модули окажутся неприемлемыми.[/quote]
Я пробовал перед компилированием назвать ядро так же, как и дистрибутивное,
и внутри deb-пакета с ним в INFO и в control было то же название, но это не помогло,
всё равно не принимает дистрибутивный модуль.

Пётр.

09.03.2017 20:29 #421061
"Peter" написал:
но это не помогло,

Вы просто делаете что-то не так *CRAZY*

09.03.2017 20:59 #421068

Olej, а можете привести последовательность действий, которая даст положительный результат?

09.03.2017 21:02 #421069
"yars" написал:
а можете привести последовательность действий, которая даст положительный результат?

Я вам показывал книжку, в >400 стр. Office, >5 лет практической работы, проверок и развития ... которая даёт положительный результат.
Что ещё надо?

Войдите или зарегистрируйтесь, чтобы ответить.