jMAVSim fails to run under VMware (Ubuntu )

I have a surface book (win10) running VMware Ubuntu , and trying make posix jmavsim give me this :slight_smile:83 WARNING: setRealtimeSched failed (not run as root?)


| ___ \ \ \ / / / |
| |/ / \ V / / /| |
| __/ / \ / /
| |
| | / /^\ \ ___ |
_| / / |_/

px4 starting.

INFO [dataman] Unknown restart, data manager file ‘rootfs/fs/microsd/dataman’ size is 11405132 bytes
INFO [simulator] Waiting for initial data on UDP port 14560. Please start the flight simulator to proceed…
Buildfile: /home/itayguy/git/PX4Firmware/Tools/jMAVSim/build.xml

make_dirs:

compile:

create_run_jar:

copy_res:

BUILD SUCCESSFUL
Total time: 0 seconds
Options parsed, starting Sim.
Starting GUI…
3D [dev] 1.6.0-pre12-daily-experimental daily

com.jogamp.opengl.GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x58fd2619, isOwner false, <8b461f9, 503a71d5>[count 0, qsz 0, owner ]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
… 2 more
com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required, profile > GL2 requested (OpenGL >= 3.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 3.0 (Compat profile, compat[ES2], FBO, hardware) - 3.0 Mesa 17.2.8
at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:418)
at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:759)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:642)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at javax.media.j3d.JoglPipeline$QueryCanvas.doQuery(JoglPipeline.java:8615)
at javax.media.j3d.JoglPipeline$QueryCanvas.access$100(JoglPipeline.java:8566)
at javax.media.j3d.JoglPipeline.createQueryContext(JoglPipeline.java:6562)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:4609)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:3606)
at javax.media.j3d.Renderer.doWork(Renderer.java:461)
at javax.media.j3d.J3dThread.run(J3dThread.java:271)

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context for queryProperties()
graphicsDevice = X11GraphicsDevice[screen=0]
canvas = me.drton.jmavsim.Visualizer3D$CustomCanvas3D[canvas0,0,0,0x0,invalid]
Exception in thread “main” java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.IllegalStateException: Canvas3D: Non-recoverable graphics configuration error
at javax.media.j3d.Canvas3D.queryProperties(Canvas3D.java:3595)
at me.drton.jmavsim.Visualizer3D.createEnvironment(Visualizer3D.java:214)
at me.drton.jmavsim.Visualizer3D.(Visualizer3D.java:175)
at me.drton.jmavsim.Simulator.(Simulator.java:157)
at me.drton.jmavsim.Simulator.main(Simulator.java:678)
… 5 more
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 2/2, reusable (open, marked uncloseable): 0, pending (open in creation order): 2)
X11Util: Open X11 Display Connections: 2
X11Util: Open[0]: NamedX11Display[:0, 0x7f34740010d0, refCount 1, unCloseable false]
X11Util: Open[1]: NamedX11Display[:0, 0x7f3458020c70, refCount 1, unCloseable false]
Options parsed, starting Sim.
Starting GUI…
3D [dev] 1.6.0-pre12-daily-experimental daily

com.jogamp.opengl.GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x51c7572d, isOwner false, <7fc7f46e, 1ad3e0f6>[count 0, qsz 0, owner ]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
… 2 more
com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required, profile > GL2 requested (OpenGL >= 3.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 3.0 (Compat profile, compat[ES2], FBO, hardware) - 3.0 Mesa 17.2.8
at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:418)
at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:759)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:642)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at javax.media.j3d.JoglPipeline$QueryCanvas.doQuery(JoglPipeline.java:8615)
at javax.media.j3d.JoglPipeline$QueryCanvas.access$100(JoglPipeline.java:8566)
at javax.media.j3d.JoglPipeline.createQueryContext(JoglPipeline.java:6562)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:4609)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:3606)
at javax.media.j3d.Renderer.doWork(Renderer.java:461)
at javax.media.j3d.J3dThread.run(J3dThread.java:271)

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context for queryProperties()
graphicsDevice = X11GraphicsDevice[screen=0]
canvas = me.drton.jmavsim.Visualizer3D$CustomCanvas3D[canvas0,0,0,0x0,invalid]
Exception in thread “main” java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.IllegalStateException: Canvas3D: Non-recoverable graphics configuration error
at javax.media.j3d.Canvas3D.queryProperties(Canvas3D.java:3595)
at me.drton.jmavsim.Visualizer3D.createEnvironment(Visualizer3D.java:214)
at me.drton.jmavsim.Visualizer3D.(Visualizer3D.java:175)
at me.drton.jmavsim.Simulator.(Simulator.java:157)
at me.drton.jmavsim.Simulator.main(Simulator.java:678)
… 5 more
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 2/2, reusable (open, marked uncloseable): 0, pending (open in creation order): 2)
X11Util: Open X11 Display Connections: 2
X11Util: Open[0]: NamedX11Display[:0, 0x7f2534001210, refCount 1, unCloseable false]
X11Util: Open[1]: NamedX11Display[:0, 0x7f2518020c70, refCount 1, unCloseable false]
^C
Exiting…
pxh> Shutting down
Restoring terminal
/home/itayguy/git/PX4Firmware/Tools/sitl_run.sh: line 167: kill: (5422) - No such process
ninja: build stopped: interrupted by user.
Makefile:147: recipe for target ‘posix_sitl_default’ failed
make: *** [posix_sitl_default] Interrupt

