gitはshallow cloneとsparse checkoutを活用してダウンロードを最小限にする。
dockerを使うことでビルド環境の構築をしない。
ファームウェアの書き込みはWSL2からavrdude.exe
を呼んで行う。
参照
- WSL2だけで自作キーボードを楽しみたい|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
- QMK FirmwareをDockerでビルドする - Qiita
- リポジトリの一部だけcheckoutするGitコマンド:sparse-checkout - はんなりと、ゆるやかに
QMK Firmware
mkdir ~/qmk && cd ~/qmk git clone --depth=1 --filter=blob:none --sparse https://github.com/qmk/qmk_firmware.git cd qmk_firmware git sparse-checkout init --cone git sparse-checkout add bin drivers lib quantum tmk_core util git sparse-checkout add keyboards/7skb git submodule update --init --recursive --depth=1 git switch -c ebith cp -r keyboards/7skb/keymaps/default keyboards/7skb/keymaps/ebith cd ~/qmk tee build.sh << EOM > /dev/null #!/usr/bin/env sh docker run --rm -it -v $PWD/qmk_firmware:/qmk_firmware qmkfm/base_container /bin/bash -c 'cd /qmk_firmware && make 7skb:ebith' EOM chmod +x build.sh
avrdude
cd ~/qmk git clone --depth=1 --filter=blob:none --sparse https://github.com/qmk/qmk_toolbox.git git sparse-checkout init --cone git sparse-checkout add common windows chmod +x windows/QMK\ Toolbox/avrdude.exe cd ~/qmk tee write.sh << EOM > /dev/null #!/usr/bin/env sh TOOLBOXDIR=~/qmk/qmk_toolbox/ MODECMD='/mnt/c/Windows/System32/mode.com' COMPORT1=$(${MODECMD}|grep -o 'COM[0-9]*') COMPORT2="" while [ "$COMPORT2" = "" ];do sleep 0.5 printf "." COMPORT2=$(${MODECMD}|grep -v $COMPORT1 |grep -o 'COM[0-9]*') done echo $COMPORT2 ${TOOLBOXDIR}windows/QMK\ Toolbox/avrdude.exe -C ${TOOLBOXDIR}common/avrdude.conf -c avr109 -p m32u4 -P ${COMPORT2} -U flash:w:$* EOM chmod +x write.sh
ビルドと書き込み
./build.sh
./write.sh qmk_firmware/7skb_rev1_ebith.hex # リセットする