虚無庵

徒然なるままに

macOS Catalina で ErgoDash のキーマップを変更する

前回あえなく撃沈した ErgoDash のキーマップ変更だが、リベンジすることにした。

ちなみに前回書き忘れていた自分の環境

  • macOS Catalina(10.15.2)

経験者に聞く

自作キーボード作成経験者にリプ飛ばして聞いてみたり。そして便利なサイトを聞いてみたり。

rephtone.com

ここでavr-gcc@7はバージョン7.xをインストールしているということですが、これは8.xだとエラーが出るためにダウングレードしているためで現在ではavr-gccのバージョンは9.xになっており問題なく使えるので以下のコマンドで最新バージョンを入れます。

./util/macos_install.sh を確認する限り、avr-gcc ならびに arm-gcc-bin をバージョン 8 でインストールしている模様。なお、前回の時点で avr-gcc および arm-gcc-bin を最新版にして試したが件のエラーメッセージが表示されていた。

そこで、ダウングレードを試みた。が、avr-gcc はダウングレードできたが、arm-gcc-bin を Homebrew からダウングレードさせることができず結局ふり出しに戻った。

アウトプットしたところにしか情報は集まらない

八方手詰まり状態だったのだが、突然神が舞い降りた。

丁度同じタイミングで同じ問題で苦労しましたが、ここを参考にすると解決しました。 https://stackoverflow.com/questions/59538261/dyld-library-not-loaded-usr-local-opt-isl-lib-libisl-21-dylib

stackoverflow.com

id:VSDASD さんのコメントで無事解決できました。本当にありがとうございます!

このコメントを見た時に、以前突然 znz さんからコメントをもらったことを思い出した。

「知見はアウトプットしたところにしか集まらない」と同僚が言っていたが、再び経験することとなった。

実際にやったこと

  1. brew uninstall avr-gcc (最新版 avr-gcc をアンイストール)
  2. brew uninstall arm-gcc-bin (最新版 arm-gcc-bin をアンイストール)
  3. brew install avr-gcc@8 (avr-gcc 8.3.0 をインストール)
  4. brew install arm-gcc-bin@8 →「既にインストール済み」というメッセージが出た
  5. brew reinstall arm-gcc-bin@8 (再インストール。無事成功)
  6. brew link --force avr-gcc@8 (./util/macos_install.sh に倣う)
  7. brew link --force arm-gcc-bin@8 (./util/macos_install.sh に倣う)
  8. install_name_tool -change '/usr/local/opt/isl/lib/libisl.21.dylib' /usr/local/opt/isl/lib/libisl.dylib /usr/local/Cellar/avr-gcc@8/8.3.0/libexec/gcc/avr/8.3.0/cc1
  9. make ergodash/rev1:default:avrdude (***.hex ファイル作成および転送)
  10. 何やらいっぱいコンパイルメッセージが出た後に「Detecting USB port, reset your controller now」と聞かれるので書き換えていいなら、ErgoDash の物理リセットボタンを押す
  11. 無事転送完了しキーマップが変更される

手順 10 でメッセージを読まず、延々とドットが表示されている現象が「リンカが動いている」のかと思ってしばらく見守ってしまった。

まとめ

多分、実際にやったこと手順 8 のパスを変更すれば avr-gcc は最新版でもいけるんじゃないかと思う。(誰かやって欲しい)

とりあえず自分が望むキーマップには変更できたので、このインタフェースに慣れる訓練が必要。今はMBP のキーボードから入力している。

あと忘れずに代金を支払う。