Il pacchetto di nome Miraclecast si pone un obbiettivo ambizioso: consentire agli utenti di utilizzare il proprio computer Linux per proiettare e ricevere in Miracast (Wireless Display), in modo del tutto simile a quanto visto in ambiente Windows. Il progetto -portato avanti su GitHub da un gruppetto di intrepidi programmatori- ha ancora parecchia strada da compiere, ma seguendo le istruzioni e con un po' di "smanettamento" è già possibile ottenere qualche risultato. Questa è la guida a Miraclecast, con il resoconto della mia esperienza e le indicazioni passo passo per trasmettere lo schermo senza fili da Linux verso una ricevente Miracast compatibile

Miracast Ubuntu: guida Miraclecast Linux - ubuntu tv out salotto

Nota: questo articolo è incentrato su Linux. Per la trattazione specifica da fonte Windows, Android e altre piattaforme si veda "La Grande Guida a Miracast".

Situazione iniziale e requisiti hardware

Per la mia prova ho preparato sul PC un'installazione "pulita" di Ubuntu 16.04, aggiornato poi con tutti gli aggiornamenti disponibili online. La procedura dovrebbe essere analoga anche con le altre distribuzioni moderne.

Per quanto riguarda la compatibilità hardware, rimango al seguente articolo:

» Leggi: Compatibilità Miracast: come scopro se il mio PC, notebook, tablet Windows è in grado di trasmettere senza fili alla TV?

Nel mio caso, ho impiegato un computer "fisso" con CPU Intel Core i5-3570K (terza generazione, Ivy Bridge) e GPU integrata. Come scheda Wi-Fi ho montato la "solita" Intel Dual Band Wireless-AC 7260 + Bluetooth for Desktop.

Sebbene Miraclecast permetta anche di utilizzare il PC come ricevente (similmente a quanto visto con Windows 10 1607), mi sono qui concentrato sulla possibilità di trasmettere lo schermo verso una ricevente terza: nel mio caso, si tratta di un televisore nella cui porta HDMI è stato innestato Microsoft Wireless Display Adapter:

» Leggi: Adattatore Miracast per TV: prova e recensione di Microsoft Wireless Display Adapter

Passo 1: Download di Miraclecast

Per prima cosa, procediamo con il download del pacchetto Miraclecast:

» Scarica: Miraclecast

A trasferimento ultimato, compattiamo l'archivio in una cartella a piacere. Scegliete una posizione appropriata, perché sarà poi necessario conservare questa directory per utilizzare Miraclecast! Io, ad esempio, ho preferito questo percorso all'interno della cartella "home": src/miraclecast-master/.

A questo punto, apriamo il terminale sul percorso scelto: basta fare click con il pulsante destro del mouse sulla cartella di Miraclecast e selezionare Apri nel terminale

Miracast Ubuntu: guida Miraclecast Linux

Passo 2: installare i prerequisiti

Dobbiamo installare manualmente tutte le dipendenze. Dopo circa 2,5 ore di prove e fallimenti, credo di essere riuscito a raccoglierle tutte in questo comando:

sudo apt install build-essential checkinstall autoconf libtool libudev-dev libsystemd-dev libgtk2.0-dev libreadline-dev vlc -y

Passo 3: Test di compatibilità

Dobbiamo ora verificare la compatibilità del sistema.

Dal terminale posizionato all'interno della cartella di Miraclecast, entriamo nella sotto-cartella delle utilità impartendo cd res (non cercate di lanciare i comandi suggeriti di seguito senza entrare specificatamente in questa cartella: gli script hanno alcune limitazioni a causa delle quali falliscono se eseguiti "da fuori").

