自作キーボードのファームウェア(qmk_firmware)の書き込み環境をRaspberryPi3上に構築する方法

投稿者: | 2019年11月8日

はじめに

自作キーボードのキットなどで使用するコントローラには、通常ファームウェアが書き込まれていません。なので、ファームウェアの書き込み環境を構築する必要があります。普段使用している環境に構築してもいいのですが、余っていたラズパイ3上に構築した手順をまとめます。

環境

以下の環境で確認しています。

  • Raspberry Pi3 Model B v1.2
  • Raspbian Buster with desktop (September 2019)
  • microSD Card 16GB class 10 (TS16GUSDHC10)
  • Pro MicroなどのATmega32u4マイコンを搭載したコントローラ

手順

microSDにRaspbianを書き込んで起動後、ネットワークの接続と最初のアップデートが完了した状態から、以下の手順で構築を行います。

  1. githubからqmk_firmwareのリポジトリを取得(clone)する
  2. サブモジュールの取得を行う
  3. インストール用のスクリプトを実行する
  4. 書き込みツール(avrdude)をインストールする

詳細

qmk_firmwareのリポジトリを取得(clone)する

$ git clone https://github.com/qmk/qmk_firmware

サブモジュールの取得を行う

これ以降の手順は、カレントディレクトリを、取得したリポジトリのディレクトリに移して行います。

$ cd qmk_firmware
$ make git-submodule

インストール用のスクリプトを実行する

$ util/qmk_install.sh

書き込みツール(avrdude)をインストールする

$ sudo apt-get install avrdude

コントローラを接続して書き込めるか確認する

$ make meishi2:default:avrdude

マイコンへの書き込み確認なので、仮ターゲットとして「meishi2」のキーマップ「default」としています。ファームウェアのビルド後に、書き込み待ち(…が表示される)となるので、その間にコントローラ上のタクトボタンを押すと書き込みが開始されます。

まとめ

Raspbianのパッケージのアップデートなどを合わせて、2時間掛からないくらいで環境構築が行なえます。はじめから必要なコマンドが揃っていて、手順も少なくて一番楽かもしれません。

キーマップの変更などはqmkの公式ドキュメントを参照してください。

環境構築後、固定IP化してSSH serverを有効にすれば、画面無しの書き込み専用機ができるので便利です。固定IP化と、SSH serverの有効化は以下の記事の「Raspberry PiのSSH接続設定」と「Raspberry PiのローカルIP固定設定」が分かりやすいです。

SSHの認証に関しては、個人のローカル環境で一時的に利用するだけなので、パスワード認証で足りるかと思います。