As we found Standardize the Terkin-Sandbox using Docker is currently not suitable to use for standardizing the sandbox environment for users on Windows and macOS, we will have to look into different directions.
Having refreshed our Vagrant skills just recently within GitHub - tunfish/tunfish-vxlan: A proof-of-concept for creating convenient VPN environments on top of secure WireGuard tunnels, with VXLAN. and GitHub - tunfish/tunfish-system: Create a convenient VPN infrastructure on top of secure WireGuard tunnels., we might well think about using a Vagrant Box running within VirtualBox on Windows and macOS in order to continue the standardization efforts.
State of the onion
We will get through some things we would need to assemble this step by step.
VirtualBox-USB-forwarding support for Windows and macOS
Support for privileged access of USB/UART ports from within virtual machines invoked from VirtualBox should be well supported.
Using Vagrant to automate VirtualBox-USB-forwarding
We will have to look into appropriate support for Vagrant in order to be able to automate things further.
Vagrant on Windows
According to Download - Vagrant by HashiCorp, Vagrant is available natively on Windows. There are even Chocolatey packages already, see
- Chocolatey Software | Vagrant (Install) 2.2.6 and – obviously as a dependency –
- Chocolatey Software | VirtualBox 6.0.14
VirtualBox-USB-forwarding support for Vagrant
- Sharing a Prolific USB->UART Converter with VirtualBox ·
- windows - USB device is not visible inside Vagrant - Stack Overflow
In general, this looks good from 10.000 feet. If everything goes well, getting things up and running could be fully automated like:
# Install Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) # Install VirtualBox choco install virtualbox # Install Vagrant choco install vagrant # Acquire sources from repository git clone https://github.com/hiveeyes/hiveeyes-micropython-firmware cd hiveeyes-micropython-firmware # Provision and invoke workhorse machine vagrant up
export TERKIN_WORKHORSE=vagrant # All that jazz make erase-device make install-pycom-firmware make setup make install