Looks like you got to where I am DragonWars, haha.

I’m having a VERY similiar issue.

make posix jmavsim
[594/594] cd /home/centralcommand/src/…/src/Firmware/build/posix_sitl_default
args: /home/centralcommand/src/Firmware/build/posix_sitl_default/px4 posix-configs/SITL/init/ekf2 none jmavsim none /home/centralcommand/src/Firmware /home/centralcommand/src/Firmware/build/posix_sitl_default
SITL ARGS
sitl_bin: /home/centralcommand/src/Firmware/build/posix_sitl_default/px4
rcS_dir: posix-configs/SITL/init/ekf2
debugger: none
program: jmavsim
model: none
src_path: /home/centralcommand/src/Firmware
build_path: /home/centralcommand/src/Firmware/build/posix_sitl_default
empty model, setting iris as default
SITL COMMAND: /home/centralcommand/src/Firmware/build/posix_sitl_default/px4 /home/centralcommand/src/Firmware /home/centralcommand/src/Firmware/posix-configs/SITL/init/ekf2/iris
data path: /home/centralcommand/src/Firmware
commands file: /home/centralcommand/src/Firmware/posix-configs/SITL/init/ekf2/iris
creating new parameters file
creating new dataman file
56 WARNING: setRealtimeSched failed (not run as root?)


| ___ \ \ \ / / / |
| |/ / \ V / / /| |
| __/ / \ / /
| |
| | / /^\ \ ___ |
_| / / |_/

px4 starting.

WARN [modules__systemlib__param] decoder init failed
ERROR [param] importing from ‘rootfs/eeprom/parameters’ failed (-61)
Command ‘param’ failed, returned 1
INFO [dataman] Unknown restart, data manager file ‘rootfs/fs/microsd/dataman’ size is 11405132 bytes
BAT_N_CELLS: curr: 0 -> new: 3
CAL_ACC0_ID: curr: 0 -> new: 1376264
CAL_ACC0_XOFF: curr: 0.0000 -> new: 0.0100
CAL_ACC0_XSCALE: curr: 1.0000 -> new: 1.0100
CAL_ACC0_YOFF: curr: 0.0000 -> new: -0.0100
CAL_ACC0_YSCALE: curr: 1.0000 -> new: 1.0100
CAL_ACC0_ZOFF: curr: 0.0000 -> new: 0.0100
CAL_ACC0_ZSCALE: curr: 1.0000 -> new: 1.0100
CAL_ACC1_ID: curr: 0 -> new: 1310728
CAL_ACC1_XOFF: curr: 0.0000 -> new: 0.0100
CAL_GYRO0_ID: curr: 0 -> new: 2293768
CAL_GYRO0_XOFF: curr: 0.0000 -> new: 0.0100
CAL_MAG0_ID: curr: 0 -> new: 196616
CAL_MAG0_XOFF: curr: 0.0000 -> new: 0.0100
COM_DISARM_LAND: curr: 0 -> new: 3
COM_OBL_ACT: curr: 0 -> new: 2
COM_OF_LOSS_T: curr: 0.0000 -> new: 5.0000
COM_RC_IN_MODE: curr: 0 -> new: 1
EKF2_ANGERR_INIT: curr: 0.1000 -> new: 0.0100
EKF2_GBIAS_INIT: curr: 0.1000 -> new: 0.0100
EKF2_MAG_TYPE: curr: 0 -> new: 1
MC_PITCH_P: curr: 6.5000 -> new: 6.0000
MC_PITCHRATE_P: curr: 0.1500 -> new: 0.2000
MC_ROLL_P: curr: 6.5000 -> new: 6.0000
MC_ROLLRATE_P: curr: 0.1500 -> new: 0.2000
MPC_HOLD_MAX_Z: curr: 0.6000 -> new: 2.0000
MPC_Z_VEL_I: curr: 0.0200 -> new: 0.1500
MPC_Z_VEL_P: curr: 0.2000 -> new: 0.6000
NAV_ACC_RAD: curr: 10.0000 -> new: 2.0000
NAV_DLL_ACT: curr: 0 -> new: 2
RTL_DESCEND_ALT: curr: 30.0000 -> new: 5.0000
RTL_LAND_DELAY: curr: -1.0000 -> new: 5.0000
RTL_RETURN_ALT: curr: 60.0000 -> new: 30.0000
SDLOG_DIRS_MAX: curr: 0 -> new: 7
SENS_BOARD_X_OFF: curr: 0.0000 -> new: 0.0000
SYS_AUTOSTART: curr: 0 -> new: 4010
INFO [simulator] Waiting for initial data on UDP port 14560. Please start the flight simulator to proceed…
Buildfile: /home/centralcommand/src/Firmware/Tools/jMAVSim/build.xml

