You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.9 KiB

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