-
Notifications
You must be signed in to change notification settings - Fork 0
/
Vagrantfile
157 lines (131 loc) · 5.66 KB
/
Vagrantfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Testing an ArduPilot VM:
# sim_vehicle.py --map --console # in the starting directory should start a Copter simulation
# sim_vehicle.py --debug --gdb
# sim_vehicle.py --valgrind
# time (cd /vagrant && ./waf configure --board=fmuv2 && ./waf build --target=bin/ardusub) # ~9 minutes
# time (cd /vagrant && ./waf configure --board=fmuv3 && ./waf build --target=bin/ardusub) # ~ minutes (after building fmuv2)
# time (cd /vagrant && ./waf configure --board=navio2 && ./waf build --target=bin/arduplane)
# time (cd /vagrant && ./Tools/autotest/sim_vehicle.py --map --console -v ArduPlane -f jsbsim) # should test JSBSim
# time (cd /vagrant && ./Tools/autotest/autotest.py build.Rover test.Rover)
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
class VagrantPlugins::ProviderVirtualBox::Action::Network
def dhcp_server_matches_config?(dhcp_server, config)
true
end
end
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.ssh.forward_x11 = true
config.vm.provider "virtualbox" do |vb|
# host only adapter
vb.customize ["modifyvm", :id, "--memory", "3192"]
vb.customize ["modifyvm", :id, "--ioapic", "on"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
# Make some effort to avoid clock skew
vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", "5000"]
vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-start"]
vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore", "1"]
end
config.vm.network "private_network", :type => 'dhcp', :name => 'vboxnet0'
# If you are on windows then you must use a version of git >= 1.8.x
# to update the submodules in order to build. Older versions of git
# use absolute paths for submodules which confuses things.
# removing this line causes "A box must be specified." error
# and this is the default box that will be booted if no name is specified
config.vm.box = "ubuntu/bionic64"
# LTS, EOL April, 2019:
config.vm.define "trusty32", autostart: false do |trusty32|
trusty32.vm.box = "ubuntu/trusty32"
trusty32.vm.provision "trusty32", type: "shell", path: "Tools/vagrant/initvagrant.sh"
trusty32.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# 14.04.5 LTS, EOL April, 2019:
config.vm.define "trusty64", autostart: false do |trusty64|
trusty64.vm.box = "ubuntu/trusty64"
trusty64.vm.provision "trusty64", type: "shell", path: "Tools/vagrant/initvagrant.sh"
trusty64.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# LTS, EOL April 2021
# this VM is useful for running valgrind on!
config.vm.define "xenial32", autostart: false do |xenial32|
xenial32.vm.box = "ubuntu/xenial32"
xenial32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
xenial32.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
config.vm.define "xenial64", autostart: false do |xenial64|
xenial64.vm.box = "ubuntu/xenial64"
xenial64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
xenial64.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# NO LONGER AVAILABLE FOR DOWNLOAD, EOL January 2018
# EOL January 2018
# Only kept around for those few dev's who have already got this image and continue to use it.
config.vm.define "zesty32", autostart: false do |zesty32|
zesty32.vm.box = "ubuntu/zesty32"
zesty32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
zesty32.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# 17.10, EOL July 2018
# Only kept around for those few dev's who have already got this image and continue to use it; not available for download
config.vm.define "artful32", autostart: false do |artful32|
artful32.vm.box = "ubuntu/artful32"
artful32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
artful32.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# 18.04 LTS
# Only kept around for those few dev's who have already got this image and continue to use it; not available for download
config.vm.define "bionic32", autostart: false do |bionic32|
bionic32.vm.box = "ubuntu/bionic32"
bionic32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
bionic32.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# 18.04 LTS
config.vm.define "bionic64", primary: true do |bionic64|
bionic64.vm.box = "ubuntu/bionic64"
bionic64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
bionic64.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# 18.10
config.vm.define "cosmic32", autostart: false do |cosmic32|
cosmic32.vm.box = "ubuntu/cosmic32"
cosmic32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
cosmic32.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# 18.10
config.vm.define "cosmic64", autostart: false do |cosmic64|
cosmic64.vm.box = "ubuntu/cosmic64"
cosmic64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
cosmic64.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
end
end
# 19.04 bleeding edge
config.vm.define "disco64", autostart: false do |disco64|
disco64.vm.box = "ubuntu/disco64"
disco64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
disco64.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilotCustom"
vb.gui = true
end
end
end