make_dirs:
[mkdir] Created dir: /home/centralcommand/src/Firmware/Tools/jMAVSim/out/production/jMAVSim

compile:
[javac] Compiling 73 source files to /home/centralcommand/src/Firmware/Tools/jMAVSim/out/production/jMAVSim
[javac] Note: /home/centralcommand/src/Firmware/Tools/jMAVSim/src/me/drton/jmavsim/PeripherialBuzzer.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.

create_run_jar:
[jar] Building jar: /home/centralcommand/src/Firmware/Tools/jMAVSim/out/production/jmavsim_run.jar

copy_res:
[copy] Copying 17 files to /home/centralcommand/src/Firmware/Tools/jMAVSim/out/production

BUILD SUCCESSFUL
Total time: 2 seconds
Options parsed, starting Sim.
Starting GUI…
3D [dev] 1.6.0-pre12-daily-experimental daily

com.jogamp.opengl.GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x2ead880b, isOwner false, <6d0eb772, a0abd9b>[count 0, qsz 0, owner ]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
… 2 more
com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required, profile > GL2 requested (OpenGL >= 3.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 3.0 (Compat profile, compat[ES2], FBO, hardware) - 3.0 Mesa 17.2.8
at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:418)
at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:759)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:642)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at javax.media.j3d.JoglPipeline$QueryCanvas.doQuery(JoglPipeline.java:8615)
at javax.media.j3d.JoglPipeline$QueryCanvas.access$100(JoglPipeline.java:8566)
at javax.media.j3d.JoglPipeline.createQueryContext(JoglPipeline.java:6562)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:4609)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:3606)
at javax.media.j3d.Renderer.doWork(Renderer.java:461)
at javax.media.j3d.J3dThread.run(J3dThread.java:271)

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context for queryProperties()
graphicsDevice = X11GraphicsDevice[screen=0]
canvas = me.drton.jmavsim.Visualizer3D$CustomCanvas3D[canvas0,0,0,0x0,invalid]
Exception in thread “main” java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.IllegalStateException: Canvas3D: Non-recoverable graphics configuration error
at javax.media.j3d.Canvas3D.queryProperties(Canvas3D.java:3595)
at me.drton.jmavsim.Visualizer3D.createEnvironment(Visualizer3D.java:214)
at me.drton.jmavsim.Visualizer3D.(Visualizer3D.java:175)
at me.drton.jmavsim.Simulator.(Simulator.java:157)
at me.drton.jmavsim.Simulator.main(Simulator.java:678)
… 5 more
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 2/2, reusable (open, marked uncloseable): 0, pending (open in creation order): 2)
X11Util: Open X11 Display Connections: 2
X11Util: Open[0]: NamedX11Display[:0, 0x7fb2b000d060, refCount 1, unCloseable false]
X11Util: Open[1]: NamedX11Display[:0, 0x7fb28c022ca0, refCount 1, unCloseable false]
Options parsed, starting Sim.
Starting GUI…
3D [dev] 1.6.0-pre12-daily-experimental daily

