Linux系統安裝驅動過程中ko文件加載錯誤(Required key not available)的解決辦法

Linux系統安裝驅動過程中ko文件加載錯誤(Required key not available)的解決辦法

問題描述

在Ubuntu上使用CP210x USB轉UART設備時需要安裝驅動程序(CP210x USB to UART Bridge VCP Drivers),安裝驅動過程中cp210x.ko文件已經編譯成功,但使用命令

 insmod /lib/modules/4.15.0-43-generic/kernel/drivers/usb/serial/usbserial.ko

加載usbserial模塊時報錯:

Required key not available

開發環境

操作系統:Ubuntu 18.04
Linux內核版本:4.15.0-43-generic
使用命令 $uname -a查看系統環境,得到如下結果:
在這裏插入圖片描述
另附:CP210x驅動下載地址:https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
關於該驅動的詳細安裝教程,請參考上述官網說明.

解決步驟

1.首先,對於Ubuntu系統,可以使用如下命令安裝 mokutil工具:

 $sudo apt-get install mokutil

2.然後任意目錄下,創建一個生成證書的參數配置文件 x509-configuration.ini,配置文件內容如下:

[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts
[ req_distinguished_name ]
O = YOUR_USERNAME
CN = YOUR_USERNAME
emailAddress = YOUR_EMAIL_ADDRESS
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid

3.在該目錄下調用openssl命令, 生成public_key.der 和 private_key.priv文件。其中public_key.der是證書:

$sudo openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config x509-configuration.ini -outform DER -out public_key.der -keyout private_key.priv
  1. 用mokutil 命令把證書public_key.der放進數據庫mokdb裏:
$mokutil --import  public_key.der

當提示輸入密碼時,需要輸入root用戶的密碼,若默認未創建root用戶密碼,則需要通過下面的命令設置新的root密碼:

$sudo passwd

上述步驟執行完畢後,輸入reboot命令重啓計算機即可。

注意!重啓過程中也需要輸入上述root用戶密碼。 另外,mokutil具有保護機制,若root用戶密碼連續輸錯兩次以上,則需要重啓計算機重新輸入。

5.給模塊賦予簽名
重啓計算機後,使用形式如下的命令給加載錯誤的模塊賦予簽名,例如:

$/usr/src/4.15.0-43-generic/scripts/sign-file sha256 private_key.priv public_key.der  /lib/modules/4.15.0-43-generic/kernel/drivers/usb/serial/usbserial.ko

隨後,重新加載該模塊:

$insmod /lib/modules/4.15.0-43-generic/kernel/drivers/usb/serial/usbserial.ko

即可成功加載.大功告成!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章