นี่ไม่ใช่ข้อผิดพลาดมันเป็นคุณสมบัติ
Anthony Wong กล่าวว่าเมื่อคุณติดตั้งแพคเกจ DKMS คุณกำลังรวบรวมแพ็คเกจด้วยตัวคุณเอง Canonical ไม่สามารถเซ็นโมดูลให้คุณได้
อย่างไรก็ตามคุณสามารถใช้ Secure Boot ได้อย่างแน่นอนอย่างไรก็ตามนี่เป็นกรณีการใช้งานที่ Secure Boot พยายามปกป้องคุณจากตัวคุณเองเพราะไม่ทราบว่าคุณเชื่อถือโมดูลหรือไม่
ตามค่าเริ่มต้นจะมีรหัสแพลตฟอร์ม (PK) บนเครื่อง UEFI ของคุณซึ่งเป็นผู้ออกใบรับรองที่เชื่อถือได้ในที่สุดสำหรับการโหลดรหัสในโปรเซสเซอร์ของคุณ
GRUB หรือ shim หรือกลไกการบูตอื่น ๆสามารถลงนามแบบดิจิทัลโดย KEK ซึ่งเชื่อถือได้โดย root CA (PK) และทำให้คอมพิวเตอร์ของคุณสามารถทำได้โดยไม่ต้องมีการกำหนดค่าใด ๆ ซอฟต์แวร์บูตเช่น Ubuntu Live USB / DVD
ใน Ubuntu 16.04 เคอร์เนลถูกสร้างขึ้นด้วย CONFIG_MODULE_SIG_FORCE = 1 ซึ่งหมายความว่าเคอร์เนลจะบังคับใช้โมดูลที่จะลงนามโดยคีย์ที่เชื่อถือได้ในแพลตฟอร์ม พิจารณาว่าแพลตฟอร์ม UEFI เป็นค่าเริ่มต้นประกอบด้วย PK ที่คุณไม่สามารถควบคุมได้และดังนั้นคุณจึงไม่สามารถลงชื่อไบนารีด้วยคีย์ที่เป็นที่รู้จักโดยเครื่องของคุณเอง
บางคนทุบตีและพูดจาโผงผางต่อสิ่งนั้น แต่ไม่มีทางไหนที่ดีกว่า (จากจุดยืนด้านความปลอดภัย) กว่าตัวคุณเองที่ลงทะเบียนรหัสใหม่ที่คุณต้องการ
หากระบบบูตของคุณใช้ชิมคุณสามารถใช้สิ่งที่เรียกว่าฐานข้อมูลเจ้าของเครื่องและลงทะเบียนคีย์ของคุณเป็น MOK (คุณสามารถทำได้ด้วย mokutil) หากไม่เป็นเช่นนั้นคุณสามารถลงทะเบียนรหัสของคุณในฐานข้อมูล UEFIเป็นรหัสลงนามได้
หลังจากที่คุณลงทะเบียนคีย์แล้วคุณสามารถลงนามแพ็คเกจที่สร้างโดย DKMS ด้วย MOK ของคุณ (ควรมีสคริปต์ Perl ที่/usr/src/kernels/$(uname -r)/scripts/sign-file
) และหลังจากที่ลงชื่อแล้วคุณสามารถโหลดลงในเคอร์เนลได้
จริงอยู่ที่ใครบางคนควรทำตามคำแนะนำที่เห็นได้ชัดในเรื่องนี้และอาจสร้างตัวช่วยสร้างหรือมาตรฐาน DKMS ที่ดีกว่าเพื่อให้สามารถนำกุญแจมาพิจารณาได้ แต่นี่คือสิ่งที่เรามีอยู่ในตอนนี้
คุณสามารถอ้างถึงคำอธิบายนี้เกี่ยวกับวิธีลงชื่อโมดูลเคอร์เนลของคุณเอง: https://askubuntu.com/a/768310/12049