Browse Source

support/misc: Adding Vagrant file for provisioning

This patch adds a Vagrant file to buildroot. With this file
you can provision a complete buildroot developing environment
in minutes on all major platforms (Linux/Mac/Windows).

[Peter: bump to 2GB RAM, hardcode Buildroot release, add unzip,
	drop website update and tweak manual text as suggested by Yann]
Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Angelo Compagnucci 8 years ago
parent
commit
778026b94d
2 changed files with 74 additions and 0 deletions
  1. 18 0
      docs/manual/getting.txt
  2. 56 0
      support/misc/Vagrantfile

+ 18 - 0
docs/manual/getting.txt

@@ -10,6 +10,24 @@ November. Release numbers are in the format YYYY.MM, so for example
 
 Release tarballs are available at http://buildroot.org/downloads/[].
 
+For your convenience, a https://www.vagrantup.com/[Vagrantfile] is
+available in `support/misc/Vagrantfile` in the Buildroot source tree
+to quickly set up a virtual machine with the needed dependencies to
+get started.
+
+If you want to setup an isolated buildroot environment on Linux or Mac
+Os X, paste this line onto your terminal:
+
+--------------------
+wget https://buildroot.org/downloads/Vagrantfile; vagrant up
+--------------------
+
+If you are on Windows, paste this into your powershell:
+
+--------------------
+(new-object System.Net.WebClient).DownloadFile("https://buildroot.org/downloads/Vagrantfile","Vagrantfile"); vagrant up
+--------------------
+
 If you want to follow development, you can use the daily snapshots or
 make a clone of the Git repository. Refer to the
 http://buildroot.org/download[Download page] of the Buildroot website

+ 56 - 0
support/misc/Vagrantfile

@@ -0,0 +1,56 @@
+################################################################################
+#
+# Vagrantfile
+#
+################################################################################
+
+# Buildroot version to use
+RELEASE='2015.11.1'
+
+### Change here for more memory/cores ###
+VM_MEMORY=2048
+VM_CORES=1
+
+Vagrant.configure('2') do |config|
+	config.vm.box = 'ubuntu/trusty64'
+
+	config.vm.provider :vmware_fusion do |v, override|
+		v.vmx['memsize'] = VM_MEMORY
+		v.vmx['numvcpus'] = VM_CORES
+	end
+
+	config.vm.provider :virtualbox do |v, override|
+		v.memory = VM_MEMORY
+		v.cpus = VM_CORES
+
+		required_plugins = %w( vagrant-vbguest )
+		required_plugins.each do |plugin|
+		  system "vagrant plugin install #{plugin}" unless Vagrant.has_plugin? plugin
+		end
+	end
+
+	config.vm.provision 'shell' do |s|
+		s.inline = 'echo Setting up machine name'
+
+		config.vm.provider :vmware_fusion do |v, override|
+			v.vmx['displayname'] = "Buildroot #{RELEASE}"
+		end
+
+		config.vm.provider :virtualbox do |v, override|
+			v.name = "Buildroot #{RELEASE}"
+		end
+	end
+
+	config.vm.provision 'shell', inline:
+		"sudo dpkg --add-architecture i386
+		sudo apt-get -q update
+		sudo apt-get -q -y install build-essential libncurses5-dev \
+			git bzr cvs mercurial subversion libc6:i386 unzip
+		sudo apt-get -q -y autoremove
+		sudo apt-get -q -y clean"
+
+	config.vm.provision 'shell', privileged: false, inline:
+		"echo 'Downloading and extracting buildroot #{RELEASE}'
+		wget -q -c http://buildroot.org/downloads/buildroot-#{RELEASE}.tar.gz
+		tar axf buildroot-#{RELEASE}.tar.gz"
+end