Вы должны иметь возможность обновить часть sed вашей команды до этой без реструктуризации чего-либо еще:
sed -r 's/^.*: +([[:digit:]]+).* +[(].*$/\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
вывод :, он может содержать более конкретное сообщение об ошибке. В этом случае это, вероятно, указывает на то, что подпись модуля не прошла проверку достоверности.