Это не ошибка, это особенность.
Как говорит Энтони Вонг, когда вы устанавливаете пакет DKMS, вы сами его компилируете, поэтому Canonical не может подписать этот модуль за вас.
Тем не менее, вы можете определенно использовать Secure Boot, однако именно в этом случае Secure Boot пытается защитить вас от себя, потому что он не может знать, доверяете ли вы модулю или нет.
По умолчанию на вашей машине UEFI есть ключ платформы (PK), который является в конечном итоге доверенным центром сертификации для загрузки кода в ваш процессор.
GRUB, или shim, или другие загрузочные механизмы могут быть подписаны цифровой подписью KEK, которому доверяет корневой CA (PK), и, таким образом, ваш компьютер может без какой-либо конфигурации загружать программное обеспечение, такое как Ubuntu Live USB / DVD.
В Ubuntu 16.04 ядро построено с CONFIG_MODULE_SIG_FORCE = 1, что означает, что ядро принудительно заставит модули подписываться доверенным ключом в платформе. Примите во внимание, что платформа UEFI по умолчанию содержит PK, который вы не можете контролировать, и поэтому вы не можете подписывать двоичные файлы с помощью ключа, распознаваемого вашей собственной машиной.
Некоторые люди кричат на это, но на самом деле нет лучшего способа (с точки зрения безопасности), чем вы сами, регистрируете новый ключ, который вы хотите.
Если ваша загрузочная система использует shim, вы можете использовать нечто, называемое базой данных ключей владельца машины, и зарегистрировать свой ключ как MOK (вы можете сделать это с помощью mokutil). Если вы этого не сделаете, вы также можете зарегистрировать свой ключ в базе данных UEFI в качестве ключа подписи.
После того, как вы зарегистрируете свой ключ, вы можете подписать пакет, созданный DKMS, с помощью своего MOK (там должен быть скрипт perl /usr/src/kernels/$(uname -r)/scripts/sign-file
), и после того, как он будет подписан, вы можете загрузить его в ядро .
Конечно, кто-то должен дать больше наглядных инструкций по этому вопросу и, возможно, даже создать мастера или лучший стандарт DKMS, чтобы позволить учитывать ключи, но это то, что мы имеем на данный момент.
Вы можете обратиться к этому объяснению о том, как подписывать свои собственные модули ядра: https://askubuntu.com/a/768310/12049