Big SurでMacbook内蔵キーボードのドライバをdisableしてしまいログインできない

(追記)その後同様の症状が出たが以下の手順で復帰できなかった。単純にPRAMリセットだけで治るかもしれない。

起動時にKarabinerがVirtual keyboard?のドライバが古いので一度Disableして再起動してくださいとダイアログを出してきた。鵜呑みにしてDisable driverボタンを押して再起動すると、内蔵キーボードが無効になっており、ログインパスワードが入力できない。外付けキーボードも試したが動かない。

⌘+RでRecovery modeを起動してターミナルを表示。以下を実行してドライバをロードしたら内蔵キーボードが動くようになった。
以下の順で2行実行する(順番が重要だった)

# kextload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/
# kextload /System/Library/Extensions/AppleUSBTopCase.kext/

再起動したらキーボードが動くようになった。

が、再起動のたびにキーボードが無効化されてしまうことを発見。
Karabinerが原因のようなので、Karabinerをアンインストールして再インストールすることにした。

Karabinerのアンインストール
karabiner-elements.pqrs.org

bash '/Library/Application Support/org.pqrs/Karabiner-DriverKit-VirtualHIDDevice/scripts/uninstall/deactivate_driver.sh'
sudo '/Library/Application Support/org.pqrs/Karabiner-Elements/uninstall.sh'

そしてさらに再起動するとキーボードが動かない!Karabinerのせいではなかった。
どうも起動時に読み込むkextからキーボードのドライバが登録を外されてしまったらしい。
kextのキャッシュを以下のように再構築してみた これで合ってるかは不明

touch /System/Library/Extensions
sudo kextcache -i /

これでキーボードがもとに戻った



参考
github.com
www.tonymacx86.com