はじめに
前回の記事で自作キーボードに入門した話をさせていただきました。
その中でファームウェアをビルドするときにつまずいたポイントを今回はお話ししたいと思います。
エラー内容と解決策
今回私がビルドしようとしたところ、下記のエラーが出力されてしまいました。
Generating: .build/obj_omkbd_ergodash_rev1/src/info_deps.d [OK]
tmk_core/protocol/lufa/lufa.mk:13: lib/lufa/LUFA/makefile: No such file or directory
gmake: *** No rule to make target 'lib/lufa/LUFA/makefile'. Stop.
このエラーを読んでみるとlib/lufa/LUFA/makefile
が見つからないとのこと。参考にした記事を改めて読んでいると以下のように書かれていました。
cloneのあとに「--recursive」オプションを付けている理由は、qmk_firmwareが他のリポジトリをサブモジュールとして参照しているためです。「--recursive」オプションを付けることでサブモジュールも自動でダウンロードしてくれて便利です。
レポジトリをクローンする際に -recursive
オプションをつけ忘れていたようです。
なので、以下のコマンドを実行し、ダウンロードし忘れていたサブモジュールをダウンロードします。
$ make git-submodule
さあ、これでと思い再度ビルドしようとするとまたまたエラーが。
Generating: .build/obj_omkbd_ergodash_rev1_sat_via/src/default_keyboard.c [OK]
sh: avr-gcc: command not found
sh: avr-gcc: command not found
gmake: *** [builddefs/common_rules.mk:225: gccversion] Error 127
今度はavr-gcc
がないとのことなので、brew
でインストールします。今回はavr-gcc 9.4.0
をインストールしました。
$ brew install avr-gcc
これで無事にコンパイルできました!
Compiling: quantum/via.c [OK]
Linking: .build/omkbd_ergodash_rev1_yourkeymap.elf [OK]
Creating load file for flashing: .build/omkbd_ergodash_rev1_yourkeymap.hex [OK]
Copying omkbd_ergodash_rev1_yourkeymap.hex to qmk_firmware folder [OK]
Checking file size of omkbd_ergodash_rev1_yourkeymap.hex [OK]
* The firmware size is fine - 20516/28672 (71%, 8156 bytes free)
まとめ
今回は自分が遭遇したエラーとその対応方法の紹介でした。
とは言っても、最初のエラーは参考にした記事をしっかり読み込んでおけば、回避できたエラーだったと思います。
こういったエラーはどんどんと減らして行けたら良いですね。
ここまで読んでいただきありがとうございました。
参考サイト