vagrant: add Vagrantfile to test native in FreeBSD
This commit is contained in:
parent
42eb044ec6
commit
f9e3c0f513
70
dist/tools/vagrant/freebsd/README.md
vendored
Normal file
70
dist/tools/vagrant/freebsd/README.md
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
# RIOT FreeBSD VM
|
||||
|
||||
## About
|
||||
This provides a [Vagrantfile] to compile and test the RIOT [`native`][native]
|
||||
platform on FreeBSD stable (12.1).
|
||||
|
||||
## Requirements
|
||||
Make sure your system satisfies the latest version of all following dependencies:
|
||||
* [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
|
||||
* [VirtualBox Extension Pack](https://www.virtualbox.org/wiki/Downloads)
|
||||
* [Vagrant](https://www.vagrantup.com/downloads.html)
|
||||
|
||||
## General usage
|
||||
The following commands must be run from this directory on the host system
|
||||
|
||||
```
|
||||
vagrant plugin install vagrant-disksize # for big enough disk
|
||||
vagrant up
|
||||
vagrant provision # depending on the vagrant version this might alreardy be
|
||||
# executed with vagrant up
|
||||
```
|
||||
This will start up and set-up the virtual machine.
|
||||
```
|
||||
vagrant ssh
|
||||
```
|
||||
This logs you into the VM as vagrant user.
|
||||
|
||||
See the general vagrant [README.md](../README.md) for more commands.
|
||||
|
||||
## Inside the VM
|
||||
Once logged in to the VM you can run compile and run tests e.g.
|
||||
|
||||
```sh
|
||||
make -C tests/shell all -j
|
||||
make -C tests/shell test
|
||||
```
|
||||
|
||||
Even applications requiring network interface access should be able to work:
|
||||
|
||||
```sh
|
||||
sudo dist/tools/tapsetup/tapsetup
|
||||
make -C examples/gnrc_networking all -j16
|
||||
make -C examples/gnrc_networking term
|
||||
```
|
||||
|
||||
```
|
||||
> ifconfig
|
||||
ifconfig
|
||||
Iface 6 HWaddr: F1:28:23:23:F1:28
|
||||
L2-PDU:1500 MTU:1500 HL:64 RTR
|
||||
RTR_ADV
|
||||
Source address length: 6
|
||||
Link type: wired
|
||||
inet6 addr: fe80::f328:23ff:fe23:f128 scope: link TNT[1]
|
||||
inet6 group: ff02::2
|
||||
inet6 group: ff02::1
|
||||
inet6 group: ff02::1:ff23:f128
|
||||
|
||||
Statistics for Layer 2
|
||||
RX packets 5 bytes 738
|
||||
TX packets 2 (Multicast: 2) bytes 78
|
||||
TX succeeded 2 errors 0
|
||||
Statistics for IPv6
|
||||
RX packets 4 bytes 340
|
||||
TX packets 2 (Multicast: 2) bytes 128
|
||||
TX succeeded 2 errors 0
|
||||
```
|
||||
|
||||
[Vagrantfile]: ./Vagrantfile
|
||||
[native]: https://doc.riot-os.org/group__boards__native.html
|
||||
38
dist/tools/vagrant/freebsd/Vagrantfile
vendored
Normal file
38
dist/tools/vagrant/freebsd/Vagrantfile
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
$init_riot = <<-INIT_RIOT
|
||||
# vim for xxd
|
||||
pkg install -y bash git gmake gcc cmake afl afl++ \
|
||||
python3 py37-pip py37-scipy py37-pycrypto py37-cython py37-scapy \
|
||||
vim
|
||||
chsh -s /usr/local/bin/bash vagrant
|
||||
if ! [ -d /home/vagrant/RIOT ]; then
|
||||
git clone --recurse-submodules https://github.com/RIOT-OS/RIOT /home/vagrant/RIOT
|
||||
fi
|
||||
chown -R vagrant: /home/vagrant/RIOT
|
||||
curl https://raw.githubusercontent.com/RIOT-OS/riotdocker/master/requirements.txt \
|
||||
> /tmp/requirements.txt
|
||||
su - vagrant -c "pip install --user -r /tmp/requirements.txt"
|
||||
# install most current pexpect to prevent async bug
|
||||
su - vagrant -c "pip install --upgrade --user pexpect"
|
||||
grep -q "export MAKE=gmake" /home/vagrant/.profile || \
|
||||
echo "export MAKE=gmake" >> /home/vagrant/.profile
|
||||
grep -q "export LINK=gcc" /home/vagrant/.profile || \
|
||||
echo "export LINK=gcc" >> /home/vagrant/.profile
|
||||
grep -q "export CC=gcc" /home/vagrant/.profile || \
|
||||
echo "export CC=gcc" >> /home/vagrant/.profile
|
||||
grep -q 'export PATH=/home/vagrant/.local/bin:${PATH}' /home/vagrant/.profile || \
|
||||
echo 'export PATH=/home/vagrant/.local/bin:${PATH}' >> /home/vagrant/.profile
|
||||
# make gmake default make
|
||||
if ! [ -h /home/vagrant/.local/bin/make ]; then
|
||||
# might not be a symlink, so remove
|
||||
rm -f /home/vagrant/.local/bin/make
|
||||
su - vagrant -c 'ln -s /usr/local/bin/gmake /home/vagrant/.local/bin/make'
|
||||
fi
|
||||
INIT_RIOT
|
||||
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.define "RIOT-FreeBSD"
|
||||
config.vm.box = "freebsd/FreeBSD-12.1-STABLE"
|
||||
config.disksize.size = '50GB'
|
||||
config.vm.provision "shell",
|
||||
inline: $init_riot
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user