Attention! Translated article might be found on my English blog.

2015年2月9日月曜日

Yosemiteで自作kextをデバッグモードで動かす

ネットに転がっていたkextのソースを改良した時の話です。
ソースを自分のDeveloper IDでビルドし直し、kextを/Library/Extensionsにコピー後システムをリブートしたところ、Console.appでログを見ると
com.apple.kextd[19]: ERROR: invalid signature for hogehoge, will not load
というエラーが出ておりロードされませんでした。どうやらMountain Lionからkextを作る場合はAppleにkext用の証明書を発行してもらう必要があるようでした。

参考: osx - codesigned kext But why not load in Yosemite(10.10) - Stack Overflow

試しにhttps://developer.apple.com/contact/kext/(要ログイン)にアクセスしてみたところ、
"Requesting a Developer ID Certificate for Signing Kexts"というページが表示され、理由や配布方法などを記入する必要があるようでした。

とりあえず自分の環境でだけ動かせれば良いので上記参考サイトにある通り

$ sudo nvram boot-args="debug=0x146 kext-dev-mode=1"
としリブートすることでビルドしたkextを読み込むことができました。