FAQ - AtesComp/miraclecast Wiki

Does my hardware supports miraclecast requirements:

Check it running res/test-hardware-capabilities.sh

Log for support

$ sudo journalctl -f |& tee journal.log
$ sudo miracle-wifid --log-level trace |& tee wifid.log
$ sudo miracle-sinkctl --log-level trace --log-journal-level trace |& tee sink.log

add wifid.log, sink.log and journal.log to a zip and upload to a new or existing issue. Is handy to include exact command line used miracle-wifid --log-level trace miracle-sinkctl --log-level trace run 3 etc.

Security concerns: If you're afraid to upload your mac address on logs, add this filter before tee

sed 's/..:..:..:..:..:../00:00:00:00:00:00/g'

to hide your mac address.

To provide logs for dbus you can use

$ sudo dbus-monitor --system |& tee dbus.log

Ubuntu requirements

- ubuntu-restricted-extras
- gstreamer1.0
- libglib2.0-dev 
- libreadline-dev
- libudev-dev
- libsystemd-dev
- libusb-dev
- build-essential


- git
- check
- cmake

Raspberry pi instructions

Choosing an operative system

The only concern when choosing a OS is that miraclecast needs a recent version of systemd (>219) On first tries to install it, raspbians was not recent enough, so I use arch arm


which is based in rpi2. These days (2017) raspbian OS (official recommended OS for raspberry pi) is based on debian stretch, and comes now with systemd 232:


So you can choose whatever OS you want, just check systemd version with

$ systemctl --version

If it is >219 is ok

Links to raspbian install:

See rp1/2 do not include wifi card so you need to plug one which support Wifi Direct (these days I guess all usb support that). rpi3 comes with wifi card

There's a specific guide for rpi3 and arch arm [[raspberry pi 3]]

Bring down wifi interfaces

Failed to create interface p2p-dev-wlan0: -16 (Device or resource busy)

Means that interface used by miraclecast is not ready to use. Normally that means that something (many times miraclecast) left a wireless interface configured without p2p

Check if something restarted normal wifi config. It's easy to detect because wpa_supplicant spawned by miracast has a control interface socket configured by '-C /run/miracle/wifi/...' and wpa_supplicant by network managers normally was a '-u' (dbus interface)

Depending on your system there will be a series of services and target that tries to reconfig wpa_supplicant if you just kill it:

$ sudo systemctl stop NetworkManager
$ sudo systemctl stop wpa_supplicant

one of them should work. You can enable again after use miraclecast with:

$ sudo systemctl start NetworkManager
$ sudo systemctl start wpa_supplicant 

Miracast vs Chromecast

Many people see these technologies as similar but they are far from being the same, although the final result seems pretty similar.

Chromecast and other technologies (like AirPlay9 are based on have all the devices under same Wifi (i.e using an AP), while miracast is based on Wifi-Direct (No AP). This results in two devices communicating with the security level they decide two provide (maybe none at all), instead of allowing access to a local network to unknown devices. Miracast is too a battery drainer for this reason, as the need to keep communication working all the time

Microsoft OS support

Windows support is still a WIP. You can find PR on #136. It is just a Q&D from reverse enginnering sessions from microsoft implementation. Is tested against Windows 10, but people reports it works with Microsoft wireless display adapter too. Feedback wellcome

Install dbus policy

You need to copy the dbus policy res/org.freedesktop.miracle.conf to /etc/dbus-1/system.d/ to expose miraclecast dbus service.

See all buildsystems will do this for you in the install phase (i.e. sudo make install, sudo ninja install)