Meishi 公式のファームウェアビルド・書き込み方法がどうなっているか
こちらのURLに記述がありますがgit cloneして ./util/qmk_install.sh
というコマンドを実行します
このときMacOSの場合 ./util/macos_install.sh
が実行され、 homebrewのインストールと以下のコマンドが実行されます
brew tap osx-cross/avr
brew tap PX4/homebrew-px4
brew update
brew install avr-gcc@7 gcc-arm-none-eabi dfu-programmer avrdude dfu-util
brew link --force avr-gcc@7
今回meishiをビルドするのにavr-gccが必要なのはわかるけどdfu-programmerは必要ないし、でもインストールを行わないと make meishi:default
(ビルドまで)の実行ができませんでした。
hexファイルをDocker上で作成する
適当なdocker imageを利用してdocker環境上でビルドだけを行います。
詳細な手順は省きますが、Docker上で以下のことを行います
- git clone https://github.com/qmk/qmk_firmware.git
./util/qmk_install.sh
-
make meishi:default
# avrdudeの転送は行わない
これらが成功すると ./.build
ディレクトリに meishi_default.hex
などのファイルが作成されます。
これでビルドは完了です
hexをmac上からavrdudeで転送
avrdudeがDocker上で動作すれば問題が無いのですが、avrdudeはUSBデバイスを利用するため、Docker上で扱うには少し面倒です。
そのため、avrdudeだけはmacにインストールを行います。
brew install avrdude
また、先程ビルドしたDocker上のhexファイルも docker cp
などで手元に持ってきておきましょう。必要なのはhexのみです。
あとはavrdudeのパラメータをgmk_firmwareのリポジトリから探したりして、実行します。
-P
のパラメータのUSBデバイスは接続やリセットスイッチ?を押たびに変わるので、実行毎に調べ直してください。
avrdude -p atmega32u4 -c avr109 \
-U flash:w:$(pwd)/meishi_default.hex \
-P /dev/cu.usbmodem144232101
ただ、このコマンドでも一発で成功しなくて、ハマりかけたんだけど以下の記事が参考になりました。
https://helloworlcl.hatenadiary.jp/entry/2018/04/15/185506