X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=FAQ-Build.md;h=75babb6badaa6dfc48e2f4030083c1008746be00;hb=26fda6bfa39d38def20742829e0f1e45b4916b68;hp=41557d2ddb0d5a380a95b60fd06dceff1380ee5c;hpb=64e64e5153c9659a09e0bd9f297fd69a91f4a61d;p=qmk_firmware.git diff --git a/FAQ-Build.md b/FAQ-Build.md index 41557d2dd..75babb6ba 100644 --- a/FAQ-Build.md +++ b/FAQ-Build.md @@ -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.] [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`. @@ -15,7 +33,7 @@ Frist remove all files made in previous build, $ make clean -then build new frimware. +then build new firmware. $ make [KEYMAP=...] @@ -91,4 +109,43 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="066 ``` # tmk keyboard products https://github.com/tmk/tmk_keyboard SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666" +``` + + + +## Cortex: cstddef: No such file or directory +GCC 4.8 of Ubuntu 14.04 had this problem and had to update to 4.9 with this PPA. +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/ + + +## '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