daikiojm’s diary

ブログを書くときがやってきたどん!

ErgoDox EZのファームウェアをMacでビルドしようとしたら辛かったのでDcokerでビルドした

ErgoDox EZは、GUIからキーマップを作成して、.hex ファイルのファームウェアをダウンロードできるサイトを用意してくれている。

ErgoDox EZ Configurator

ただ、ここから変更できる内容には制限があり、少し凝ったキーマップに変更しようとすると、キーマップファイルを自分で修正してソースからビルドする必要がある。 キーマップの作成時には、以下の記事が大変参考になった。

qiita.com

自分の場合、MacCommand キーを複数のキーに割り当てたくなりGUIからのキーマップ作成を諦め、ソースからビルドすることを決心した。

Macでのローカルビルドを試みた

MacでErgoDox EZのファームウェアをローカルビルドするには avr-gcc というavrマイコン用のビルドツールをインストールすればいいことがわかった。
brewで一発インストールできるとの記事を見て、軽い気持ちで試みるもmake実行中にコンパイルエラーが発生し、brewやビルドツール周りの環境を確認するも未だに解決していない状態。
一刻も早くキーマップを変更して快適なErgoDoxライフを送りたかったので、homebrew-avrリポジトリにIssueを投げつつ、Dockerで用意されたビルド環境を使うことにした。

今回の状況は、以下のIssueの通り

github.com

Dockerでビルド

ErgoDox EZのファームウェアが配布されているリポジトリ qmk/qmk_firmware にビルド用のDockerfileがあったので、これを使い使ってみる。 ひとまず、リポジトリに含まれているデフォルトのキーマップをビルドする。

クローンしておく

$ git clone git@github.com:qmk/qmk_firmware.git
$ cd qmk_firmware

Dockerfileからイメージをビルド
あとで気づいたが、 edasque/qmk_firmware を使ってもいいかもしれない。

$ docker build -t qmk_firmware . 

対象のキーボードの種類と作成した(今回はデフォルト)キーマップを環境変数に指定して、dockerを起動する

$ docker run -e keymap=default -e keyboard=ergodox_ez --rm -v (pwd):/qmk:rw qmk_firmware

正常にビルドできれば、 ergodox_ez_default.hex というファイルが出力されているはず。

終わりに

ひとまず、当初考えていたキーマップに変更することができて概ね満足です。
まだまだ、ErgoDox自体に慣れるにまでに時間がかかりそうで、暇な時にタイピングゲームとかしている状況。
(学生の頃にイキってUS配列のMacを使い始めたものの、なかなか慣れなかったときの感覚)
このブログもErgoDoxで書いてるけど、正直苦行なので早く慣れていきたい。