2017. 9. 27.

[IT 제품 구매 가이드] OLKB Planck 키보드 - 키맵핑 수정하기(QMK 펌웨어)

이 글은 QMK 펌웨어를 사용하는 키보드의 키 맵핑을 간단한 프로그래밍을 통해서 수정하는 방법을 설명합니다. QMK 펌웨어를 사용하는 키보드 목록은 여기에서 확인할 수 있습니다. 키보드 제조사에서 공식적으로 펌웨어를 업데이트하는 키보드 목록은 다음과 같습니다.


  • OLKB Planck, Preonic, Atomic
  • ErgoDox EZ
  • Clueboard, Cluecard, Cluepad


이 밖에서 우리나라에서도 많이 사용하는 키보드인 Happy Hacking 키보드도 제조사에서 직접 관리하는 것은 아니지만 QMK 커뮤니티에서 관리하는 것으로 알고 있습니다. 다수의 프로그래밍 가능한 키보드가 QMK 펌웨어를 사용하고 있으므로 참고하셔도 좋습니다. 프로그래밍 가능한 키보드를 선택한 사용자는 아마도 프로그래밍을 할 수 있을 것으로 예상되지만, 이 글은 그렇지 않은 사람들도 쉽게 따라할 수 있도록 작성하겠습니다. 프로그래밍과 관련된 설명을 하는 것이 아니라 자신의 원하는 키 맵핑을 작성하여 키보드에 적용하는 방법을 단계별로 구분하여 설명하겠습니다.

Windows 10에서 리눅스 서브 시스템 추가

여기 관련된 좋은 자료는 많기 때문에 링크로 대신 하겠습니다.
리눅스 서브 시스템을 추가하고, 계정 및 비밀번호까지 설정하면 끝입니다.

GitHub를 사용하여 qmk_firmware Fork하기

링크를 누르면 과정별로 자세한 설명이 되어 있으므로 참고하시길 바랍니다.


  1. GitHub 계정을 생성한 후, 로그인합니다.
  2. QMK Firmware 공식 GitHub를  Fork합니다.




이미지의 오른쪽 구석에 빨간 동그라미로 되어 있는 버튼을 누르면 됩니다.
  1. 다시 GitHub로 홈으로 우측을 보면 방금 Fork한 QMK Firmware를 확인할 수 있습니다.
  1. qmk_firmware를 클릭하면 Fork한 곳으로 이동합니다.
  2. 이동한 후, 웹 브라우저 주소창의 주소를 복사합니다.

Bash를 사용하여 GMK Firmware Clone하기

  1. 윈도우키를 누르고, ‘cmd’를 입력하여 Command Prompt를 켭니다.
  2. ‘bash’라고 명령어를 입력하면 Bash가 실행됩니다.
  1. 자신이 원하는 곳으로 이동합니다. 저는 ‘Documenta’ 디렉토리에 설치하도록 하겠습니다.
    1. cd Documents/ 를 입력합니다.
    2. 정상적으로 이동되었다면 ‘/mnt/c 혹은 d와 같은 디스크 이름/계정명/Documents’입니다.
  2. Clone에 필요한 다양한 라이브러리를 설치합니다.
    1. sudo apt-get update
    2. sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
    3. 이 두 명령어를 복사해서 차례대로 각각 실행합니다.
  3. 디렉토리가 변경되면 우리가 Fork한 QMK Firmware을 Clone합니다.
    1. git clone --recurse-submodules [Fork했던 주소](괄호는 넣지 않습니다.)
    2. clone이 완료되면 qmk_firmware 디렉토리가 생성되고, 필요한 파일들이 다운로드되어 있다는 것을 확인할 수 있습니다.
  4. qmk_firmware 디렉토리로 이동합니다.
    1. cd qmk_firmware/
  5. 펌 웨어 작성에 필요한 도구를 설정합니다.
    1. util/wsl_install.sh
    2. 설치 과정 중에 설정을 적당하게 해주면 됩니다.
    3. 이 과정에 설치되는 Flip은 나중에 펌 웨어를 Flashing하는 프로그램입니다.
  6. 펌 웨어 작성 준비는 모두 끝났습니다.

자신만의 키맵 작성하기

  1. 자신이 설치한 경로\qmk_firmware\keyboards\planck\keymaps\’로 이동합니다.
  2. default 폴더를 복사해서 그대로 붙여넣은 다음, 디렉토리명을 자신이 원하는대로 변경합니다.
  3. 붙여넣은 폴더로 이동해서 ‘keymap.c’ 파일을 엽니다.
  4. 자신이 원하는대로 키맵핑을 수정합니다.
    1. 수정할 부분은 [_QWERTY], [_LOWER], [_RAISE]입니다.






  1. 이미지에서 볼 수 있듯이 녹색 글자 부분과 흰색 글자 부분은 정확히 맵핑되어 있습니다. 녹색 부분은 수정하지 않아도 문제는 없지만, 키맵핑을 수정할 때, 헷갈리지 않도록 녹색 글자 부분도 수정하고 흰색 글자 부분도 수정하고 저장합니다.