Il primo script da eseguire è sudo ./test-hardware-capabilities.sh. Quello che fa è verificare la compatibilità della scheda di rete. Se risponde qualcosa di simile a wlp3s0 supports P2P, siamo a posto (la prima stringa è il nome dell'interfaccia di rete Wi-Fi e potrebbe cambiare da PC a PC).

Il secondo comando da lanciare è sudo ./test-viewer.sh. Se il responso finale è everything installed, anche qui è tutto pronto

Miracast Ubuntu: guida Miraclecast Linux - miraclecast test hardware

In caso di fallimento, dovrete aiutarvi con Google e ricercare la causa del problema.

Passo 4: copiare il file di configurazione

Dobbiamo ora copiare un file di configurazione fornito dal pacchetto Miraclecast nel percorso appropriato del sistema operativo. Lanciate questo:

sudo cp org.freedesktop.miracle.conf /etc/dbus-1/system.d/

Passo 5: tornare alla cartella superiore

Risaliamo di un livello rispetto alla cartella res nella quale ci troviamo impartendo cd .. e torneremo alla directory principale di Miraclecast.

Passo 6: Compilazione e installazione

Dalla cartella di Miraclecast, procediamo con la compilazione.

Per prima cosa, lanciamo sudo ./autogen.sh. Se tutto fila liscio, ci troveremo davanti ad una schermata simile a questa

Miracast Ubuntu: guida Miraclecast Linux

Ora creiamo una nuova cartella di nome build ed entriamoci: sudo mkdir build && cd build.

Da qui, lanciamo sudo ../configure. Questo è il responso in caso di esito positivo:

Miracast Ubuntu: guida Miraclecast Linux - miraclecast configure

Completiamo l'operazione con la compilazione vera e propria seguita dall'installazione: sudo make && sudo make install. A schermo appariranno alcuni warning e altri messaggi che possiamo ignorare.

Chiudete il terminale.

Passo 7: Disconnettere il Wi-Fi

Una volta volta ultimato il passo precedente, l'installazione è completa. Da qui in poi c'è la procedura da svolgere ogni volta che desideriamo avviare la proiezione tramite Miracast.

Aprite nuovamente il terminale nella cartella di Miraclecast, quindi entrate nella directory delle utility (cd res).

Arrestate il gestore del Wi-Fi ed interrompete la connessione senza fili tramite lo script sudo ./kill-wpa.sh (attenzione! perderete così la connessione ad Internet!). Se l'ultima riga dello script recita killing existing wpa_supplicant connection, significa che la procedura è andata a buon fine. Per esserne sicuri, lanciate nuovamente il comando ed otterrete l'errore cannot find wpa_supplicant connection to kill, chiaro segnale che la connessione Wi-Fi non può essere uccisa perché è già stata interrotta all'esecuzione precedente

Miracast Ubuntu: guida Miraclecast Linux

RIcordate che, una volta terminato l'uso di Miracast, potrete ripristinare la connettività Wi-Fi riavviando il PC oppure lanciando lo script sudo ./normal-wifi.sh presente nella stessa cartella res.

Passo 9: Avviare miracle-wifid

Avviamo il servizio che gestisce le connessioni Miracast: il comando è

sudo miracle-wifid --log-level trace

Fra i vari messaggi potrebbe esserci anche qualche FAIL, ma non preoccupiamocene

Miracast Ubuntu: guida Miraclecast Linux - miraclecast wifid

Passo 10: accendete la ricevente

Siamo quasi pronti a trasmettere. Accendete quindi la TV o il device che dovrà ricevere il segnale e, se previsto, ponetelo in modalità "rilevazione".

Passo 11: avvio di miracle-wifictl

Il servizio miracle-wifid appena avviato rimane in esecuzione e mostra il proprio log nella schermata di terminale.

Apriamo dunque un secondo terminale e lanciamo il programma che permette di controllarlo:

sudo miracle-wifictl --log-level trace

Il prompt diviene così [miraclectl], segnale che ogni comando impartito sarà rivolto a Miraclecast.

Notate la dicitura [ADD] Link: X (dove X è un numero intero) che compare all'avvio: è l'identificativo che Miraclecast ha assegnato alla scheda Wi-Fi del computer. Prendete nota del valore (3, negli screenshot seguenti).

Passo 12: Selezione dell'interfaccia Wi-Fi

"Attivate" ora l'uso dell'interfaccia X tramite il comando select X (di nuovo: sostituite a X il numero associato alla scheda Wi-Fi che avete appena scoperto).

La risposta che otterrete è simile a link X selected.

Passo 13: Rilevare la ricevente

A questo punto siamo pronti a rilevare il dispositivo Miracast ricevente. Il comando è p2p-scan.

Attendete qualche istante e dovrebbe comparire la dicitura [ADD] Peer: seguita dall'identificativo hardware del device ricevente (sarà simile a aa:bb:cc:dd:ee:ff@x)

Miracast Ubuntu: guida Miraclecast Linux

Lanciate list e vi ritroverete nella prima tabella in alto le schede di rete installate sul PC, mentre, in basso, dovrebbe essere riportato in forma tabella il dispositivo appena rilevato.

Passo 14: Connessione con Miraclecast

Per stabilire la connessione, lanciate semplicemente:

connect aa:bb:cc:dd:ee:ff@x (sostituendo alla stringa di esempio qui riportata il reale identificativo hardware del device ricevente)

Dopo pochi istanti dovrebbe comparire una dicitura simile a

[CONNECT] Peer: aa:bb:cc:dd:ee:ff@x

Ottimo, la connessione è stabilita!

Passo 15: avvio della proiezione

A questo punto è possibile proiettare concretamente il proprio schermo. Il comando, da impartire in un terzo terminale, dovrebbe essere (tutto su una riga):

cvlc screen:// :screen-fps=25 :screen-caching=100 --sout '#transcode{vcodec=MJPG,vb=0,width=1022,height=575,acodec=none}: http{mux=ogg,dst=:8554/myscreen}'

Uso il condizionale perché, purtroppo, io qui mi sono arenato. Nonostante le mille prove svolte, non sono riuscito a concretizzare la proiezione. Sono in buona compagnia: la issue #4 sul repository ufficiale è infatti ricca di testimonianze analoghe.

Ciò detto, Miraclecast è attualmente l'unica soluzione parzialmente funzionante per proiettare tramite Miracast da Linux. Una prova da parte degli smanettoni più intrepidi è d'obbligo. Personalmente, tenerò nuovamente fra qualche mese, quando il progetto sarà maturato ulteriormente.