Commit | Line | Data |
---|---|---|
fd454e5b AG |
1 | # -*- mode: ruby -*- |
2 | # vi: set ft=ruby : | |
3 | ||
4 | Vagrant.configure(2) do |config| | |
37b042a5 | 5 | # define a name instead of just 'default' |
6 | config.vm.define "qmk_firmware" | |
7 | ||
8 | # VMware/Virtualbox ( and also Hyperv/Parallels) 64 bit | |
9 | config.vm.box = "bento/ubuntu-16.04" | |
fd454e5b AG |
10 | |
11 | # This section allows you to customize the Virtualbox VM | |
12 | # settings, ie showing the GUI or upping the memory | |
13 | # or cores if desired | |
14 | config.vm.provider "virtualbox" do |vb| | |
15 | # Hide the VirtualBox GUI when booting the machine | |
16 | vb.gui = false | |
17 | # Uncomment the below lines if you want to program | |
18 | # your Teensy via the VM rather than your host OS | |
19 | #vb.customize ['modifyvm', :id, '--usb', 'on'] | |
20 | #vb.customize ['usbfilter', 'add', '0', | |
37b042a5 | 21 | # '--target', :id, |
22 | # '--name', 'teensy', | |
23 | # '--vendorid', '0x16c0', | |
24 | # '--productid','0x0478' | |
25 | # ] | |
fd454e5b AG |
26 | # Customize the amount of memory on the VM: |
27 | vb.memory = "512" | |
37b042a5 | 28 | # Uncomment the below lines if you have time sync |
29 | # issues with make and incremental builds | |
30 | #vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ] | |
fd454e5b AG |
31 | end |
32 | ||
33 | # This section allows you to customize the VMware VM | |
34 | # settings, ie showing the GUI or upping the memory | |
35 | # or cores if desired | |
36 | config.vm.provider "vmware_workstation" do |vmw| | |
37 | # Hide the VMware GUI when booting the machine | |
38 | vmw.gui = false | |
39 | ||
40 | # Customize the amount of memory on the VM: | |
41 | vmw.memory = "512" | |
42 | end | |
43 | ||
44 | config.vm.provider "vmware_fusion" do |vmf| | |
45 | # Hide the vmfare GUI when booting the machine | |
46 | vmf.gui = false | |
47 | ||
48 | # Customize the amount of memory on the VM: | |
49 | vmf.memory = "512" | |
50 | end | |
51 | ||
52 | # Docker provider pulls from hub.docker.com respecting docker.image if | |
53 | # config.vm.box is nil. Note that this bind-mounts from the current dir to | |
54 | # /vagrant in the guest, so unless your UID is 1000 to match vagrant in the | |
55 | # image, you'll need to: chmod -R a+rw . | |
56 | config.vm.provider "docker" do |docker, override| | |
57 | override.vm.box = nil | |
58 | docker.image = "jesselang/debian-vagrant:jessie" | |
59 | docker.has_ssh = true | |
60 | end | |
61 | ||
62 | # This script ensures the required packages for AVR programming are installed | |
63 | # It also ensures the system always gets the latest updates when powered on | |
64 | # If this causes issues you can run a 'vagrant destroy' and then | |
37b042a5 | 65 | # add a # before ,run: (or change "always" to "once") and run 'vagrant up' to get a working |
fd454e5b | 66 | # non-updated box and then attempt to troubleshoot or open a Github issue |
37b042a5 | 67 | config.vm.provision "shell", inline: "/bin/sh -c 'yes | /vagrant/util/qmk_install.sh'", run: "always" |
fd454e5b AG |
68 | |
69 | config.vm.post_up_message = <<-EOT | |
fd454e5b | 70 | |
a980a797 | 71 | Log into the VM using 'vagrant ssh'. QMK directory synchronized with host is |
72 | located at /vagrant | |
37b042a5 | 73 | To compile the .hex files use make command inside this directory, e.g. |
74 | cd /vagrant | |
75 | make <keyboard>:default | |
fd454e5b | 76 | |
a980a797 | 77 | Examples: |
78 | make planck/rev4:default:dfu | |
79 | make planck:default | |
fd454e5b AG |
80 | |
81 | EOT | |
82 | end |