TeamViewer on LXD

I’m on Ubuntu 16.04 with LXD 2.21. My container is also LXD 2.21 with the default, unprivileged profile. I would like to get the Ubuntu Mate desktop working in the container, running on a virtual framebuffer, not on the system’s actual GPU.

Unfortunately, TeamViewer requires a /dev/fb0 Framebuffer Device to be present to function. Is it possible to create a virtual framebuffer that doesn’t give them access to the host’s physical framebuffer?

This is one of those areas that I think a container needs to address. The container needs to be sufficiently “thick” that anything that you could reasonably expect to run on a VM that doesn’t require direct hardware access could work on LXD. This is definitely the case with SmartOS Zones, which appears to be a much more complete implementation of the isolation of the container, even though the container still runs entirely on the host kernel.

I tried to get Teamviewer to run using the general instructions at https://blog.simos.info/how-to-run-graphics-accelerated-gui-apps-in-lxd-containers-on-your-ubuntu-desktop/

I also stumbled on the /dev/fb0 issue and did not manage to continue.
Did you manage to get Teamviewer to work even if you used the host’s /dev/fb0? For me, the first step is to get somewhat Teamviewer to work, then try to limit it.

Could you just use XVFB in the LXD container instead of the Host’s FB ?

https://www.x.org/archive/X11R7.6/doc/man/man1/Xvfb.1.xhtml

# apt-get install xvfb