]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - FAQ-Build.md
Updated License Clarification (markdown)
[qmk_firmware.git] / FAQ-Build.md
index c3f168a719e5b0025591456ef05dcadffa55368c..2e21cb69214a1d1db236dd6b2dfeee9388c15e7b 100644 (file)
@@ -1,5 +1,5 @@
 ## READ FIRST
-- https://github.com/tmk/tmk_keyboard/blob/master/doc/build.md
+- https://github.com/jackhumbert/qmk_firmware/blob/master/doc/BUILD_GUIDE.md
 
 In short,
 
@@ -8,6 +8,24 @@ In short,
     $ make [-f Makefile.<variant>] [KEYMAP=...] dfu
 
 
+## Can't program on Linux and Mac
+You will need proper permission to operate a device. For Linux users see udev rules below.
+Easy way is to use `sudo` command, if you are not familiar with this command check its manual with `man sudo` or this page on line.
+
+https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/sudo.8.html
+
+In short when your controller is ATMega32u4,
+    
+    $ sudo dfu-programmer atmega32u4 erase --force
+    $ sudo dfu-programmer atmega32u4 flash your.hex
+    $ sudo dfu-programmer atmega32u4 reset
+
+or just
+
+    $ sudo make dfu
+
+But to run `make` with root privilege is not good idea. Use former method as possible.
+
 ## Do 'make clean' before 'make'
 You'll need `make clean` after you edit **config.h** or change options like `KEYMAP`.
 
@@ -101,4 +119,33 @@ https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded
 
 https://github.com/tmk/tmk_keyboard/issues/212
 https://github.com/tmk/tmk_keyboard/wiki/mbed-cortex-porting#compile-error-cstddef
-https://developer.mbed.org/forum/mbed/topic/5205/
\ No newline at end of file
+https://developer.mbed.org/forum/mbed/topic/5205/
+
+
+## 'clock_prescale_set' and 'clock_div_1' not available
+Your toolchain is too old to support the MCU. For example WinAVR 20100110 doesn't support ATMega32u2.
+
+```
+Compiling C: ../../tmk_core/protocol/lufa/lufa.c
+avr-gcc -c -mmcu=atmega32u2 -gdwarf-2 -DF_CPU=16000000UL -DINTERRUPT_CONTROL_ENDPOINT -DBOOTLOADER_SIZE=4096 -DF_USB=16000000UL -DARCH=ARCH_AVR8 -DUSB_DEVICE_ONLY -DUSE_FLASH_DESCRIPTORS -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -DFIXED_CONTROL_ENDPOINT_SIZE=8  -DFIXED_NUM_CONFIGURATIONS=1 -DPROTOCOL_LUFA -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DCOMMAND_ENABLE -DVERSION=unknown -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-functions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototypes -Wa,-adhlns=obj_alps64/protocol/lufa/lufa.lst -I. -I../../tmk_core -I../../tmk_core/protocol/lufa -I../../tmk_core/protocol/lufa/LUFA-git -I../../tmk_core/common -std=gnu99 -include config.h -MMD -MP -MF .dep/obj_alps64_protocol_lufa_lufa.o.d  ../../tmk_core/protocol/lufa/lufa.c -o obj_alps64/protocol/lufa/lufa.o
+../../tmk_core/protocol/lufa/lufa.c: In function 'setup_mcu':
+../../tmk_core/protocol/lufa/lufa.c:575: warning: implicit declaration of function 'clock_prescale_set'
+../../tmk_core/protocol/lufa/lufa.c:575: error: 'clock_div_1' undeclared (first use in this function)
+../../tmk_core/protocol/lufa/lufa.c:575: error: (Each undeclared identifier is reported only once
+../../tmk_core/protocol/lufa/lufa.c:575: error: for each function it appears in.)
+make: *** [obj_alps64/protocol/lufa/lufa.o] Error 1
+```
+
+
+## BOOTLOADER_SIZE for AVR
+Note that Teensy2.0++ bootloader size is 2048byte. Some Makefiles may have wrong comment.
+
+```
+# Boot Section Size in *bytes*    
+#   Teensy halfKay   512          
+#   Teensy++ halfKay 2048         
+#   Atmel DFU loader 4096       (TMK Alt Controller)
+#   LUFA bootloader  4096         
+#   USBaspLoader     2048         
+OPT_DEFS += -DBOOTLOADER_SIZE=2048
+```
\ No newline at end of file