[HowTo][Convergence]Use a simulated miracast sink for testing convergence
-
W.I.P. - Work in progress, I could not try this, as my WiFi driver does not support P2P mode
Motivation
Many of us do not have either a N5, a slimport adapter or a wifi dongle for Miracast, but want to try out convergence to see if they like it. Fun fact, there is an open-source development called Miraclecast which also provides a sink, i.e. an endpoint for the phone to cast the screen to.Preconditions
Your wireless NIC should support the following modes in order to do P2P communication:- P2P-client (Client)
- P2P-GO (Group owner)
- P2P-device
This can be found out by using the
iw phy
command. Check for supported interface modes in the output when you run the iw phy command. Most of the modern WirelessNICs support this feature. Do not mix it up with the supported frames, the list follows afterSupported interface modes:
How - Linux
- Add the following ppa to your desktop Ubuntu installation:
sudo add-apt-repository ppa:thopiekar/miraclecast
- Update your package list:
sudo apt-get update
- Install miraclecast:
sudo apt install miraclecast
- Stop NetworkManager and wpa supplicant:
systemctl stop NetworkManager.service && systemctl stop wpa_supplicant.service
- Start the miraclecast daemon:
sudo miracle-wifid &
- Start the controlling application:
sudo miracle-sinkctl
- It should report that it has added a link. Start this link by running it with the number of the output in place:
run my_number_here
- If all goes well you can discover the device from the system settings on your phone, under Brightness & Screen. Enable external displays and then look into wireless displays.
How - Windows
Luckily the steps involved with Windows as OS are much less. Basically you can try this with either Windows 8.1 or Windows 10. For Windows 8.1 please try to install the demo version of this software: AirServer Universal. For Windows 10 there is a integrated solution available:- Tap on the Windows-key, type connect, and hit the Enter-key.
You either get "The device doesn't support Miracast, so you can't project to it wirelessly", or " 'name' is ready for you to connect wirelessly".
-
I followed the guide and wasn't able to connect.
Tested using UT 15.04 (r3) in a Nexus 5 Hammerhead and in Ubuntu 17.10 in my laptop.
outcome of
iw phy
(the relevant proof it supports P2P frames):Supported RX frame types: * IBSS: 0x40 0xb0 0xc0 0xd0 * managed: 0x40 0xd0 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * mesh point: 0xb0 0xc0 0xd0 * P2P-client: 0x40 0xd0 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * P2P-device: 0x40 0xd0
The process on the Computer runs smoothly, the problem is when trying to connect to the external display in the options menu. Under Wireless Displays, there is a list of devices which only the computer shows. After clicking it, it stays indefinitely trying to connect. If I leave the menu and return, on the right side of "Choose a display", the blue loading icons stays indefinitely too and does not allow me to try connecting to the computer. If I wait a bit longer, I'm able to try connecting to the device but the same occurs. I also tried leaving the screen on always to see if it returned anything at all and I got
Failed to connect to machina. Try again.
(my machine name) Tried and got the same result.Please let me know what other information you need to try and get this working. It would be a great addition!
Thanks in advance!
-
Hello All,
just found out I was looking at the wrong capabilities list in iw phy, you need to llok for supported interface modes:
Like on this screenshot, the P2P entries are missing, so with this network card miracast wont work, unfortunately. It is my second card not having this mode
BR
-
@gsilvapt Can you check again, you checked for supported frame types, which is a different capability
-
And here a screenshot how it should look like:
-
what can I expect to happen if it works? I don't have a UT device around just now, so I tried with Android. I get:
$ sudo miracle-sinkctl [ADD] Link: 3 [miraclectl] # run 3 now running on link 3 [ADD] Peer: b2:72:bf:3b:28:c8@3 [PROV] Peer: b2:72:bf:3b:28:c8@3 Type: pbc PIN: [GO NEG] Peer: b2:72:bf:3b:28:c8@3 Type: pbc PIN: [CONNECT] Peer: b2:72:bf:3b:28:c8@3 now running on peer b2:72:bf:3b:28:c8@3 NOTICE: SINK connected SINK set resolution 1920x1080
but other than the console output I never see anything. I was expecting to see the screen of my Android.
Edit: Ah found something:
On Laptop:
git clone https://github.com/albfan/miraclecast
- follow the "How - Linux" steps in @Flohack's post above
On Android:
- install "Miracast Shorcut" (from fdroid)
- run it
- see your laptop show up
On Laptop:
- see "SINK connected"
- open new terminal
- cd miraclecast/res
- ./gstplayer
- see a live stream playing from your Android
Of course it misses some of the miracle of convergence .... it's just a video, you can't interact with it
-
@doniks Cool at least partially this is working. Now we need a proof with UT
BR
-
I have a FP2 with UT 16.04. But there are no external displays shown in that menu. But how would the phone find the notebook anyways? The stopping the network manager that wifi connections gets lost.
-
@jonius said in [HowTo][Convergence]Use a simulated miracast sink for testing convergence:
I have a FP2 with UT 16.04. But there are no external displays shown in that menu. But how would the phone find the notebook anyways? When stopping the network manager the wifi connections gets lost.
In the miraclectl shell I got the print "[ADD] Peer: <some Mac address>@2" and later a "[REMOVE] ..." message.
-
@jonius Hello,
yes the loss of network connections is intentional. Miracast needs P2P mode on the WiFi card which means its not allowed to be associated with any other network. This is why you need to check first if your card even supports that.
I did not try this myself as I do not own a PC which has such a card. Therefore I am waiting for people who are able to follow the instructions. Seems you were not able, meh. Sounded too good to be true
BR
-
I have checked that and it shows the three modes you named above. But how is my FP2 supposed to find the computer, if it is not connected to my local network anymore? Do I need to search for some kind of miraclecast wifi opened by the netbook?
-
@jonius Hello,
P2P mode should be configured so that FP2 finds any display device announcing itself. Its a special form of AdHoc mode. So nothing needs to be done, in theory. Seems in practice its not so easy...
BR
-
@Flohack Ok, now I have UT running on my Nexus 7 and my laptop has this required mode, but I can't figure it out still.
Firstly, on UT, the "External display" is greyed out and I can't toggle the switch. The switch is on the left.
However, in the terminal I can enter
aethercastctl
[1] and doenable
, which actually changes the switch in the settings to on-the-right. Also in aethercastctl I get a confirmation that it isEnabled: true
, I can alsoscan
which gives me aScanning: true
. After a while this times out and noting else happens.But, in general, I'm not getting how this is supposed to go together.
aethercast
seems to be happily scanning while connected to regular wifi. I can repeat my test with the Android, trying to cast UT to Android. In that caseaethercast
actually finds the android when after ascan
I can also progress a few steps withconnect
- the android phone bleeps and shows some kind of connection dialog, aethercast tells me it is now inState: connected
. Well, I don't actually see the UT display on the android phone, so something is failing after all. But what this tells me is that aethercast (UT) might actually want to connect (and stream?) via regular wifi and not via some special "direct" mode. Is it the difference between a) what we transport, ie, the display, versus b) how we transport it, ie, either wlan or wifi direct? And maybe miraclecast expects a) display data over b) wifi direct, and while UT happily sends a) display data, it sends it over b) regular wifi .... -
Thanks for your findings. It seems we need much more here, too sad it does not work out of box.
BR
-
modules:composer.user_said_in, @flohack, [HowTo][Convergence]Use a simulated miracast sink for testing convergence
Thanks for your findings. It seems we need much more here, too sad it does not work out of box.
BR
Maybe it's not "much more", but just a way to convince miraclecast into talking on regular wifi
-
@doniks Miracast is per definition not possible over "normal" WiFi, thats why most people had only success with the Microsoft Miracast stick. That seems to be still the most compatible one...
BR
-
It seems that the wireless display mode is broken on 16.04 for FP2.
I reflashed it with 15.04 and there my "display" shows up.
By the way, you can add the LG 1500pf/g/Largo projectors to the confirmed working devices :-). -
modules:composer.user_said_in, @luksus, [HowTo][Convergence]Use a simulated miracast sink for testing convergence
It seems that the wireless display mode is broken on 16.04 for FP2.
I reflashed it with 15.04 and there my "display" shows up.Sounds like it justifies a bug report
By the way, you can add the LG 1500pf/g/Largo projectors to the confirmed working devices :-).
Sounds like worth documenting, maybe in a new page about wireless displays here: https://docs.ubports.com/en/latest/userguide/dailyuse/index.html
hint, hint
-
Nexus 5 with SlimPort: on 16.04 RC icons are wery big
I back to 15.04 to try Convergence mode.
-
How to enable desktop mode like on 15.04?