Це не помилка, це особливість.
Як каже Ентоні Вонг, коли ви встановлюєте пакет 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 за замовчуванням містить ПК, над яким ви не маєте ніякого контролю, і тому ви не можете підписувати бінарні файли ключем, розпізнаваним вашою власною машиною.
Деякі люди б'ються і зловживають проти цього, але насправді немає кращого способу (з точки зору безпеки), ніж саме ви записуєте новий ключ, який ви хочете.
Якщо ваша завантажувальна система використовує shim, ви можете використовувати щось, що називається база даних ключа власника машини, і записати свій ключ як MOK (Ви можете це зробити за допомогою mokutil). Якщо цього немає, ви також можете записати свій ключ до бази даних UEFI як ключ підписання.
Після того, як ви зареєструєте свій ключ, ви можете підписати пакет, створений DKMS, за допомогою MOK (у ньому повинен бути сценарій perl /usr/src/kernels/$(uname -r)/scripts/sign-file
), і після його підписання ви можете завантажити його в ядро .
Зрозуміло, хтось повинен зробити більш наочні вказівки з цього приводу, і, мабуть, навіть зробити майстра або кращого стандарту DKMS, щоб дозволити брати до уваги ключі, але це те, що ми маємо на даний момент.
Ви можете звернутися до цього пояснення щодо того, як підписати власні модулі ядра: https://askubuntu.com/a/768310/12049