aboutsummaryrefslogtreecommitdiff
path: root/docs/getting_started_build_tools.md
diff options
context:
space:
mode:
authorskullY <skullydazed@gmail.com>2017-08-05 20:54:34 -0700
committerJack Humbert <jack.humb@gmail.com>2017-08-16 15:47:20 -0400
commite6c638bed1fa0a48bb6f8697b2a61717c4fd0992 (patch)
treed82e001a7fe61eeb6311efc69ec95e03aa69bdfa /docs/getting_started_build_tools.md
parent89bcdde92779d5f9a4ca5a3947d5720baf09b75c (diff)
downloadqmk_firmware-e6c638bed1fa0a48bb6f8697b2a61717c4fd0992.tar.gz
qmk_firmware-e6c638bed1fa0a48bb6f8697b2a61717c4fd0992.zip
Overhaul the Getting Started section and add a FAQ section
Diffstat (limited to 'docs/getting_started_build_tools.md')
-rw-r--r--docs/getting_started_build_tools.md123
1 files changed, 123 insertions, 0 deletions
diff --git a/docs/getting_started_build_tools.md b/docs/getting_started_build_tools.md
new file mode 100644
index 000000000..49ffdaf69
--- /dev/null
+++ b/docs/getting_started_build_tools.md
@@ -0,0 +1,123 @@
1# Installing Build Tools
2
3This page describes setting up the build environment for QMK. These instructions cover AVR processors (such as the atmega32u4.)
4
5<!-- FIXME: We should have ARM instructions somewhere. -->
6
7## Linux
8
9To ensure you are always up to date, you can just run `sudo util/install_dependencies.sh`. That should always install all the dependencies needed. **This will run `apt-get upgrade`.**
10
11You can also install things manually, but this documentation might not be always up to date with all requirements.
12
13The current requirements are the following, but not all might be needed depending on what you do. Also note that some systems might not have all the dependencies available as packages, or they might be named differently.
14
15```
16build-essential
17gcc
18unzip
19wget
20zip
21gcc-avr
22binutils-avr
23avr-libc
24dfu-programmer
25dfu-util
26gcc-arm-none-eabi
27binutils-arm-none-eabi
28libnewlib-arm-none-eabi
29git
30```
31
32Install the dependencies with your favorite package manager.
33
34Debian/Ubuntu example:
35
36 sudo apt-get update
37 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
38
39# Mac
40If you're using [homebrew,](http://brew.sh/) you can use the following commands:
41
42 brew tap osx-cross/avr
43 brew install avr-libc
44 brew install dfu-programmer
45
46This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. Note that the `make` and `make install` portion during the homebrew installation of avr-libc can take over 20 minutes and exhibit high CPU usage.
47
48## Windows with msys2 (recommended)
49
50The best environment to use, for Windows Vista through any later version (tested on 7 and 10,) is [msys2](http://www.msys2.org).
51
52* Install msys2 by downloading and following the instructions here: http://www.msys2.org
53* Open the "MSYS2 MingGW 64-bit" shortcut
54* Navigate to your qmk checkout. For example, if it's in the root of your c drive:
55 * `$ cd /c/qmk_firmware`
56* Run `util/msys2_install.sh` and follow the prompts
57
58## Windows 10 (deprecated)
59These are the old instructions for Windows 10. We recommend you use [MSYS2 as outlined above](#windows-with-msys2-recommended).
60
61### Creators Update
62If you have Windows 10 with Creators Update or later, you can build and flash the firmware directly. Before the Creators Update, only building was possible. If you don't have it yet or if are unsure, follow [these instructions](https://support.microsoft.com/en-us/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-creators-update).
63
64### Windows Subsystem for Linux
65In addition to the Creators Update, you need Windows 10 Subystem for Linux, so install it following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). If you already have the Windows 10 Subsystem for Linux from the Anniversary update it's recommended that you [upgrade](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) it to 16.04LTS, because some keyboards don't compile with the toolchains included in 14.04LTS. Note that you need to know what your are doing if you chose the `sudo do-release-upgrade` method.
66
67### Git
68If you already have cloned the repository on your Windows file system you can ignore this section.
69
70You will need to clone the repository to your Windows file system using the normal Git for Windows and **not** the WSL Git. So if you haven't installed Git before, [download](https://git-scm.com/download/win) and install it. Then [set it up](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup), it's important that you setup the e-mail and user name, especially if you are planning to contribute.
71
72Once Git is installed, open the Git bash command and change the directory to where you want to clone QMK, note that you have to use forward slashes, and that your c drive is accessed like this `/c/path/to/where/you/want/to/go`. Then run `git clone --recurse-submodules https://github.com/qmk/qmk_firmware`, this will create a new folder `qmk_firmware` as a subfolder of the current one.
73
74### Toolchain setup
75The Toolchain setup is done through the Windows Subsystem for Linux, and the process is fully automated. If you want to do everything manually, there are no other instructions than the scripts themselves, but you can always open issues and ask for more information.
76
771. Open "Bash On Ubuntu On Windows" from the start menu.
782. Go to the directory where you cloned `qmk_firmware`. Note that the paths start with `/mnt/` in the WSL, so you have to write for example `cd /mnt/c/path/to/qmk_firmware`.
793. Run `util/wsl_install.sh` and follow the on-screen instructions.
804. Close the Bash command window, and re-open it.
815. You are ready to compile and flash the firmware!
82
83### Some important things to keep in mind
84* You can run `util/wsl_install.sh` again to get all the newest updates.
85* Your QMK repository need to be on a Windows file system path, since WSL can't run executables outside it.
86* The WSL Git is **not** compatible with the Windows Git, so use the Windows Git Bash or a windows Git GUI for all Git operations
87* You can edit files either inside WSL or normally using Windows, but note that if you edit makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work.
88
89## Windows (Vista and later)
90
91These are the old instructions for Windows Vista and later. We recommend you use [MSYS2 as outlined above](#windows-with-msys2-recommended).
92
931. If you have ever installed WinAVR, uninstall it.
942. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**.
953. If you are going to flash Infinity based keyboards you will need to install dfu-util, refer to the instructions by [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware).
964. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location.
975. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/qmk/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer.
986. Open the `\util` folder.
997. Double-click on the `1-setup-path-win` batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up.
1008. Right-click on the `2-setup-environment-win` batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete!
101
102If you have trouble and want to ask for help, it is useful to generate a *Win_Check_Output.txt* file by running `Win_Check.bat` in the `\util` folder.
103
104## Docker
105
106If this is a bit complex for you, Docker might be the turn-key solution you need. After installing [Docker](https://www.docker.com/products/docker), run the following command at the root of the QMK folder to build a keyboard/keymap:
107
108```bash
109# You'll run this every time you want to build a keymap
110# modify the keymap and keyboard assigment to compile what you want
111# defaults are ergodox/default
112
113docker run -e keymap=gwen -e subproject=ez -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware
114
115# On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this
116docker run -e keymap=default -e subproject=ez -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
117
118```
119
120This will compile the targeted keyboard/keymap and leave it in your QMK directory for you to flash.
121
122## Vagrant
123If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [vagrant guide](vagrant_guide.md).