セキュアブートすると当然ながらサインのないカーネルモジュールは読み込まれません。単純にはサインすればいいのですが、dkmsパッケージをつくるまでもないので直接サインできないものかと思い、mokutil と dkms、それと linux-kbuild に含まれる sign-file コマンドを使うと意外とあっさりモジュールにサインできたので、備忘録として挙げておくことにしました。
以下手順です。
今回は以上です。それでは。
以下手順です。
sudo su
KVER=$(uname -r | cut -d'-' -f1)
apt-get install mokutil dkms linux-kbuild-${KVER}
dkms generate_mok
mokutil --import /var/lib/dkms/mok.pub
input password:
input password again:
# 再起動
reboot
enters MOK manager EFI utility:
1. press any key
2. enroll MOK,
3. continue
4. enroll the key(s)?: yes
5. enter password
6. reboot (再起動)
mokutil --list-enrolled
--snip
X509v3 Subject Key Identifier:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:C3:96:14:01
--snip
# verify your key is loaded
sudo dmesg | grep cert | grep c3961401
[ 1.088300] integrity: Loaded X.509 cert 'DKMS module signing key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc3961401'
# モジュールにサイン
KVER=$(uname -r | cut -d'-' -f1)
# cd /lib/modules/${KVER}-amd64/3rdPartyMods
sudo /usr/lib/linux-kbuild-${KVER}/scripts/sign-file sha256 /var/lib/dkms/mok.key /var/lib/dkms/mok.pub mod1.ko
sudo /usr/lib/linux-kbuild-${KVER}/scripts/sign-file sha256 /var/lib/dkms/mok.key /var/lib/dkms/mok.pub mod2.ko
# 必要なら再起動
reboot
セキュアブートを外すのは気が引けますが、mokutil で キーをエンロールさえしてしまえば、特に難しいことは無いなので1つのやり方としては有効かなと言ったところでしょうか。今回は以上です。それでは。
コメント
コメントを投稿