Sylphase SDGPS
The software-defined GPS(/GNSS) toolkit
Running SDGPS in a VirtualBox VM

Creating a VM


  1. Download an Ubuntu amd64 installer ISO from the following URL: https://ubuntu.com/download/desktop
  2. Create a VirtualBox VM with the following settings:
    • At least 4096MB of RAM
    • At least 64GB of disk space (note that the default "Dynamically allocated" mode will not actually use up 64GB of your disk space)
    • At least four cores (You'll have to go in the VM settings after creating the VM; go to System > Processor > Processor(s) and drag the slider to 4)
  3. Use the Ubuntu install disk and follow through the prompts to install Ubuntu
  4. Follow through the Installing SDGPS instructions
  5. Follow the below "USB device pass-thru" instructions

USB device pass-thru


Using USB devices in VirtualBox requires installing the "VirtualBox Extension Pack". To do this, first find the exact version of VirtualBox you're using by going to Help > About VirtualBox... in the menu bar. There will be a line of text like VirtualBox Graphical User Interface Version 5.1.38_Ubuntu r122592 containing the version number (e.g. 5.1.38).

Now that you have the VirtualBox version, take the following URL and replace both instances of "VERSION" with the version number:

https://download.virtualbox.org/virtualbox/VERSION/Oracle_VM_VirtualBox_Extension_Pack-VERSION.vbox-extpack

Download that file and open it to install the VirtualBox Extension Pack:

Step 1 Step 2
Step 3 Step 4

VirtualBox Extension Pack License


The "VirtualBox Extension Pack" can only be evaluated for up to 30-days for free. After that you must purchase a license from Oracle: https://shop.oracle.com/apex/f?p=DSTORE:PRODUCT:::::P6_LPI:114347640102492137513432

After the Extension Pack is installed, you should be able to enable USB 3.0 support in the VM settings window. Make sure the VM is shut down to be able to edit these settings.

Note that the "USB 3.0 (xHCI) Controller" option ''must'' be chosen! VirtualBox's emulated USB 2.0 controller is known to be buggy and have issues with SDGPS.

Enabling USB 3.0 controller Adding Infix-2 device filter
Infix-2 device filter added

If you see messages like the following from SDGPS, it is almost certainly due to using VirtualBox's buggy USB 2.0 controller:

sylphase-usbgpsimu2-raw: dropped 512 sample packets!
sylphase-usbgpsimu2-raw: PacketFabricator: dropped GNSS sample packet due to it having been fabricated
sylphase-usbgpsimu2-raw: dropped 512 sample packets!
sylphase-usbgpsimu2-raw: CommonChecker: warning: more than half of max_stream_jitter utilized for GNSS0 packet with age 0.0802002 >= 0.1 / 2
sylphase-usbgpsimu2-raw: PacketFabricator: fabricated 1 GNSS sample packet(s)
sylphase-usbgpsimu2-raw: CommonChecker: warning: more than half of max_stream_jitter utilized for GNSS0 packet with age 0.0992002 >= 0.1 / 2
sylphase-usbgpsimu2-raw: CommonChecker: warning: more than half of max_stream_jitter utilized for GNSS0 packet with age 0.0992002 >= 0.1 / 2
sylphase-usbgpsimu2-raw: dropped 512 sample packets!
sylphase-usbgpsimu2-raw: PacketFabricator: dropped GNSS sample packet due to it having been fabricated
sylphase-usbgpsimu2-raw: dropped 512 sample packets!
sylphase-usbgpsimu2-raw: PacketFabricator: dropped GNSS sample packet due to it having been fabricated
sylphase-usbgpsimu2-raw: dropped 512 sample packets!
sylphase-usbgpsimu2-raw: CommonChecker: warning: more than half of max_stream_jitter utilized for GNSS0 packet with age 0.0822002 >= 0.1 / 2
sylphase-usbgpsimu2-raw: PacketFabricator: fabricated 2 GNSS sample packet(s)

Useful tips


Making sudo not require a password


Run sudo visudo and find the following line:

%sudo ALL=(ALL:ALL) ALL

Change it to:

%sudo ALL=NOPASSWD:ALL

Then, save the file and exit (in nano, the default editor, that would be <Ctrl-O><Enter><Ctrl-X>).