1. 程式人生 > >核心簽名

核心簽名

1)對於我們自己寫的驅動程式,dmesg中有類似於:

itx3010_J45: module verification failed: signature and/or required key missing - tainting kernel (我們寫的驅動)

是因為3.7以後的核心新增核心簽名機制, 當CONFIG_MODULE_SIG_FORCE=y時,核心將只加載帶有公鑰的合法簽名模組,

現在只能自己往.ko裡添加簽名了,在fedora 21(4.1.13)上新增模組的簽名如下(具體可參考核心下的文件 Documentation/module-signing.txt):

http://192.168.5.253/chentianbao/J1900_Linux_Development_Problem_Sets/uploads/2d71e821e09bd7838b79fd2775fb0713/image.png

查得 系統中的 私鑰檔名為 signing_key.priv,公鑰檔名為 signing_key.x509
在linux核心目錄下執行
./scripts/sign-file sha512 signing_key.priv signing_key.x509 /xxx/xxx.ko


執行一次即可,系統重啟之後便不會有該問題。


對於ubuntu16.04(核心 4.10.0),簽名如下:
在核心目錄下:
./scripts/sign-file sha512 ./certs/signing_key.pem./certs/signing_key.x509 /ur_path/xxx.ko
參考文件 kernel_path/Documentation/admin-guide/module-signing.rst