1
1

MacBookAirで少し古めのQMK環境を整備する

Last updated at Posted at 2024-08-19

概要

新しくmacを買い替えたので少し古めのqmk環境を整備する

使用キーボードはaspara_kb
おそらく最新のqmkには対応してなくて、2年前にforkされたのものがあり、それに合わせて環境を整備する

環境

macbook Air M1からmacbook Air M3に移行
新機種はまっさらな状態

前書き

  • 2024/8/19の記事です。よって変更が入っている可能性はあります
  • 私はQMKにあまり詳しくありません、内容は間違っている可能性があります、文鎮化しても責任は取りません
  • gitにも詳しくないです。よって認識が間違っている可能性があります
  • aspara_kbという名前のキーボードを使っています

qmk firmwareで 以下のようなコマンドでhexファイルを作っている人向けです

qmk compile -kb sphhjp/rev1 -km (キーマップ名)

さらにはgithubでforkされたものが用意されているkb向けです(多分?)

image.png

記事構成

ハマったことを順番に書いて、最後に成功した手順を書きます

ハマったこと、パターン1

https://docs.qmk.fm/newbs_getting_started
公式通りやればいいじゃんと思って

環境の整備,ターミナル(zsh)で実行
# brew のインストールをする
$ cd ~
$ brew install qmk
$ qmk setup
# ホームディレクトリにqmk_fimfareが作成される
# qmk_firmware/keyboardにasparaがないため、元々使っていたフォルダをGUIから操作して配備
$ cd qmk_firmware
$ qmk compile -kb aspara -km (キーマップ名)

エラー文

エラー文の抜粋
Compiling: keyboards/aspara/aspara_ver1/aspara_ver1.c                                              In file included from <command-line>:
./keyboards/aspara/aspara_ver1/config.h:20:10: fatal error: config_common.h: No such file or directory
   20 | #include "config_common.h"
      |          ^~~~~~~~~~~~~~~~~

config_common.hが見つからないよ、と怒られる
もともとは~/qmk_firmware/quantum/config_common.hと配置されていたようだが、
アップデートで非推奨であり、消されたようだ
(↑discordの公式qmkサポートで検索して見つけた内容、どっかいった)

ハマったこと、パターン2

confing_common.hが非推奨ってことはのasparaのソースが古くて、他の部分が新しいからうまく動かないのかなと思い、旧PCで使っていたqmk_firmwareをそのまま持ってきた

環境の整備,ターミナル(zsh)で実行
$ rm -rf qmk_firmware # さっき作成したのを削除
$ brew uninstall qmk
$ brew install qmk/qmk/qmk # 念の為
# GUI から qmk_firmwareのフォルダごとホームディレクトリに配置
$ qmk compile -kb aspara -km (キーマップ名)

失敗(エラー文、紛失)
真偽は不明だが、ただフォルダをコピーすればいいってもんじゃないらしい(なんか紐付けとかがどっかで行われるのかな。。。)

ハマったこと、パターン3

https://docs.qmk.fm/newbs_getting_started
公式を良く読んだらforkしたgithubのやつはこういうふうな指定ができるとあった。

公式ドキュメントより
$ qmk setup <github_username>/qmk_firmware

とあった。
画像:aspara_kb作者の用意しているgithubがあるので
image.png

環境の整備,ターミナル(zsh)で実行
$ rm -rf qmk_firmware # さっき作成したのを削除
$ brew uninstall qmk
$ brew install qmk  # 念の為
$ qmk setup 7-rate/qmk_firmware  #  <github_username>を指定とあるのでaspara_kbでは7-rateを指定
$ cd qmk_fimware
$ qmk compile -kb aspara -km (キーマップ名)
エラー文
Ψ Added https://github.com/qmk/qmk_firmware as remote upstream.
Error: %s: %s ('ImportError', ImportError("cannot import name 'format_ansi' from 'milc' (/Users/PCの名前/Library/Python/3.9/lib/python/site-packages/milc/__init__.py)"))
Traceback (most recent call last):
  File "/Users/PCの名前/Library/Python/3.9/lib/python/site-packages/qmk_cli/script_qmk.py", line 76, in main
    import qmk.cli  # noqa
  File "/Users/PCの名前/qmk_firmware/lib/python/qmk/cli/__init__.py", line 13, in <module>
    from . import doctor
  File "/Users/PCの名前/qmk_firmware/lib/python/qmk/cli/doctor.py", line 13, in <module>
    from qmk.questions import yesno
  File "/Users/PCの名前/qmk_firmware/lib/python/qmk/questions.py", line 4, in <module>
    from milc import cli, format_ansi
