「車輪の再実装」って言葉が好き(実践はできてない)

カーネルモジュールのロードに失敗した話(insmod が Operation not permittedでコケる)。

結論

セキュアブート環境下*1では、カーネルモジュールに署名をつけましょう

経緯

卒論の関係でカーネルモジュールを書いていて、「さて実機で動かすぞ!」という段階でコケました。 自分が悪いコードを書いたせいかと思い、よく転がっていそうな単純なモジュールを書いても以下のようにコケる...

$ sudo insmod hello.ko
 insmod: ERROR: could not insert module hello.ko: Operation not permitted

解決策を調べると、insmodでうまくいかないなら、depmodしてmodprobeを使うといいとか書いてあって試しても、うまく行かない...

最終的には How to sign things for Secure Boot に書いてあるとおり、署名をつけたら成功しました。

(結局カーネルモジュールは動いたものの、思うような結果が得られず卒論には使えなかった...)

*1:厳密な条件は違いそう