Skip to content

Instantly share code, notes, and snippets.

@inajob
Last active June 8, 2021 12:02
Show Gist options
  • Save inajob/92598ed32a3826ed6dbe92fffb2e5f1a to your computer and use it in GitHub Desktop.
Save inajob/92598ed32a3826ed6dbe92fffb2e5f1a to your computer and use it in GitHub Desktop.
QMK for K66 build log (this QMK firmware something wrong)

Warning! the firmware follow this instruction is something wrong! If you want to get proper firmware, don't follow below.

environment

  • Windows 10
  • docker

I use docker due to keep clean my windows environment.

Reference

build log

git clone

$ git clone git@github.com:smp4488/qmk_firmware.git -b womier-k66-rgb-support --recurse-submodules -j8

Cloning into 'qmk_firmware'...
remote: Enumerating objects: 218592, done.
remote: Total 218592 (delta 0), reused 0 (delta 0), pack-reused 218592 eceiving objects: 100% (218592/218592), 150.42 MiB | 10.21 Mi
Receiving objects: 100% (218592/218592), 151.90 MiB | 9.54 MiB/s, done.

Resolving deltas: 100% (132003/132003), done.
Updating files: 100% (14158/14158), done.
Submodule 'lib/chibios' (https://github.com/qmk/ChibiOS) registered for path 'lib/chibios'
Submodule 'lib/chibios-contrib' (https://github.com/smp4488/ChibiOS-Contrib.git) registered for path 'lib/chibios-contrib'
Submodule 'lib/googletest' (https://github.com/google/googletest) registered for path 'lib/googletest'
Submodule 'lib/lufa' (https://github.com/qmk/lufa) registered for path 'lib/lufa'
Submodule 'lib/ugfx' (https://github.com/qmk/uGFX) registered for path 'lib/ugfx'
Cloning into 'C:/Users/user/work/repos/qmk_firmware/lib/chibios'...
remote: Enumerating objects: 223771, done.
remote: Counting objects: 100% (781/781), done.
remote: Compressing objects: 100% (384/384), done.
remote: Total 223771 (delta 428), reused 564 (delta 348), pack-reused 222990
Receiving objects: 100% (223771/223771), 147.25 MiB | 7.01 MiB/s, done.
Resolving deltas: 100% (170150/170150), done.
Cloning into 'C:/Users/user/work/repos/qmk_firmware/lib/chibios-contrib'...
remote: Enumerating objects: 14324, done.
remote: Total 14324 (delta 0), reused 0 (delta 0), pack-reused 14324
Receiving objects: 100% (14324/14324), 5.82 MiB | 2.19 MiB/s, done.
Resolving deltas: 100% (9145/9145), done.
Cloning into 'C:/Users/user/work/repos/qmk_firmware/lib/googletest'...
remote: Enumerating objects: 22672, done.
remote: Counting objects: 100% (345/345), done.
remote: Compressing objects: 100% (156/156), done.
remote: Total 22672 (delta 200), reused 243 (delta 167), pack-reused 22327
Receiving objects: 100% (22672/22672), 9.05 MiB | 2.16 MiB/s, done.
Resolving deltas: 100% (16709/16709), done.
Cloning into 'C:/Users/user/work/repos/qmk_firmware/lib/ugfx'...
remote: Enumerating objects: 29592, done.
remote: Total 29592 (delta 0), reused 0 (delta 0), pack-reused 29592
Receiving objects: 100% (29592/29592), 19.19 MiB | 3.12 MiB/s, done.
Resolving deltas: 100% (19953/19953), done.
Cloning into 'C:/Users/user/work/repos/qmk_firmware/lib/lufa'...
remote: Enumerating objects: 73792, done.
remote: Total 73792 (delta 0), reused 0 (delta 0), pack-reused 73792
Receiving objects: 100% (73792/73792), 18.67 MiB | 2.62 MiB/s, done.
Resolving deltas: 100% (59141/59141), done.
Submodule path 'lib/chibios': checked out '313416b8fda90d9973a749a0a35970956852c286'
Submodule path 'lib/chibios-contrib': checked out 'e71c7f075ddc3eabece436e889560ba75bd9fd18'
Submodule path 'lib/googletest': checked out 'ec44c6c1675c25b9827aacd08c02433cccde7780'
Submodule path 'lib/lufa': checked out 'ce10f7642b0459e409839b23cc91498945119b4d'
Submodule path 'lib/ugfx': checked out '23ceb054fcf9a6d7e29359b197e268ba03f1ce3c'

build docker image for build enbironment

$ cd qmk_firmware

$ docker build -t qmk .

[+] Building 209.2s (15/15) FINISHED
 => [internal] load build definition from Dockerfile                                                                           0.1s
 => => transferring dockerfile: 603B                                                                                           0.0s
 => [internal] load .dockerignore                                                                                              0.1s
 => => transferring context: 2B                                                                                                0.0s
 => [internal] load metadata for docker.io/qmkfm/base_container:latest                                                         2.2s
 => [auth] qmkfm/base_container:pull token for registry-1.docker.io                                                            0.0s
 => [internal] load build context                                                                                            166.4s
 => => transferring context: 717.02MB                                                                                        166.0s
 => [ 1/10] FROM docker.io/qmkfm/base_container@sha256:467f8dea1bbbd6a328fdb53676e8d8fc87f50b2e5149a0cffd18022f110ae34d        0.0s
 => CACHED [ 2/10] WORKDIR /qmk_firmware                                                                                       0.0s
 => [ 3/10] COPY . .                                                                                                          10.2s
 => [ 4/10] RUN apt-get update && apt-get install --no-install-recommends -y     usbutils     procps     evtest               10.4s
 => [ 5/10] RUN wget https://github.com/xpack-dev-tools/openocd-xpack/releases/download/v0.10.0-13/xpack-openocd-0.10.0-13-li  2.2s
 => [ 6/10] RUN tar -xvf xpack-openocd-0.10.0-13-linux-x64.tgz                                                                 1.0s
 => [ 7/10] RUN ln -s /xPacks/openocd/0.10.0-13/bin/openocd /usr/bin/openocd                                                   0.6s
 => [ 8/10] RUN pip3 install wheel                                                                                             2.3s
 => [ 9/10] RUN pip3 install pyusb                                                                                             2.1s
 => exporting to image                                                                                                        10.9s
 => => exporting layers                                                                                                       10.9s
 => => writing image sha256:2ef4dc33e873ecbc9a4fc528b3bcef35ed1de89dfdcd28110f9403e507d47476                                   0.0s
 => => naming to docker.io/library/qmk                                                                                         0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

sed

$ sed -i 's/Vector84,/RgbIsr,/g' lib/chibios/os/common/startup/ARMCMx/compilers/GCC/vectors.S

build QMK firmware in docker

$ docker run -v /`pwd`:/qmk_firmware -w //qmk_firmware qmk make womier/k66:default

This docker command option is for Windows. It is like

$ docker run -v `pwd`:/qmk_firmware -w /qmk_firmware qmk make womier/k66:default
$ docker run -v /`pwd`:/qmk_firmware -w //qmk_firmware qmk make womier/k66:default

QMK Firmware 0.7.101
Making womier/k66 with keymap default

Enabling LTO on ChibiOS-targeting boards is known to have a high likelihood of failure.
If unsure, set LINK_TIME_OPTIMIZATION_ENABLE = no.
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors 6-2017-q2-update) 6.3.1 20170620 (release) [ARM/embedded-6-branch revision
249437]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/womier/k66/matrix.c                                                           keyboards/womier/k66/matrix.c:56:
13: warning: 'unselect_col' defined but not used [-Wunused-function]
 static void unselect_col(uint8_t col) { setPinInputHigh(col_pins[col]); }
             ^~~~~~~~~~~~
keyboards/womier/k66/matrix.c:51:13: warning: 'select_col' defined but not used [-Wunused-function]
 static void select_col(uint8_t col) {
             ^~~~~~~~~~
 [OK]
Compiling: keyboards/womier/k66/led_matrix.c                                                       keyboards/womier/k66/led_matrix.c
:208:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
 void RgbIsr() {
      ^~~~~~
 [OK]
Compiling: keyboards/womier/k66/k66.c                                                               [OK]
Compiling: keyboards/womier/k66/keymaps/default/keymap.c                                            [OK]
Compiling: quantum/quantum.c                                                                        [OK]
Compiling: quantum/keymap_common.c                                                                  [OK]
Compiling: quantum/keycode_config.c                                                                 [OK]
Compiling: quantum/debounce/sym_g.c                                                                 [OK]
Compiling: tmk_core/common/chibios/eeprom_teensy.c                                                  [OK]
Compiling: quantum/color.c                                                                          [OK]
Compiling: quantum/rgb_matrix.c                                                                     [OK]
Compiling: quantum/rgb_matrix_drivers.c                                                             [OK]
Compiling: quantum/process_keycode/process_rgb.c                                                    [OK]
Compiling: quantum/led_tables.c                                                                     [OK]
Compiling: quantum/process_keycode/process_space_cadet.c                                            [OK]
Compiling: quantum/process_keycode/process_grave_esc.c                                              [OK]
Assembling: lib/chibios/os/common/startup/ARMCMx/compilers/GCC/crt0_v6m.S                           [OK]
Assembling: lib/chibios/os/common/startup/ARMCMx/compilers/GCC/vectors.S                            [OK]
Assembling: lib/chibios/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v6m.S                        [OK]
Compiling: tmk_core/common/host.c                                                                   [OK]
Compiling: tmk_core/common/keyboard.c                                                               [OK]
Compiling: tmk_core/common/action.c                                                                 [OK]
Compiling: tmk_core/common/action_tapping.c                                                         [OK]
Compiling: tmk_core/common/action_macro.c                                                           [OK]
Compiling: tmk_core/common/action_layer.c                                                           [OK]
Compiling: tmk_core/common/action_util.c                                                            [OK]
Compiling: tmk_core/common/print.c                                                                  [OK]
Compiling: tmk_core/common/debug.c                                                                  [OK]
Compiling: tmk_core/common/util.c                                                                   [OK]
Compiling: tmk_core/common/eeconfig.c                                                               [OK]
Compiling: tmk_core/common/report.c                                                                 [OK]
Compiling: tmk_core/common/chibios/suspend.c                                                        [OK]
Compiling: tmk_core/common/chibios/timer.c                                                          [OK]
Compiling: tmk_core/common/chibios/bootloader.c                                                     [OK]
Compiling: tmk_core/common/chibios/printf.c                                                         [OK]
Compiling: tmk_core/common/magic.c                                                                  [OK]
Compiling: tmk_core/protocol/chibios/usb_main.c                                                     [OK]
Compiling: tmk_core/protocol/chibios/main.c                                                         [OK]
Compiling: tmk_core/protocol/usb_descriptor.c                                                       [OK]
Compiling: tmk_core/protocol/chibios/usb_driver.c                                                   [OK]
Compiling: lib/chibios/os/oslib/src/chmboxes.c                                                      [OK]
Compiling: lib/chibios/os/oslib/src/chmemcore.c                                                     [OK]
Compiling: lib/chibios/os/oslib/src/chmemheaps.c                                                    [OK]
Compiling: lib/chibios/os/oslib/src/chmempools.c                                                    [OK]
Compiling: lib/chibios/os/oslib/src/chpipes.c                                                       [OK]
Compiling: lib/chibios/os/oslib/src/chfactory.c                                                     [OK]
Compiling: lib/chibios/os/common/startup/ARMCMx/compilers/GCC/crt1.c                                [OK]
Compiling: lib/chibios-contrib/os/common/ext/SN/SN32F26x/system_SN32F260.c                          [OK]
Compiling: lib/chibios/os/rt/src/chsys.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chdebug.c                                                          [OK]
Compiling: lib/chibios/os/rt/src/chtrace.c                                                          [OK]
Compiling: lib/chibios/os/rt/src/chvt.c                                                             [OK]
Compiling: lib/chibios/os/rt/src/chschd.c                                                           [OK]
Compiling: lib/chibios/os/rt/src/chthreads.c                                                        [OK]
Compiling: lib/chibios/os/rt/src/chtm.c                                                             [OK]
Compiling: lib/chibios/os/rt/src/chstats.c                                                          [OK]
Compiling: lib/chibios/os/rt/src/chregistry.c                                                       [OK]
Compiling: lib/chibios/os/rt/src/chsem.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chmtx.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chcond.c                                                           [OK]
Compiling: lib/chibios/os/rt/src/chevents.c                                                         [OK]
Compiling: lib/chibios/os/rt/src/chmsg.c                                                            [OK]
Compiling: lib/chibios/os/rt/src/chdynamic.c                                                        [OK]
Compiling: lib/chibios/os/common/ports/ARMCMx/chcore.c                                              [OK]
Compiling: lib/chibios/os/common/ports/ARMCMx/chcore_v6m.c                                          [OK]
Compiling: lib/chibios/os/hal/osal/rt/osal.c                                                        [OK]
Compiling: lib/chibios/os/hal/src/hal.c                                                             [OK]
Compiling: lib/chibios/os/hal/src/hal_buffers.c                                                     [OK]
Compiling: lib/chibios/os/hal/src/hal_queues.c                                                      [OK]
Compiling: lib/chibios/os/hal/src/hal_mmcsd.c                                                       [OK]
Compiling: lib/chibios/os/hal/src/hal_adc.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_can.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_crypto.c                                                      [OK]
Compiling: lib/chibios/os/hal/src/hal_dac.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_gpt.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_i2c.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_i2s.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_icu.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_mac.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_mmc_spi.c                                                     [OK]
Compiling: lib/chibios/os/hal/src/hal_pal.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_pwm.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_rtc.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_sdc.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_serial.c                                                      [OK]
Compiling: lib/chibios/os/hal/src/hal_serial_usb.c                                                  [OK]
Compiling: lib/chibios/os/hal/src/hal_sio.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_spi.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_st.c                                                          [OK]
Compiling: lib/chibios/os/hal/src/hal_trng.c                                                        [OK]
Compiling: lib/chibios/os/hal/src/hal_uart.c                                                        [OK]
Compiling: lib/chibios/os/hal/src/hal_usb.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_wdg.c                                                         [OK]
Compiling: lib/chibios/os/hal/src/hal_wspi.c                                                        [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_community.c                                           [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_fsmc.c                                                [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_nand.c                                                [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_sram.c                                                [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_sdram.c                                               [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_onewire.c                                             [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_eicu.c                                                [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_crc.c                                                 [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_rng.c                                                 [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_usbh.c                                                [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_debug.c                                     [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_desciter.c                                  [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_hub.c                                       [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_msd.c                                       [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_ftdi.c                                      [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_aoa.c                                       [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_hid.c                                       [OK]
Compiling: lib/chibios-contrib/os/hal/src/usbh/hal_usbh_uvc.c                                       [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_ee24xx.c                                              [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_ee25xx.c                                              [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_eeprom.c                                              [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_timcap.c                                              [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_qei.c                                                 [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_usb_hid.c                                             [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_usb_msd.c                                             [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_comp.c                                                [OK]
Compiling: lib/chibios-contrib/os/hal/src/hal_opamp.c                                               [OK]
Compiling: lib/chibios/os/hal/ports/common/ARMCMx/nvic.c                                            [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/SN32F260/hal_lld.c                                 [OK]
Compiling: lib/chibios/os/various/syscalls.c                                                        [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/GPIO/hal_pal_lld.c                             [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/USB/hal_usb_lld.c                              [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/USB/hidram.c                                   [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/USB/hiduser.c                                  [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/USB/usbepfunc.c                                [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/USB/usbhw.c                                    [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/USB/usbram.c                                   [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/USB/usbuser.c                                  [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/CT/hal_st_lld.c                                [OK]
Compiling: lib/chibios-contrib/os/hal/ports/SN32/LLD/CT/CT16B0.c                                    [OK]
Compiling: keyboards/womier/k66/boards/SN_SN32F260/board.c                                          [OK]
Compiling: lib/chibios/os/hal/lib/streams/chprintf.c                                                [OK]
Compiling: lib/chibios/os/hal/lib/streams/memstreams.c                                              [OK]
Compiling: lib/chibios/os/hal/lib/streams/nullstreams.c                                             [OK]
Linking: .build/womier_k66_default.elf                                                              [OK]
Creating binary load file for flashing: .build/womier_k66_default.bin                               [OK]
Creating load file for flashing: .build/womier_k66_default.hex                                      [OK]

Size after:
   text    data     bss     dec     hex filename
      0   29134       0   29134    71ce .build/womier_k66_default.hex

Copying womier_k66_default.bin to qmk_firmware folder                                               [OK]
(Firmware size check does not yet support cortex-m0 microprocessors; skipping.)

Something wrong firmware

After above instruction, I get firmware for my K66. But something wrong...

  • boot is OK, the keyboard is rainbow!
  • Case1: When I pressed a key, animation stopped and keep a key pressed. (typed aaaaaaa...)
  • Case2: When I pressed some key, animation stopped and the keyboard freezed.

I want to know how to build QMK for K66. Please help me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment