enutsuu’s blog

書いてみたいと思ったことを書いていきます。

【20210424時点】qmk firmwareビルド環境構築時の記録

qmk firmwareのバージョンアップに伴い、何度かqmkビルド環境の再構築をしていたが、これまで特に記録に残してこなかった。
先日、新しいPC(ARROWS Tab Q704/H)を購入したので、このPCへのqmkビルド環境構築に伴い、記録を残すことにした。
この情報は2021/4/24時点のものなので、今後のqmkのバージョンアップによって、間違いになる可能性があるので注意。

 

今回の作業は、qmk firmwareのホームページ
https://docs.qmk.fm/#/
の手順をベースにしている。できるだけスクリーンショットを残すよう心がけてもみた。

 

まずは上記のURLにアクセスする。以下のページが表示される。

f:id:enutsuu:20210424234932p:plain

 

その後、画面左上にあるsetupをクリックすると以下の画面が表示される。

特定の文字列を探すときは、検索機能を使用すると便利。

以下、くどくなっちゃうので、以下の画面が~、という記述は必要がない限り省略する。

f:id:enutsuu:20210425110610p:plain

 

表示後のページには、作業の手順として、

1. Prerequisites

2. Prepare Your Build Environment

3. Run QMK Setup

4. Test Your Build Environment

5. Configure Your Build Environment (Optional)

 が記載されているので、順番に沿って進めていく。

 

「1. Prerequisites」ではテキストエディタとqmk toolboxを準備する。自分はこれまでqmk toolboxは使用していないので、今回も使用しない。(必要になったら追記したい。)

テキストエディタはメモ帳とかでもよい。自分はTerapadを使用している。

 

「2. Prepare Your Build Environment」ではビルド環境の準備をする。

LinuxUnix環境を準備し、それにqmkをインストールする。

自分の使用OSはWindowsなので、ページに記載の通り、QMK MSYSをインストールする。hereのリンクをクリックしてページを移動する。

f:id:enutsuu:20210425135455p:plain

 

 このページを見るに、現在のQMK MSYSのバージョンは1.3.1らしい。

オプションでドライバを同時にインストールできるようにしたり、間違った環境への対応をしたりしているようだ。(環境が間違っていても実行可能にしたのか、実行できないようにしたのかは、自分の英語力ではよくわからない)

 

ここではQMK_MSYS.exeをクリックし、.exeファイルをダウンロードする。(500MB以上あるので、データ通信料等には注意する。)

ダウンロード後、ファイルを実行する。

実行後、詳細情報をクリックする。

f:id:enutsuu:20210425144550p:plain

 

その後、実行をクリックする。

f:id:enutsuu:20210425145224p:plain

 

実行をクリックすると、ユーザアカウント制御ダイアログが表示されるので、はいをクリックする。(スクリーンショットが取れなかったので文字で書く。はいではないかもしれないが、見れば必要な操作はわかると思う。)

 

その後は、ダウンロード先のフォルダを指定して、Nextをクリックする。

f:id:enutsuu:20210425152731p:plain

 

ショートカットの作成や、ドライバインストールのためのチェックボックスをチェックしてNextをクリックする。

(画像はチェック前のものだが、自分はどちらもチェックを入れている。)

f:id:enutsuu:20210425153128p:plain

 

 

ダイアログの内容を確認してInstallをクリックする。

f:id:enutsuu:20210425154707p:plain

 

 

インストールが開始されるのでしばらく待つ。

自分の環境では10分以上かかった。

f:id:enutsuu:20210425154743p:plain

 

 

画面が切り替わったら、Finishをクリックする。

これで「2. Prepare Your Build Environment」は完了。

f:id:enutsuu:20210425160756p:plain

 

 

「3. Run QMK Setup」ではQMK MSYSでコマンドを実行する。

QMK MSYSを起動する。

f:id:enutsuu:20210425160853p:plain

 

起動後の画面で、qmk setupを入力し、Enterを押す。

qmk setupにオプションを指定したり、実行後に変数を変更することで、

セットアップ時に使用するフォルダを変更できるようだけど、今回はデフォルトの設定を使用する。(使用したら追記したい。)

 

(2021/05/16追記)ここで、コマンド

qmk setup -H (指定したいフォルダのパス)/qmk_firmware

と入力後Enterを押すと、指定したフォルダにセットアップ先を変更した上でセットアップを行うことができる。

Enterを押した後の一回目の確認でyを選択するとセットアップが進行されるが、一回目の確認でnを選択し、その場合発生する二回目の確認でyを選択すると、セットアップ先の変更のみ行うこともできる。設定が変更されているかどうかは、コマンド

qmk setup --help

を入力した時の表示内容(Defaultの右)で確認できる。

 

(2021/05/16追記その2)

qmk setupコマンドにてgithubのユーザがforkしたqmk firmwareのcloneをローカルに作成する場合、以下のコマンドを実行する。

qmk setup <github_username>/qmk_firmware

(今まで自分が使っていたgit cloneコマンドではgithubのWebページにてcodeをクリックした後の表示内容をコピペして使うが、こっちは違う。ちょっと紛らわしい。)

 

 

f:id:enutsuu:20210425161204p:plain

 

Enterを押す直前の画面。

f:id:enutsuu:20210425162422p:plain

 

Enterを押したら、以下のような画面が表示されるので、yと入力してEnterをクリック。

f:id:enutsuu:20210425163200p:plain

 

以下のようになるので、しばらく待つ。

f:id:enutsuu:20210425163327p:plain

 

しばらく待つ。

f:id:enutsuu:20210425163408p:plain

 

しばらく待つ。

f:id:enutsuu:20210425163502p:plain

 

以下のような画面になれば、「3. Run QMK Setup」は完了。

f:id:enutsuu:20210425163523p:plain

 

「4. Test Your Build Environment」では、ビルド環境のテストをする。

ページに記載のコマンド

qmk compile -kb clueboard/66/rev3 -km default

を入力し、実行してみる。

(ちなみにこのコマンドを端的に言うと、cluevboardというキーボードのrev3のファームウェアのデフォルトのキーマップをコンパイルするというコマンド。…のはず。)

下は実行直前の画面。

f:id:enutsuu:20210425163814p:plain

 

実行後以下のような画面になれば、ビルド環境は正しく構築されていると考えていいと思う。

その場合、「4. Test Your Build Environment」は完了。

f:id:enutsuu:20210425163836p:plain

 

もしうまくいかない場合、ビルド環境が正しく構築できていない可能性がある。

また、可能性は低いけど、clueboardのファームウェアが変更中で、

コンパイルが通らない状態になっているケースもある。

 

「5. Configure Your Build Environment (Optional)」には、設定をすればqmk compileというコマンドのみでキーボードやキーマップを指定したコンパイルが可能、ということが書かれている。

ただ、自分の場合、常にキーボードやキーマップを指定したほうが問題が少なそうなので、この設定は使用しない。

 

 

以上が今回のビルド環境構築時の記録。

少し前にqmk firmwareを更新したら、qmk/bin関連のメッセージが出てコンパイルが実行できなくなったのを経験したので少し不安だったけど、幸い特に問題は発生しなかった。

もしうまくいかない場合、

・QMK MSYSをアンインストールし、PC再起動後、もう一度ビルド環境の構築をやり直す。

・わかる場合は、別のキーボードのファームウェアコンパイルしてみる。

等を試してみるといいと思う。