Rubyでキーマップを書ける自作キーボード用のファームウェア【PRK Firmware】が、Mac環境でもビルド可能になったというので試行した際の覚え書きです。
私は開発者ではないのでビルドできたからといって特にどうということはないのですが、試しにやってみたかったのよ…
PRK Firmwareの作者である@hasumikinさん、contributorの@w_vwbwさん、個人的にアドバイスをくださった@alg0002 さんに感謝いたします。
試した環境など
- Mac mini (2018) / Intel / Catalina
- MacBook Pro (2021) / M1 / Big sur
- Xcode、homebrewはインストール済み
- ブログ主はrubyなんもわかってない
rubyのインストール
MacOSには最初からrubyがインストールされていますが、システム標準のrubyはバージョンが古くて動かないコマンドがあるので、最新版に入れ直す必要があります。
以後の作業を始める前に、Homebrewがお使いのMacにインストールされていることを確認しておいてください。
rbenvのインストール
rubyのインストールにはrbenvというツールが便利なので、最初にそちらを入れてやります。
brew install rbenv ruby-build
rbenvの設定
使っているシェルがzshの場合(Catalina以降)
echo 'eval "$(rbenv init -)"' >> ~/.zshrc source ~/.zshrc
使っているシェルがbashの場合(Mojave以前)
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile source ~/.bash_profile
自分ちで使っているシェルがどちらかわからない場合は、
echo $SHELL
と入力すると/bin/zsh
または/bin/bash
と表示されるのでそれで見分ける。
なんでzshのときは.zshrcに追記して、bashのときはbash_profileに追記するのか若干モヤりますが、参考にしたサイト(後述)がそうなってたのでそのまんまにしてあります。動けばよかろうなのだ。
インストールしたいrubyのバージョンを選択
現在インストールできるバージョンを調べる
rbenv install --list
こんな感じでインストール可能なバージョンがずらずらっと表示されるので、ここでは脳死で最新の3.1.2(2022年5月28日時点)をインストールします。
rbenv install 3.1.2
rubyのインストールにはけっこう時間がかかります。気長に待ちましょう。
インストール終了後、自分のMacに入っているrubyのバージョンを調べる
rbenv versions
rbenvインストール直後であれば、現在使用中のバージョンを示す*がsystemについているはずです。 これを、先ほどインストールした3.1.2に変更します。
rbenv global 3.1.2
切り替わったかどうかを確認
ruby -v
切り替わっていた場合は、お疲れさまでした。次のステップへ。
rubyのバージョンが切り替わらなかった場合
切り替わっていなかった場合は、おそらく参照先の設定が上手くいってないものと思われます。
お使いのシェルに合わせて、
export PATH="~/.rbenv/shims:/usr/local/bin:$PATH" eval "$(rbenv init -)"
を、.zshrcや.bash_profileに追記してあげてください。
たとえばzshの場合
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(rbenv init -)"' >> ~/.zshrc $ source ~/.zshrc
でOK。もう一度rubyのバージョンを調べるところからやり直します。
【参考】
MacでRubyをインストールする方法をわかりやすく解説【初心者必見】
Rubyのバージョンが切り替わらない時の対処法!
必要なコマンドのインストール
cmakeのインストール
$ brew install cmake
arm-none-eabi-gccのインストール
$ brew tap ArmMbed/homebrew-formulae $ brew install arm-none-eabi-gcc
Pico SDKの入手
適当なフォルダを作成
$ cd ~/ $ mkdir pico $ cd pico
pico-sdkとpico-examplesをclone
$ git clone -b master https://github.com/raspberrypi/pico-sdk.git $ cd pico-sdk $ git submodule update --init $ cd .. $ git clone -b master https://github.com/raspberrypi/pico-examples.git
フォルダpicoの中に、pico-sdkとpico-examplesのフォルダが出来ました。
pico-sdkへのPATHを設定する
下記を、.zshrcまたは.bash_profileに追記しておく
export PICO_SDK_PATH=/Users/ユーザー名/pico/pico-sdk/
CMake Toolsの拡張機能をVS Codeにインストール
このステップが必要かどうかよくわからなかったのですが(たぶん要らない)、たいした手間でもないので、Getting started with Raspberry Pi PicoのChapter 9.1.に書かれている通りに進めていきます。
Visual Studio CodeのMac版をダウンロードする
https://code.visualstudio.com/download
CMake Tools 拡張機能をインストールする
- VS Codeを起動して、左にあるツールバーから[拡張機能]を選択。
- 検索窓に CMake Tools と入力。
- インストールボタンをポチッとする。
settings.jsonの作成
- pico-examplesのフォルダをVS Codeで開き、.vscodeフォルダを作成する。
- その中に、settings.jsonを作成する。
{ "cmake.environment": { "PICO_SDK_PATH":"/Users/ユーザー名/pico/pico-sdk" }, "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools" }
【参考】
Raspberry Pi PicoのC/C++開発環境をVS Code on Macで作る
PRK Firmwareをビルドする
適当なフォルダを作成
$ cd ~/ $ mkdir prk $ cd prk
PRK FirmwareをClone
git clone --recursive https://github.com/picoruby/prk_firmware.git
PRK Firmwareをセットアップする
初回
cd prk_firmware/
rake setup
PRK Firmwareがアップデートされた場合
git pull origin master rake deep_clean rake setup
PRK Firmwareのバイナリをビルドする
rake
できました! やったー!
キーマップつきのバイナリをビルドする
サンプルのmeishi2のキーマップをclone
cd keyboards git clone https://github.com/picoruby/prk_meishi2.git
バイナリをビルドする
cd .. # back to prk_firmware/ rake build_with_keymap[prk_meishi2]
こちらも完成!
【参考】
github.com