當前位置:編程學習大全網 - 網站源碼 - 內核 lockdown 導致驅動無法加載的解決方法

內核 lockdown 導致驅動無法加載的解決方法

由於 linux 內核升級了 lockdown 功能,導致簽名驗證不過的內核模塊在安裝時會報:

insmod: ERROR: could not insert module xxxxxxxx.ko: Operation not permitted

dmesg | grep secureboot

dmesg | grep lockdown

會打印相應的 lockdown 開啟顯示信息

將生成的密鑰和證書改名為: signing_key.x509 和 signing_key.priv 放到 Linux kernel 源碼根目錄。

使用新編譯的 kernel 重啟系統後,使用如下命令查看已生效的簽名證書:

dmesg | grep MODSIGN

會顯示類似如下信息:

[ 2.450021] MODSIGN: Loaded cert 'GenFic: Kernel Signing Key: b923a5f44eae25bbad52c8bf2742e7b7e6fb0c0e'

可以將模塊與內核壹同編譯,也可以以後單獨編譯,單獨編譯完的模塊要用下面的命令對模塊進行簽名:

/usr/src/linux-headers-5.3.0-51-generic/scripts/sign-file sha512 /home/yangyuqi/ko_sign_key/private_key.priv /home/yangyuqi/ko_sign_key/public_key.der xxxxxxxx.ko

可以使用如下命令查看是否簽名已添加到模塊:

hexdump -C hello.ko | tail

可以使用如下命令移除簽名:

strip --strip-debug hello.ko

  • 上一篇:人工智能視覺風暴流
  • 下一篇:CANON iR2016的網絡打印怎麽設置
  • copyright 2024編程學習大全網