概要
新しく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向けです(多分?)
例
記事構成
ハマったことを順番に書いて、最後に成功した手順を書きます
ハマったこと、パターン1
https://docs.qmk.fm/newbs_getting_started
公式通りやればいいじゃんと思って
# 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
をそのまま持ってきた
$ 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があるので
$ 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のバージョンを下げても多分意味ない)
成功例
削除などもまとめて書く、
本来やるべき手順は一番下にもう一回書く
$ 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
成功
本来やるべきだったこと
次乗り換える時はここの手順だけ見てやる
# 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でそういうことができるのかはよくわからないけど
なんかいい方法あったら教えてください