как подписать мой собственный модуль ядра в Linux?

Вы должны иметь возможность обновить часть sed вашей команды до этой без реструктуризации чего-либо еще:

sed -r 's/^.*: +([[:digit:]]+).* +[(].*$/\1/'
0
28.04.2021, 08:07
1 ответ
module verification failed: signature and/or required key missing - tainting kernel

Это , а не означает, что ваш модуль не загрузился. Все это означает, что любые сообщения ядра об ошибках/панике будут содержать немного информации, указывающей на то, что у вас (или в какой-то момент )был загружен неподписанный модуль. Это сообщение является просто предупреждением, а не ошибкой.

(Но если вы попытаетесь отправить отчет об ошибке ядра, который включает сообщения oops/panic с пометкой taint, вы, скорее всего, получите ответ «пожалуйста, попробуйте сначала воспроизвести ошибку без каких-либо не -стандартных модулей ядра, или покажите исходный код вашего пользовательского модуля, так как он может быть полезен при устранении ошибки». Это, как правило, экономит время разработчиков ядра и сопровождающих дистрибутивов, поскольку люди иногда отправляют отчеты об ошибках, не упоминая, что они пробуют что-то экспериментальное.)

Debian упаковывает утилиту sign-fileв пакет linux-kbuild-<kernel version>. и я считаю, что Ubuntu делает то же самое. Поэтому вам нужно убедиться, что пакет linux-kbuild-5.11установлен. Путь утилиты sign-fileбудет /usr/lib/linux-kbuild-5.11/scripts/sign-file.

Однако, когда безопасная загрузка отключена, shimx64.efiпросто напрямую загрузит настоящий grubx64.efi, минуя все шаги безопасной загрузки, , включая загрузку MOK. Если MOK не загружен, ядро ​​не сможет распознать подпись вашего модуля как действительную. А с отключенной безопасной загрузкой подписанный модуль с недействительной подписью отклоняется, а неподписанные модули получают только предупреждение и пометку о заражении в любых будущих сообщениях oops/panic.

insmod: ERROR: could not insert module hello.ko: Invalid module format

После любого сбоя загрузки модуля ядра вы должны проверить dmesgвывод :, он может содержать более конкретное сообщение об ошибке. В этом случае это, вероятно, указывает на то, что подпись модуля не прошла проверку достоверности.

2
28.04.2021, 22:51

Теги

Похожие вопросы