По предложению пользователя @zwets, я копирую (с правками) ответ здесь:
Начиная с версии ядра 4.4.0-20 было принудительно запрещено запускать неподписанные модули ядра с включенной безопасной загрузкой. Если вы хотите сохранить Secure Boot, а также запустить эти модули, то следующий логический шаг - подписать эти модули.
Итак, давайте попробуем это.
Создать ключи подписи
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
Подпишите модуль
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /path/to/module
Примечание 1. Для одного драйвера / модуля /path/to/moduleможет быть подписано несколько файлов, поэтому может потребоваться заменить их $(modinfo -n <modulename>), например,$(modinfo -n vboxdrv)
Примечание 2 : sudo kmodsign sha512 ./MOK.priv ./MOK.der /path/to/moduleявляется альтернативой, если sign-fileне доступно.
Зарегистрируйте ключи для безопасной загрузки
sudo mokutil --import MOK.der
Введите пароль для последующего использования после перезагрузки
Rebootи следуйте инструкциям, чтобы зарегистрировать MOK (ключ владельца машины). Вот образец с картинками. Система перезагрузится еще раз.
Если ключ был зарегистрирован правильно, он будет отображаться под sudo mokutil --list-enrolled.
Пожалуйста, дайте мне знать, будут ли ваши модули работать таким образом в Ubuntu 16.04 (на ядре 4.4.0-21, я считаю).
Ресурсы: Подробная статья на сайте для реализации подписания модулей в Fedora и Ubuntu . (они работали над этим) ;-)
Дополнительный ресурс: я создавал bash-скрипт для собственного использования каждый раз при virtualbox-dkmsобновлении и, таким образом, переписывал подписанные модули. Проверьте мой vboxsignпервоначально на GitHub .
Дополнительное примечание для безопасности (экстра) сознательно: ;-)
Поскольку созданный вами закрытый ключ ( MOK.privв этом примере) может использовать любой, кто имеет к нему доступ, рекомендуется сохранить его в безопасности. Вы можете chmodэто сделать, зашифровать ( gpg) или сохранить в другом безопасном месте (r). Или, как отмечено в этом комментарии , удалите параметр -nodesв шаге 1. Это зашифрует ключ с помощью ключевой фразы.