⌨️

MacBook起動時のパスワード入力画面でkeyball39が起動しない問題を解決する

2024/08/28に公開

事象

最近keyball39を購入してMacBookProで使用しているのですが、起動時のパスワード入力画面でkeyball39が起動しない現象が発生していました。

USBから通電しているにもかかわらず両側のOLEDに何も表示されず、キーが打てません。USBを挿し直しても解決しませんでした。別のキーボードでパスワードを入力し、デスクトップが表示された後にUSBを差し直すと問題なく使用できました。

私の環境は以下の通りです。

  • MacBook Pro 2017 13-inch
  • OS: 13.6.9

結論

先に結論から言ってしまいますが、ファームウェアのconfig.hの以下の部分のコメントを外したファームウェアをコンパイルして書き込むことで解決しました。

-//#define SPLIT_WATCHDOG_ENABLE
+#define SPLIT_WATCHDOG_ENABLE

ファームウェアの書き換え方法

基本的には公式ドキュメントのHow to buildの通りにすれば問題ないのですが、途中で引っかかったところがあったので手順を記載しておきます。v1.3.2時点のドキュメントを参考にしています。

https://github.com/Yowkees/keyball/tree/v1.3.2/qmk_firmware/keyboards/keyball

前提として以下のインストールが必要です。MacであればHomebrewでインストールするのが簡単だと思います。

brew install git
brew install qmk/qmk/qmk

手順1,2,3はそのまま行い、手順4を行う前に以下を行います。

util/install/macos.shの書き換え

この後qmk setupというコマンドを打つのですが、このままだと実行時にエラーが出てしまうことがあります。

qmk setup内部で依存関係がインストールされていない場合、インストールを促してくれるのですが、その場合以下のようなエラーが発生します。

☒ Can't find arm-none-eabi-gcc in your path.
☒ Can't find avr-gcc in your path.
Would you like to install dependencies? [Y/n]
Checking Homebrew installation
==> Updating Homebrew...
Already up-to-date.
Error: Calling `brew upgrade --ignore-pinned` is disabled! There is no replacement.

このエラーは以下のPRの通り、Homebrewで--ignore-pinnedオプションが無効化されたためです。

https://github.com/qmk/qmk_firmware/pull/23735

このPRでこの問題は修正されているのですが、keyballで利用しているQMK 0.22.14には反映されていないようでした。そのため手動で書き換えます。

テキストエディタでutil/install/macos.shを開き、以下のように修正して保存します。

-    brew update && brew upgrade --formulae --ignore-pinned
+    brew update && brew upgrade --formulae

その後、セットアップコマンドを実行します。

qmk setup

Would you like to install dependencies? [Y/n]と聞かれたらエンターを押し、依存関係をインストールします。これで準備は完了です。

keyboards/keyball/keyball39/config.hの書き換え

冒頭の結論の再掲になりますが、keyboards/keyball/keyball39/config.hを以下のように書き換えて保存します。この設定を有効にすることで、Mac起動時のパスワード入力画面でもkeyball39が起動しました。

-//#define SPLIT_WATCHDOG_ENABLE
+#define SPLIT_WATCHDOG_ENABLE

ファームウェアのコンパイル

公式ドキュメントの手順4を参考にします。ただし、defaultではなくviaでコンパイルします。viaでないとRemapに対応していないためです。

make SKIP_GIT=yes keyball/keyball39:via

実行完了後、keyball_keyball39_via.hexというファイルがカレントディレクトリの直下にできているはずです。

ProMicroへファームウェアの書き込み

Remapでキーマップを変更していたら念のためキーマップを保存しておくことをおすすめします。

QMKファームウェアの書き込み方法は以下の遊舎工房さんのページがわかりやすいです。手順の2から実行し、左右のキーボードにファームウェアを書き込んでください。

QMKファームウェアの書き込み(Pro Micro Web Updater利用)

ファームウェア書き込み後にキーマップがリセットされていたら保存したキーマップから復元します。

確認

Macを終了し、起動し直します。再起動ではなく、終了→起動で確認します。私の環境では、USBを繋いでいる側からOLEDが表示され、数秒後に繋いでいない方も起動しました。キーが入力できたら成功です。

Discussion