При установке 16.04 меня попросили отключить « Безопасную загрузку », если я хочу установить сторонние модули / драйверы .
Я не подчинялся.
И когда я установил вручную только те драйверы сторонних производителей, которые я использую ( bcmwl-kernel-source ), меня снова попросили (во время установки пакета) отключить «Безопасную загрузку».
Использовать bcmwl-kernel-source было совершенно нормально с Secure Boot в 15.10 . Это не связано с ошибкой для меня.
Так что похоже, что Ubuntu отказывается подписывать сторонние драйверы / модули, чтобы заставить его работать (??) с «Безопасной загрузкой». Или кажется, что сторонние модули считаются небезопасными и нарушают «безопасную загрузку», следовательно, сообщают об отключении, чтобы прояснить ситуацию? Я прав ?
источник
Ответы:
Это не ошибка, это особенность.
Как говорит Энтони Вонг, когда вы устанавливаете пакет 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
источник
Короче говоря, это не ошибка, а новое изменение, появившееся в 16.04.
Потому что вы устанавливаете пакет dkms. Модули DKMS скомпилированы на вашем собственном компьютере, поэтому Canonical не может подписать этот модуль за вас. Если Canonical не может подписать его, нет никакой возможности проверить это в цифровой форме. Если у вас включена безопасная загрузка, это будет означать, что ваш модуль не может быть использован, и для его использования вам придется отключить безопасную загрузку, поэтому вам задают вопрос.
Почему это произошло только в 16.04, а не в предыдущих выпусках, Род Смит дал хороший ответ. В Ubuntu 16.04 Ubuntu начинает обеспечивать безопасную загрузку до уровня ядра. До 16.04 Ubuntu на самом деле не заставляла вас использовать подписанное ядро и подписанные модули ядра, даже если у вас включена защищенная загрузка. Но это больше не относится к 16.04.
Это связанная ошибка: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532
Это соответствующий проект: https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-install-unsigned-secureboot
источник
Другой способ сделать это - создать свой собственный ключ, вставить открытую часть в базу данных MOK и подписать модули, которые вы компилируете, с частной частью. Посмотрите здесь для получения подробной информации: Не удалось загрузить vboxdrv после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку)
источник
Принятый ответ очень полный, но я хотел бы добавить эту простую информацию, взятую отсюда:
https://askubuntu.com/a/843678/664391
По сути, безопасная загрузка может помешать загрузке установленного вами драйвера, что может быть довольно неприятно. Я сам прошел через это: драйвер установлен правильно, все вроде бы хорошо, но это просто не сработало. Мне потребовалось некоторое время, чтобы найти, что это была безопасная загрузка , препятствующая загрузке ОС.
источник