펌웨어 빌드하고, Flashing하기

  1. 다시 qmk_firmware의 디렉토리로 이동합니다.
  2. make planck-rev4-[자신이 정했던 디렉토리명] (괄호는 생략합니다.)
    1. 이 명령어로 키보드의 빌드 파일인 planck_rev4_자신이 정했던 디렉토리명].hex 파일이 생성됩니다.
  3. Filp을 실행합니다.
    1. Device > select > ATmega32U4를 선택합니다.
  4. Planck 키보드는 아래쪽의 리셋 버튼을 누릅니다.
  5. USB 모양 버튼을 누르고, USB를 선택합니다. 그리고 OPEN을 선택합니다.
    1. 키보드가 리셋이 된 상태가 아니면 USB 연결이 되지 않습니다.
    2. 연결이 되지 않았다면 다시 키보드 리셋 버튼을 눌러줍니다.
  6. File > Load HEX File을 선택합니다.
    1. qmk_firmware/.build/ 디렉토리를 선택합니다.
    2. make 명령어로 만든 planck_rev4_[자신이 정했던 디렉토리명].hex 파일을 선택합니다.
  7. Run 버튼을 누릅니다.
  8. 성공하였다면 Start Application을 누릅니다.
  9. 키보드가 다시 실행되고 수정한 키 맵핑이 적용되어 있을 것입니다.

공식 메뉴얼은 여기에서 볼 수 있습니다.

댓글 10개:

  1. 너무 감사합니다 ㅠㅜ
    easy avr을 이용한 매핑이 편리하기는 하나 안되는 부분이 많았는데,
    주인장님 덕분에 qmk 매핑 알아 갑니다.

    답글삭제
    답글
    1. 답글 감사합니다. 도움 되었다니 보람이 느껴지네요. 매핑 중 문제가 있다면 저에게도 알려주세요. 저도 아직 많이 다뤄본 것은 아니라서 능숙하지는 않지만 최대한 알아보고 알려드리겠습니다.

      삭제
  2. qmk 기판을 구매하게 되어서 매핑에 대해 알아보고 있는데 많은 도움이 되었습니다.
    다만 키 매핑을 할 때에 한/영 바꾸는 키나 한자 키는 어떻게 입력을 해야하는지 알 수 있을까요?

    답글삭제
    답글
    1. 작성자가 댓글을 삭제했습니다.

      삭제
    2. 댓글 확인이 좀 늦었습니다. 제 생각에는 한/영 변환은 운영체제에서 제공하는 레이아웃으로 변경하는 것이 가장 편할 것입니다. 완전히 다른 조합으로 한/영 변환을 하고 싶으시다면 조합키로 매핑해야 할 것 같네요. 구체적으로 어떤 식으로 변경하시고자 하는지 알려주시면 좀더 명확하게 답변을 드리겠습니다.

      삭제
    3. 윈도우즈 10에서 레이아웃별로 할당되어 있는 한/영 변환키, 한자키입니다. 참고하세요.

      https://mooneegee.blogspot.kr/2018/02/blog-post.html

      삭제
    4. 도움 주셔서 감사합니다! ㅎ

      삭제
  3. make planck-rev4-[자신이 정했던 디렉토리명] (괄호는 생략합니다.)
    -> 이 부분에서 오류가 납니다.
    제가 따로 기억은 하지 못하는데 No File ~ 이렇게 뜨는 걸로 기억합니다..

    Filp을 실행합니다.
    -> 여기서 Filp 이 무엇을 말하는지 알 수 있을까요?
    나머지를 전부 똑같이 진행하였지만 Filp 이라는 실행파일이 보이지 않아서요 ㅠ
    qmk_firmware 프로그램을 따로 받아둔 게 있는데 이거랑은 좀 다른 것 같아서요.

    답글삭제
    답글
    1. Flip이었는데 오타입니다. 죄송합니다ㅜㅜ
      qmk_firmware 툴을 사용하셔도 상관없습니다.

      https://kbfirmware.com/ 여기에서 레이아웃을 수정하고 난 후, 펌웨어 파일을 다운받습니다.
      https://github.com/qmk/qmk_flasher/releases 여기에서 Flasher를 다운받은 후, 위에서 작성한 펌웨어 파일을 이 툴을 사용하여 키보드에 넣어줍니다.

      이 방식이 가장 간편하게 QMK Firmware를 커스텀하는 방법일 것입니다. 저도 Planck, GH60을 대상으로 테스트 해봤는데, 둘 모두 잘 동작하는 것을 확인했습니다.

      여기 관련 내용도 다시 포스팅하도록 하겠습니다.

      삭제
    2. Atmel Flip은 펌웨어를 flash 하는 툴입니다. 지금 받아두신 QMK Flasher와 기능은 유사합니다.

      삭제