[systemd-devel] Open-Source Miracast - Wifi-Display on linux

Jussi Kukkonen jussi.kukkonen at intel.com
Tue Feb 3 10:58:34 PST 2015


Hi,

This should be a reply to Davids message on Feb 2 but I'm not a
subscriber and just happened to see this on the web archive... I
apologize for the relative off-topicness and suggest that any followup
questions be sent to wysiwidi mailing list:
https://lists.01.org/mailman/listinfo/wysiwidi-dev.

David Herrmann wrote:
> As people continuously ask me about this, I'll just try to answer it
> on the public ML:
>
> To make Miracast work, we need access to a Wifi P2P API. The kernel
> implements Wifi P2P and wpa_supplicant provides access to it via it's
> ctrl-interface (and I think recently even gained a dbus API). In
> MiracleCast I wrote a miracle-wifid daemon that wraps wpa_supplicant
> and provides P2P to MircaleCast. However, this does not work well in
> parallel to NetworkManager/wicd/connman/... running. You really cannot
> run wpa_supplicant multiple times on the same interface. Hence,
> MiracleCast development is currently stalled until the different
> network-managers provide a P2P API.
>
> Intel recently added such an API to ConnMan and provides a WFD
> implementation on its own [1]. I highly recommend looking into it.
> It's now up to NetworkManager to catch up. systemd-networkd doesn't do
> L2 setup, so it's not really related. wicd is kinda dead [2], so I
> doubt they'll come up with something.

I'm one of the people working on this new implementation (Wysiwidi).
We haven't made much noise yet as we didn't have a whole lot of
demonstrably working code to show -- but that has changed in the last
month or so and the project may well be worth a look now.

I'll try to get a blog post with more details up Any Day Now but in
short: The test sink included in Wysiwidi currently works with an
Android source. It doesn't look pretty yet, you may hit GStreamer
problems and the latency is higher than it should be, but 95% of the
time it works every time.

As far as Wifi P2P goes, the parts required by a Miracast
implementation now work quite reliably with newish Intel wifi hardware
(e.g. 7260) using _very_ recent Connman and wpa_supplicant.

> Furthermore, P2P support is pretty "limited" right now. Officially,
> almost all recent devices support it, but it's particularly annoying
> to set it up, due to major bugs across all the stacks (in no way
> limited to linux drivers). I mean, 3 of 4 of my connection attempts
> between Android and Windows devices fails.. not even talking about my
> wpa_supplicant hacks.

This. I've previously worked on DLNA (notorious for interoperability
problems) and frankly Miracast seems worse. The good news is that
after two months of bug fixes wpa_supplicant and connman actually do a
pretty good job -- but again, all testing has been done on Intel
hardware: YMMV.

My quick IOP test results are here
https://github.com/01org/wysiwidi/wiki/Interoperability. It's still
pretty red  -- but note that in December it was red all over.


Thanks,
  Jussi

> As I'm not really interested in hacking on network-managers, I've
> decided to stop working on MiracleCast. If, some day, there's a
> working P2P stack on linux, I might resurrect it. But it sounds more
> likely that I'll refer to the Intel solution (WYSIWIDI) instead.
> There're also gstreamer plugins for WFD now, so maybe give them a try?
>
> Thanks
> David
>
> [1] https://github.com/01org/wysiwidi
> [2] https://answers.launchpad.net/wicd/+question/227789


More information about the systemd-devel mailing list