Mir in a virtual machine

Daniel van Vugt daniel.van.vugt at canonical.com
Wed Jan 29 01:45:12 UTC 2014


For anyone not following the bug progress, non-root clients on a root 
server do in fact work perfectly. Just our documentation was wrong.

For now, if you need to connect a non-root client to a root server you 
need to explicitly specify the socket to connect to:
     myclient -m /tmp/mir_socket


On 24/01/14 10:35, Daniel van Vugt wrote:
> Rian,
>
> Both of the issues you describe /had/ simple solutions, documented under
> "Running Mir natively":
>    http://unity.ubuntu.com/mir/using_mir_on_pc.html
>    or: $SRC/doc/using_mir_on_pc.md
>
> Though I just retested non-root clients with a root server, and it
> doesn't work as documented. So that's a bug, sorry;
>    https://bugs.launchpad.net/mir/+bug/1272143
>
> - Daniel
>
>
> On 23/01/14 20:48, Rian Quinn wrote:
>> I would prefer to run the server as non-root, but if I attempt to do
>> that, it complains about not being able to open the DRM device. If I run
>> the fingerprint demo as non-root, and the server as root, the client
>> complains about not being able to make a connection to the server. And
>> some of the clients I cannot get to connect at all regardless of root or
>> not (like all of the EGL examples).
>>
>> I am a little confused though. If Mir is to replace X someday, clients
>> will have to be able to be run as non-root. The ideal solution is where
>> both the server/compositor, and clients are running as non-root which is
>> one of the things that X doesn’t do today. Are there plans to fixing the
>> privilege issue (everything needing root), or am I not understanding
>> something.
>>
>> Thanks
>> - Rian
>>
>>> On Jan 22, 2014, at 9:35 PM, Daniel van Vugt
>>> <daniel.van.vugt at canonical.com> wrote:
>>>
>>> Q: Does Mir support multiple monitors? If so, do you have any examples
>>> or at least a starting point on how to set that up.
>>> A: Yes... The API for affecting the multi-monitor config is
>>> mir_connection_create_display_config
>>> mir_connection_apply_display_config
>>> etc.. http://unity.ubuntu.com/mir/group__mir__toolkit.html
>>> To enable basic multi-monitor testing you can:
>>> mir_demo_server_shell --display-config sidebyside
>>> Mir's multi-monitor configuration is already used in detail by XMir.
>>> That's how you can configure displays from X under XMir.
>>>
>>> Q: How does Mir handle surfaces with shapes cut out of them. For
>>> example, a smiley face where the background is shown through the eyes
>>> and mouth.
>>> A: Create your surface with an alpha channel (e.g.
>>> mir_pixel_format_abgr_8888) and then any pixels with alpha==0 will be
>>> transparent. As an example of a free-form shape, you can run:
>>> mir_demo_client_egltriangle -b 0.0
>>>
>>> Q: Do clients need to have root access. For the fingerprint test, I
>>> could not get it to run without a sudo.
>>> A: Yes and no. A client can run as the same user as the server,
>>> including non-root. This works perfectly for touch (Android) devices
>>> however desktop has the problem of requiring root to access input
>>> devices. You can run mir server and client on desktop as non-root but
>>> you won't be able to interact with it.
>>>
>>>
>>> On 23/01/14 01:21, Rian Quinn wrote:
>>>
>>>     Daniel,
>>>
>>>     I was able to update my system, and my sources and was able to
>>> get Mir
>>>     up and running.
>>>
>>>     I am actually really impressed with the Mir source code. We were
>>>     considering writing a lot of this ourselves, but I think that Mir
>>> has
>>>     everything that we need already.
>>>
>>>     I do have a couple of questions.
>>>     - Does Mir support multiple monitors? If so, do you have any
>>>     examples or
>>>     at least a starting point on how to set that up.
>>>     - How does Mir handle surfaces with shapes cut out of them. For
>>>     example,
>>>     a smiley face where the background is shown through the eyes and
>>>     mouth.
>>>     - Do clients need to have root access. For the fingerprint test, I
>>>     could
>>>     not get it to run without a sudo.
>>>
>>>     Thanks,
>>>     - Rian
>>>
>>>     For others interested in how I got Mir up and running, here were
>>>     my steps:
>>>
>>>     1:
>>>     Install the 3.13 linux kernel. Here is what I used for that:
>>>
>>> http://linuxg.net/how-to-install-kernel-3-13-rc-7-on-ubuntu-linux-mint-pear-os-and-elementary-os/
>>>
>>>
>>>
>>>     2:
>>>     Install libDRM from the following PPA:
>>>     https://launchpad.net/~oibaf/+archive/graphics-drivers/
>>>
>>>     3:
>>>     run sudo apt-get build-dep mir
>>>
>>>     4:
>>>     Download and compile Mir form the following:
>>>     http://unity.ubuntu.com/mir/building_source_for_pc.html
>>>
>>>     5:
>>>     Download and compile Mir's version of Mesa and here are the
>>>     compilation
>>>     steps:
>>>     http://www.mesa3d.org/install.html
>>>
>>>     I had to add --disable-dri3 to get it to compile, plus the
>>>     --with-egl-platform=mir,drm
>>>
>>>     Once I was done with that, I could get the examples to execute.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>     On Tue, Jan 21, 2014 at 8:44 PM, Daniel van Vugt
>>>     <daniel.van.vugt at canonical.com
>>> <mailto:daniel.van.vugt at canonical.com>>
>>>     wrote:
>>>
>>>     Rian,
>>>
>>>     VMware (Thomas Hellstrom) has implemented Mir support. Apparently
>>>     you need kernel 3.13 for the requisite graphics driver DRM changes.
>>>     And you need a newish Mesa.
>>>
>>>     I don't think anyone has documented the particulars yet. But we
>>>     certainly should at least by the time regular Ubuntu (trusty?) has
>>>     all the prerequisites in place.
>>>
>>>     - Daniel
>>>
>>>
>>>
>>>     On 22/01/14 05:08, Rian Quinn wrote:
>>>
>>>     Is it possible to get Mir up and running in a Virtual Machine. I
>>>     have
>>>     both VMWare and VirtualBox. Currently, under VMWare, you get an
>>>     error
>>>     about open_drm_device. Basically, I am working with Mir for some
>>>     client
>>>     / server development, and would like to do testing in a virtual
>>>     machine
>>>     to start.
>>>
>>>     Thanks,
>>>     - Rian
>>>
>>>
>>>
>



More information about the Mir-devel mailing list