(追記)その後同様の症状が出たが以下の手順で復帰できなかった。単純に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 /
これでキーボードがもとに戻った