Blog

Come eseguire il mirroring di display con risoluzioni diverse utilizzando Yocto su SoM i.MX8M Plus di Variscite

Wednesday, 13 Mar 2024

In questo contributo al blog dei nostri ospiti della Integrated Computer Solutions (ICS), gli autori sviscerano le complessità del mirroring di display con risoluzioni diverse utilizzando Yocto sul diffusissimo SoM DART-MX8M-PLUS di Variscite basato sul SoC NXP i.MX8M Plus. Districandosi nei meandri delle scelte di compositor, gli autori sottolineano l’efficacia di una soluzione semplificata.

Di Lisandro Pérez Meyer e Michael Dingwall della ICS

Hai mai avuto uno di quei momenti in cui la configurazione di routine dei tuoi dispositivi integrati ha un sussulto di imprevedibilità? Di recente ci siamo imbattuti in uno scenario del genere in un progetto quando il cliente ci ha detto una cosa sconvolgente: «Abbiamo un display LVDS, ma vogliamo che gli utenti colleghino un monitor HDMI a loro piacimento e ottengano il mirroring del display dell’applicazione».

Sembra facile, vero? Non proprio. Certo, una volta, nell’era degli X server, ottenere questo mirroring del display era una sciocchezza. Bastava impostare la configurazione corretta et voilà, il server X avrebbe eseguito un perfetto mirroring del display principale in quello nuovo collegato. Una cosa del genere:

Grafica 1

 

Graphic 1

 

Ma con l’evolversi della tecnologia e l’addio all’X è sopravvenuta una grossa complicazione, il secondo monitor non supporta la stessa risoluzione di quello principale. Ecco quindi il risultato:

Grafica 2

 

Graphic 2

 

Non è il massimo. Fortunatamente c’è una soluzione: usare la risoluzione nativa di ogni monitor e regolare il contenuto della finestra. Con questo e altri espedienti si può arrivare a qualcosa del genere:

Grafica 3 

 

Graphic 3

 

Ah, molto meglio! Ma arrivare a questa soluzione è stato un percorso con molti tentativi ed errori, durante il quale abbiamo provato tutta una serie di compositor.

Dalla complessità alla semplicità

Con la tecnologia di oggi, X è storia vecchia. La diffusa famiglia di processori NXP i.MX8 è ora tutta incentrata su Wayland, un protocollo che fa la spola tra un compositor e uno o più client. Weston, l’implementazione di riferimento di Wayland, è sicuramente adatta a molte situazioni. Se però stai usando Qt per il tuo progetto, dovresti prendere in considerazione l’uso di Qt Wayland Compositor.

In generale, ti semplificherà la vita. Ma, c’è sempre un ma, le specifiche predefinite di Wayland non consentono ai client di stabilire il proprio posizionamento. Questo è compito del window manager, che fa parte del composer.

Fortunatamente, il protocollo Wayland può essere ampliato. Dovrai inserire l’estensione In-Vehicle Infotainment (IVI), che consente ai client di fornire un ID in modo che il composer sappia dove posizionare la finestra. Sembrava un inizio promettente, ma a quanto pare tende a essere incentrato sul layout dello schermo principale. Certo, potremmo modificare il composer, ma servirebbe altro tempo che preferiremmo non sprecare.

Invece potremmo creare due finestre e lasciare che il composer le metta al loro posto. Dato che stiamo usando Qt, proveremo prima con il Qt IVI Compositor.

Niente. Salta fuori che non è possibile, perché i requisiti specificano sì che l’utente deve essere in grado di collegare un monitor HDMI, ma non definiscono quale monitor specifico o con quale risoluzione. (Attualmente, Qt può gestire più display solo quando le loro risoluzioni sono codificate in un file di configurazione.)

Quindi torniamo a Weston, visto che ha un’estensione IVI – Weston IVI-Shell.

E… ancora una volta, niente da fare. Almeno per impostazione predefinita, il compositor Weston gestisce solo i layout sullo schermo principale. Ciò significa che dovremmo modificare il compositor per utilizzare la shell IVI. È possibile, ma ci metteremmo un sacco di tempo in più, quindi continuiamo a esplorare alternative.

Per esempio, Sway… Questo compositor Wayland a piastrelle potrebbe essere la soluzione giusta e, dato che stiamo usando Yocto sulla nostra scheda Variscite DART-MX8M-PLUS basata su NXP i.MX 8M Plus, potrebbe davvero funzionare. Abbinandolo a wl-mirror, potremmo evitare la seccatura di creare due finestre.

