セキュアブートすると当然ながらサインのないカーネルモジュールは読み込まれません。単純にはサインすればいいのですが、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' # モジュールにサイン cd /lib/modules/${KEVER}-amd64/3rdPartyMods /usr/lib/linux-kbuild-${KEVER}/scripts/sign-file sha256 /var/lib/dkms/mok.key /var/lib/dkms/mok.pub mod1.ko /usr/lib/linux-kbuild-${KEVER}/scripts/sign-file sha256 /var/lib/dkms/mok.key /var/lib/dkms/mok.pub mod2.ko # 再起動 rebootセキュアブートを外すのは気が引けますが、mokutil で キーをエンロールさえしてしまえば、特に難しいことは無いなので1つのやり方としては有効かなと言ったところでしょうか。
今回は以上です。それでは。
コメント
コメントを投稿