키보드 펌웨어인 QMK는 다양한 빌드 환경을 지원합니다. 주로 사용하는 OS가 윈도우기 때문에 QMK MSYS에서 주로 작업을 했었는데요, WSL에 설치하고 사용해보니 빌드 속도가 비교 불가일 정도로 WSL이 빨랐습니다.
WSL에 QMK를 설치하고 나서 펌웨어 빌드가 빨라진것은 좋았는데, 펌웨어를 플래싱하려고 보니 잘 안되더라구요. 그래서 검색을 해보니 이미 능력자분들께서 플래싱 하는 방법을 공유해 주셔서 까먹기 전에 작성합니다.
참고 링크 : WSL2でQMK Firmwareのファームウェアの作成と書き込みをする
- 크롬 번역 기능을 이용해서 보시면 편하게 보실 수 있습니다.
선행 작업
- QMK Setup on WSL WSL에 QMK를 설치 합니다.
- 기본적으로 WSL Home 디렉토리에 설치되게 됩니다.
- avrdude
- release 에서 윈도우용 파일을 다운 받아 압축을 풀어둡니다.
- avrdude.conf 파일을 WSL QMK 디렉토리에 복사 합니다.
스크립트 수정
AVRDIR="/mnt/c/workspace/qmk/avr"
# /mnt/"드라이브명"/avrdude경로
# 압축을 해제한 avrdude 디렉토리 경로를 입력합니다.
MODECMD='/mnt/c/Windows/System32/mode.com'
GET_COMPORT='/mnt/c/Windows/System32/reg.exe query HKLM\HARDWARE\DEVICEMAP\SERIALCOMM'
CONNECTED_COMPORT=$(${MODECMD}|grep -oE 'COM[0-9]+'| tr '\n' '|' | sed -e 's/|$//g')
echo "connected port: $CONNECTED_COMPORT"
TARGET_COMPORT=""
while [ "$TARGET_COMPORT" = "" ];do
sleep 0.5
printf "."
if [ -z "$CONNECTED_COMPORT" ]; then
TARGET_COMPORT=$(${GET_COMPORT}|grep -oE 'COM[0-9]+')
else
TARGET_COMPORT=$(${GET_COMPORT}|grep -vE $CONNECTED_COMPORT|grep -oE 'COM[0-9]+')
fi
done
echo ""
echo $TARGET_COMPORT
${AVRDIR}/avrdude.exe -C ./avrdude.conf -c avr109 -p m32u4 -P ${TARGET_COMPORT} -U flash:w:$1
원문 링크 : WSL2でQMK Firmwareのファームウェアの作成と書き込みをする
실행
cd qmk_firmware
sh avrdude.sh 펌웨어파일명.hex
avrdude 경로를 제대로 설정하고, avrdude.conf 파일을 wsl의 qmk_firmware에 다운 받으셨다면 키보드 펌웨어 플래싱이 제대로 진행 되는 것을 확인할 수 있습니다.
실행 결과
QMK MSYS | QMK WSL2 |
약 2분10초 | 약 8초 |
분할 키보드 관련 확인 필요 사항
qmk 플래싱 시 분할 키보드 좌/우 설정을 위해서 “-bl avrdude-split-left, -bl avrdude-split-right” 명령을 사용하고 있었는데, 다운 받은 avrdude에서는 위 명령어가 없는 것 같습니다.
그래서 펌웨어에 “#define SPLIT_USB_DETECT”, “#define EE_HANDS”를 꼭사용해야 할 것 같습니다.