Proviamo questo approccio e siamo eccitatissimi.

È chiaro che funziona (evviva!), ma è un po’ troppo complicato per i nostri gusti (buuh!). Quindi ora siamo alla ricerca di una soluzione più snella. E se semplificassimo l’intero sistema di display, una sola finestra per domarli tutti?

Una sola finestra

Weston è in grado di gestire più display. Quando viene collegato un nuovo display, Weston espande il desktop a destra del display LVDS originale. Quindi immaginate questo: una sola finestra con una larghezza pari alle larghezze combinate dei display LVDS e HDMI e un’altezza corrispondente al display più alto. Immaginate che l’applicazione mostri facilmente gli stessi contenuti su entrambe le aree LVDS e HDMI, rispondendo alle interazioni senza problemi. Sembra troppo bello per essere vero, giusto?

 

LVDS-HDMI

 

E invece, sorpresa: funziona a meraviglia! Con questo sistema ingegnoso Qt fa il lavoro pesante, informandoci sulle dimensioni dello schermo e adattandosi al volo. Abbiamo utilizzato il DART-MX8M-PLUS per le nostre esplorazioni, ma questa soluzione funzionerà con qualsiasi SoM basato su i.MX8 di Variscite. Sebbene questo approccio richieda potenzialmente un’area di memoria più grande della somma di entrambi i display, il che costituisce un piccolo inconveniente, non è necessario modificare il codice del compositor per il mirroring dei display. Siamo a posto!

Sebbene avessimo a disposizione gli strumenti per una soluzione ortodossa (alternare più display e manovrare le finestre sul compositor), la scelta di quella più semplice alla fine si è rivelata più rapida e altrettanto efficace. A volte, la semplicità è la vera chiave.

Informazioni su Integrated Computer Solutions (ICS):

ICS sviluppa le migliori applicazioni software e interfacce touchscreen per prodotti integrati e connessi nel campo delle tecnologie mediche, industriale e commerciale.

Informazioni sugli autori:

Lisandro Pérez Meyer e Michael Dingwall sono ingegneri del software alla ICS (www.ics.com).

Ultimi post
Software releases
July software updates
Rimani aggiornato con gli aggiornamenti software: mantieni i tuoi SoM Variscite sempre al massimo delle loro prestazioni con le nostre ultime versioni software.

Debian Bookworm 6.6.y_24.12-v1.1 per moduli i.MX 8M: DART-MX8M
21.07.2026
Newsroom
VAR+NRG. Built for MedTech. Ready for Compliance
Per immettere sul mercato un prodotto medico soggetto a regolamentazione non basta avere un ottimo hardware. I team di ingegneri devono gestire contemporaneamente il software embedded, la sicurezza informatica, la documentazione relativa al sistema di gestione della qualità e il collaudo, calibrando tutto su un unico prodotto che sia certificato e affidabile nel lungo periodo. È proprio questa la sfida che la nuova collaborazione tra Variscite e NRG si propone di affrontare.
Variscite, azienda leader nella produzione di System on Module con comprovata esperienza nel settore delle applicazioni mediche, ha avviato una collaborazione con NRG, società di ingegneria specializzata in sistemi medtech regolamentati, per fornire una soluzione integrata hardware-software alle aziende che realizzano prodotti medici embedded. La partnership offre ai team di sviluppo l’accesso a una piattaforma hardware collaudata e alle competenze software e ingegneristiche necessarie per centrare gli obiettivi di sviluppo e garantire l’adeguatezza dei prodotti soggetti a regolamentazione.
22.07.2026
Blog
supply-chain-resilience-website-size.png
La crisi globale dei componenti sta costringendo chi lavora nell’embedded a fare i conti con una realtà scomoda: non tutti i fornitori di SoM sono ugualmente preparati. Nell’ultima puntata del podcast “Embedded Executive”, Ohad Yaniv, amministratore delegato di Variscite, parla con Rich Nass di Embedded Computing Design di come garantire ai clienti il rispetto delle scadenze in un contesto in cui l’approvvigionamento è sottoposto a dure pressioni e ci spiega perché la risposta dipende innanzitutto dal controllo della produzione. A differenza dei fornitori che si avvalgono di subappaltatori, Variscite progetta e produce internamente l’intera gamma dei suoi System on Module, con una produzione certificata secondo gli standard ISO 9001, 13485 e 27001.