forked from ArduPilot/ardupilot
-
Notifications
You must be signed in to change notification settings - Fork 18
/
Vagrantfile
306 lines (279 loc) · 11.2 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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Testing an ArduPilot VM:
# rm -rf /vagrant/build
# dpkg -l | grep modemmanager
# sim_vehicle.py --map --console # in the starting directory should start a Copter simulation
# sim_vehicle.py --debug --gdb
# sim_vehicle.py --debug --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"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.ssh.forward_x11 = true
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# Don't boot with headless mode
# vb.gui = true
#
# # Use VBoxManage to customize the VM. For example to change memory:
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
# 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.boot_timeout = 1500
# 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 = "ArduPilot (trusty32)"
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 = "ArduPilot (trusty64)"
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 = "ArduPilot (xenial32)"
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 = "ArduPilot (xenial64)"
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 = "ArduPilot (zesty32)"
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 = "ArduPilot (artful32)"
end
end
# 18.04 LTS EOL April 2023
# 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 = "ArduPilot (bionic32)"
end
end
# 18.04 LTS EOL April 2023
config.vm.define "bionic64", autostart: false do |bionic64|
bionic64.vm.box = "ubuntu/bionic64"
bionic64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
bionic64.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (bionic64)"
end
end
# 18.04 LTS EOL April 2023
config.vm.define "bionic64-desktop", autostart: false do |bionic64|
bionic64.vm.box = "ubuntu/bionic64"
bionic64.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
bionic64.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (bionic64-desktop)"
vb.gui = true
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 = "ArduPilot (cosmic32)"
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 = "ArduPilot (cosmic64)"
end
end
# 19.04
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 = "ArduPilot (disco64)"
end
end
# 19.10 - broken; fails to use NamedTemporaryFile to create file for gdb
# config.vm.define "eoan", autostart: false do |eoan|
# eoan.vm.box = "ubuntu/eoan64"
# eoan.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
# eoan.vm.provider "virtualbox" do |vb|
# vb.name = "ArduPilot (eoan)"
# end
# eoan.vm.boot_timeout = 1200
# end
# 20.04 LTS EOL April 2025
config.vm.define "focal", autostart: false do |focal|
focal.vm.box = "ubuntu/focal64"
focal.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
focal.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (focal)"
end
focal.vm.boot_timeout = 1200
end
config.vm.define "focal-desktop", autostart: false do |focal|
focal.vm.box = "ubuntu/focal64"
focal.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
focal.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (focal-desktop)"
vb.gui = true
end
focal.vm.boot_timeout = 1500
end
# 20.10 EOL July 2021
# config.vm.define "groovy", autostart: false do |groovy|
# groovy.vm.box = "ubuntu/groovy64"
# groovy.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
# groovy.vm.provider "virtualbox" do |vb|
# vb.name = "ArduPilot (groovy)"
# end
# groovy.vm.boot_timeout = 1200
# end
# 21.04 EOL January 2022 apt repo down
# config.vm.define "hirsute", autostart: false do |hirsute|
# hirsute.vm.box = "ubuntu/hirsute64"
# hirsute.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
# hirsute.vm.provider "virtualbox" do |vb|
# vb.name = "ArduPilot (hirsute)"
# end
# hirsute.vm.boot_timeout = 1200
# end
# config.vm.define "hirsute-desktop", autostart: false do |hirsute|
# hirsute.vm.box = "ubuntu/hirsute64"
# hirsute.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
# hirsute.vm.provider "virtualbox" do |vb|
# vb.name = "ArduPilot (hirsute-desktop)"
# vb.gui = true
# end
# hirsute.vm.boot_timeout = 1200
# end
# 21.10 EOL July 2022
# config.vm.define "impish", autostart: false do |impish|
# impish.vm.box = "ubuntu/impish64"
# impish.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
# impish.vm.provider "virtualbox" do |vb|
# vb.name = "ArduPilot (impish)"
# end
# impish.vm.boot_timeout = 1200
# end
# 22.04 LTS EOL Apr 2032
config.vm.define "jammy", primary: true do |jammy|
jammy.vm.box = "ubuntu/jammy64"
jammy.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
jammy.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (jammy)"
end
jammy.vm.boot_timeout = 1200
end
config.vm.define "jammy-desktop", autostart: false do |jammy|
jammy.vm.box = "ubuntu/jammy64"
jammy.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
jammy.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (jammy-desktop)"
vb.gui = true
end
jammy.vm.boot_timeout = 1200
end
# 23.04 EOL Jan 2024
config.vm.define "lunar", autostart: false do |lunar|
lunar.vm.box = "ubuntu/lunar64"
lunar.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
lunar.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (lunar)"
end
lunar.vm.boot_timeout = 1200
end
config.vm.define "lunar-desktop", autostart: false do |lunar|
lunar.vm.box = "ubuntu/lunar64"
lunar.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
lunar.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (lunar-desktop)"
vb.gui = true
end
lunar.vm.boot_timeout = 1200
end
# 23.10 EOL Jul 2024
config.vm.define "mantic", autostart: false do |mantic|
mantic.vm.box = "ubuntu/mantic64"
mantic.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
mantic.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (mantic)"
end
mantic.vm.boot_timeout = 1200
end
config.vm.define "mantic-desktop", autostart: false do |mantic|
mantic.vm.box = "ubuntu/mantic64"
mantic.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
mantic.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (mantic-desktop)"
vb.gui = true
end
mantic.vm.boot_timeout = 1200
end
# 24.04 end of standard support Jun 2029
# note the use of "bento" here; Ubuntu stopped providing Vagrant
# images due to Hashicorp adopting the "Business Source License".
config.vm.define "noble", autostart: false do |noble|
noble.vm.box = "bento/ubuntu-24.04"
noble.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
noble.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (noble)"
end
noble.vm.boot_timeout = 1200
end
config.vm.define "noble-desktop", autostart: false do |noble|
noble.vm.box = "bento/ubuntu-24.04"
noble.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
noble.vm.provider "virtualbox" do |vb|
vb.name = "ArduPilot (noble-desktop)"
vb.gui = true
end
noble.vm.boot_timeout = 1200
end
end