com.jogamp.opengl.GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x71468d5f, isOwner false, <1553e4d9, 44baaa89>[count 0, qsz 0, owner ]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
… 2 more
com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required, profile > GL2 requested (OpenGL >= 3.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 3.0 (Compat profile, compat[ES2], FBO, hardware) - 3.0 Mesa 17.2.8
at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:418)
at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:759)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:642)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at javax.media.j3d.JoglPipeline$QueryCanvas.doQuery(JoglPipeline.java:8615)
at javax.media.j3d.JoglPipeline$QueryCanvas.access$100(JoglPipeline.java:8566)
at javax.media.j3d.JoglPipeline.createQueryContext(JoglPipeline.java:6562)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:4609)
at javax.media.j3d.Canvas3D.createQueryContext(Canvas3D.java:3606)
at javax.media.j3d.Renderer.doWork(Renderer.java:461)
at javax.media.j3d.J3dThread.run(J3dThread.java:271)

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context for queryProperties()
graphicsDevice = X11GraphicsDevice[screen=0]
canvas = me.drton.jmavsim.Visualizer3D$CustomCanvas3D[canvas0,0,0,0x0,invalid]
Exception in thread “main” java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.IllegalStateException: Canvas3D: Non-recoverable graphics configuration error
at javax.media.j3d.Canvas3D.queryProperties(Canvas3D.java:3595)
at me.drton.jmavsim.Visualizer3D.createEnvironment(Visualizer3D.java:214)
at me.drton.jmavsim.Visualizer3D.(Visualizer3D.java:175)
at me.drton.jmavsim.Simulator.(Simulator.java:157)
at me.drton.jmavsim.Simulator.main(Simulator.java:678)
… 5 more
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 2/2, reusable (open, marked uncloseable): 0, pending (open in creation order): 2)
X11Util: Open X11 Display Connections: 2
X11Util: Open[0]: NamedX11Display[:0, 0x7fca3000d060, refCount 1, unCloseable false]
X11Util: Open[1]: NamedX11Display[:0, 0x7fca14020c90, refCount 1, unCloseable false]
^C
Exiting…
pxh> Shutting down
Restoring terminal
/home/centralcommand/src/Firmware/Tools/sitl_run.sh: line 167: kill: (6433) - No such process
ninja: build stopped: interrupted by user.
Makefile:147: recipe for target ‘posix_sitl_default’ failed
make: *** [posix_sitl_default] Interrupt

So, I’ve since tested the development environment on my non virtual-machine laptop (Ubuntu 16.04), and the guide works flawlessly.

I’m willing to go out on a limb at this point from reading the terminal outputs, and testing it on my laptop that its an issue caused by either the virtual machine environment, graphical drivers, or a combination of both factors. (I have tested the tutorial on both VMWare and Virtual Box, so it doesn’t seem to be a problem dependent on which hypervisor is being used. I will test Windows Hyper-V tomorrow just to be sure.)

I think I recall some sort of catch with Ubuntu 16.04, and I know I’ve personally had huge problems in the past with trying to use my AMD graphics card with Ubuntu (in early 2016, haven’t done the research to see if it’s cleared up at all since). Not sure this would be common to both of us @DragonWars, as I think your surface has either an Intel HD, or Nvidia graphics hardware.

I’ll also try a dual-boot install of Ubuntu 16.04 on my desktop tomorrow just to see the results. My gut instinct is it will work fine.

My question to the devs I guess is, has this simulator worked out of the box in virtual machines in the past? or is our problem “new”? I also haven’t thrown out the possibility that DragonWars and I are misunderstanding something, or doing something wrong. I’d much prefer to develop/simulate on a virtual machine for both the time saving aspect, as well as the portability. Any help/insight would be much appreciated.

I have same issue. I have solve it. Maybe help you.

As a short cut for people finding this issue later on:
I just verified on VMWare 16.1 you have to anable the 3D acceleration through:
VM > Settings > Hardware > Display > Accelerate 3D graphics
This solves the problem and the sim runs as expected.
See https://docs.vmware.com/en/VMware-Workstation-Pro/15.0/com.vmware.ws.using.doc/GUID-F5186526-2382-4F4A-8009-3D07773A1404.html

Without testing I’d assume the same should work also for VirtualBox.
e.g. https://www.maketecheasier.com/enable-3d-acceleration-in-virtualbox/

Sidenote: Depending on your disto setup you might have to switch graphics driver after checking the box.

EDIT: The hint will be added to the docs soon: https://docs.px4.io/master/en/dev_setup/dev_env_windows_vm.html