ImportError: cannot import name 'format_ansi' from 'milc' (/Users/PCの名前/Library/Python/3.9/lib/python/site-packages/milc/__init__.py)

正直よくわからないけど古すぎてqmk setup xxxxみたいな形式に対応してないのかなって感じた

ハマったこと 外伝

qmkのバージョンを下げる

pip install qmk==0.4.0

無駄だった
あとqmkは qmk cilとqmk_firmwareがあって
qmk --versionで調べられるのはqmk cilのバージョン
qmk_firmwareはqmk_firmwareのフォルダに紐づいているみたい
(だからqmkがバージョン違いだよ、ってみても qmk cilのバージョンを下げても多分意味ない)

成功例

削除などもまとめて書く、
本来やるべき手順は一番下にもう一回書く

環境の整備,ターミナル(zsh)で実行
$ rm -rf qmk_firmware # さっき作成したのを削除
$ brew uninstall qmk
$ brew install qmk  # 念の為
$ git clone https://github.com/7-rate/qmk_firmware.git
$ cd qmk_fimware
$ git checkout aspara_kb #ブランチ移動しないとasparaが無かったから移動、よくわかってない
$ make git-submodule #いるらしい(ないとエラーだった)
$ qmk compile -kb aspara -km default

image.png

成功

本来やるべきだったこと

次乗り換える時はここの手順だけ見てやる

image.png

環境の整備,ターミナル(zsh)で実行
# brewのインストール、やり方はgoogleで調べる
$ brew --version
Homebrew 4.3.16

$ cd ~
$ brew install qmk/qmk/qmk
$ git clone https://github.com/7-rate/qmk_firmware.git
$ cd qmk_fimware
$ git checkout aspara_kb #ブランチ移動しないとasparaが無かったから移動、よくわかってない
$ make git-submodule #いるらしい(ないとエラーだった)
# GUIで操作:カスタマイズしたもので、qmk_firmware/keyboard/asparaを上書きする
$ qmk compile -kb aspara/aspara_ver1 -km myset #ここは構成に応じて変える
構成の参考
qmk_firmware
└─keybords
      └─apsara/aspara_ver1
                    ├─rules.mk
                    ├─config.h
                    ├─keymaps/myset/keymap.c
                    └─(省略)
------------------------------------------------
$ qmk compile -kb aspara/aspara_ver1 -km myset
⇧を実行し、生成されたhexファイルをqmk tool boxを使って本体に書き込む
参考情報
$ brew --version 
Homebrew 4.3.16
$ qmk --version
1.1.5
$ cd qmk_firmware
$ git branch --contains
* aspara_kb

感想など

まずハマったらqmkのdiscordを検索するのが良い
ChatGPTに聞くのもあり、(真偽は確かめる)

  • qmk_firmware周りは更新するたびにエラーで動かなくなっている気がするので固定の環境を用意した方がいいかもしれない
    • アップデートしないといけない機能は使うことがなく、配置やレイヤー、マクロをいじる程度
    • aspara_kbもqmkアップデートを追っている様子もないので限界がある
      • そもそもqmk自分で動かすことをあまり想定していないのだろう

候補としてはVPSで環境を維持しつづけるかとか、dockerで環境をそのまま保存する、とかなのかな
dockerでそういうことができるのかはよくわからないけど
なんかいい方法あったら教えてください

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1