M1 MacにQMK Firmwareのビルド環境を構築してみた

Apple シリコン搭載の MacBook Pro に QMK Firmware(以下、QMK)のビルド環境を構築しようとしたら思いがけず手間取ってしまったので、やり方を記録しておきます。
ちょっと前まで brew 一発でインストールできてた気がしたのですが、そんなことはなかったぜ。

大前提
  1. Xcode と CommandLineTools はインストール済み
  2. Rosetta 2はインストール済み
試した環境
  • MacBook Pro(16インチ、2021)
  • OS Monterey(12.4)


STEP1:Macターミナルで Rosetta を使えるようにする

Mac に QMK をインストールするには HomeBrew を使うやり方が一般的ですが、どうやら arm64版では一部のモジュールがインストールできないらしく、Rosettaをかまして x86_64版のターミナルを使ってやる必要があります。

以下、ターミナルでRosettaを使えるようにする手順です。

① Finderで[移動]>[ユーティリティ](またはShift + ⌘ + U)

② ターミナル.appを複製する

③ 増えたほうのターミナル.appの名前を適当に「Terminal-Rosetta」などに変更する

④ Terminal-Rosettaの上で右クリック>情報を見る>「Rosettaを使用して開く」にチェック

これ以降の作業は、こちらのRosetta版のターミナルで進めていきます(→STEP2へ)。

(参考)使用中のアーキテクチャの確認方法

今開いているターミナルでどちらのアーキテクチャが使われているかは、uname コマンドで確認できます。

ターミナル使用の場合

arm64 表記

Terminal-Rosetta使用の場合

x86_64 表記に。やりました!


STEP2:x86版のHomeBrewをインストールする

① brewをインストールする

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

② brewへのパスを書き換える

Homebrewのインストール先は arm64ビルドでは /opt/homebrew 配下ですが、x86ビルドでは /usr/local 配下となります。なので Rosetta版のターミナルを使う際は、一時的にbrewのパスを変更する必要があります。

alias brew='/usr/local/bin/brew'
(参考)arm64版のHomeBrewに戻すときは…

aliasを解除してやればOK。

unalias brew

こんな感じで二種類のbrewを行ったり来たりできるようになります。


STEP3:QMKをインストールする

① QMK をインストールする

brew install qmk/qmk/qmk

② 一部のパッケージを追加でインストールする

brew tap ArmMbed/homebrew-formulae  
brew install avr-gcc
brew install arm-none-eabi-gcc

③ GitHub から qmk_firmware をダウンロードする

cd ~/(qmk firmwareをインストールしたい任意のフォルダ)
git clone --recursive git@github.com:qmk/qmk_firmware.git 

これでQMK環境の構築はいちおう終了。

実際に適当なキーボード用のファームウェアをビルドしてみて、正常に動くかどうか確認します。

qmk compile -kb キーボード名 -km キーマップ名 

たぶん大丈夫っぽい。

参考にさせていただいたサイト:

Appleシリコン搭載のMacターミナルでRosettaを使用する方法
Guide: Installing QMK on M1 Macbook : olkb