Raspberry PI 4: come attivare l’accelerazione hardware su Chromium

Accellerazione hardware su Raspberry PI 4 con Chromium

Raspberry Pi. Questa piccola schedina ha avuto un’evoluzione davvero incredibile e ne ha fatta davvero tanta di strada da quando era un ambizioso progetto per aiutare e avvicinare al mondo dell’infomratica i bambini meno fortunati. L’ultima versione è “equipaggiata” con il sistema operativo rinnovato (Raspberry OS, ex Raspbian), un processore quad-core da 1.5 Ghz e, a scelta, dotato di RAM daDDR3 da 1GB, 4GB e 8GB. Ma veniamo a noi. In questo articolo:

netflix youtube e chromium: abilitare accelerazione hardware su raspberry pi 4
Introduzione

Come dicevamo, Raspberry PI ha fatto passi da gigante: le vendite, le performance e l’apprezzamento generale complessivo per questo mini computer sono state e sono in costante crescita ovunque.

Insieme al suo cugino prossimo, Arduino, Raspberry PI ha dato vita a “orde di makers” intraprendenti, curiosi e fantasiosi, spesso molto social e pronti a testare e condividere di tutto: idee, codici, tutorial…impressionante e positivo vedere che tutto questo spesso non ha niente a che vedere con l’onnipresente mercificazione ad ogni costo e il desiderio di monetizzare. Certo nei vari gruppi e nei vari forum non mancano gli avvoltoi, gli opportunisti, i maleducati e gli arroganti, ma forse di questo parleremo un’altra volta. Adesso concentriamoci su come e perché conviene abilitare l’accelerazione video.

 

Perchè abilitare l'accelerazione hardware

Con il diffondersi di piattaforme di streaming come Netflix, Amazon prime, Disney+ e con la didattica a distanza (#DAD) introdotta a causa dell’emergenza COVID in ogni famiglia è cresciuta l’esigenza di computer ad uso non solo “casalingo” ma quasi personale: ogni membro della famiglia, infatti, necessità di un PC per esigenze ludiche, scolastiche e/o lavorative; non si parla più solo di consultazione posta elettronica e scrittura di documenti: la multimedialità è ovunque e reclama a gran voce risorse e potenza di calcolo!

In questo contesto il raspberry pi è probabilmente il compromesso migliore, la soluzione che, tra le disponibilità del mercato, offre risparmio e funzionalità.

Inoltre che acquista un raspberry pi può contare un gran numero di disponibili appassionati e su un’ottima assistenza on-line, soprattutto nei forum e nei gruppi facebook. Ma perchè abilitare l’accelerazione hardware?

L’accelerazione hardware non è attiva di default nel raspberry 4 e i processori in dotazione, seppur performanti nel loro specifico ambito di applicazione, fanno i conti con un carico di lavoro un po’ troppo elevato e non sempre sono adeguatamente raffreddati (anche perchè sono pensati e progettati per lavorare senza ventole).

Quindi, se la destinazione d’uso prevede video-chat, video-conferenze o media streaming, è bene non affidarsi solo alla CPU e spostare il carico di lavoro sull’unità di elaborazione grafica (GPU): un piccolo grande aiuto che migliorerà la fluidità dei video sullo schermo, ridurrà i lag (LAtency Gap), abbasserà la temperatura del processore e garantirà (almeno nominalmente) una maggiore durata della scheda.

 

Installare le librerire GL (Fake KMS) OpenGL

Vediamo allora come installare le librerie GL, necessarie per abilitare l’accelerazione hardware video su raspberry pi 4B usando il browser di default: Chromium.

Innanzitutto la prima operazione da eseguire è l’aggiornamento del sistema:

$sudo apt update && sudo apt upgrade

successivamente diamo il comando per l’installazione dei pacchetti delle librerie richieste: libgles2-mesa, libgles2-mesa-dev, xorg-dev

sudo apt install libgles2-mesa libgles2-mesa-dev xorg-dev

A questo punto non ci resta che abilitarle e attivarle.

 

 

 

 

 

 

Abilitare e attivare l'accelerazione 3D Video

Per abilitare e attivare l’accelerazione hardware e migliorare lo streaming video su raspberry pi dobbiamo innanzitutto abilitare i driver 3D video (detti Fake KMS) e settare la memoria dedicata a 128 MB (o verificare che sia impostata a questo valore). Sempre dalla shell, digitiamo:

sudo raspi-config

e nella schermata che si apre nel nostro terminale seguiamo questi step:

  1. Advanced Options > GL Driver
  2. GL (Fake KMS) OpenGL desktop driver with fake KMS
  3. Performance Options > Memory Split > GPU Memory (…selezionare e impostare a 128)

I vari “Invio”, <ok>, <finish> sulle varie opzioni e infine reboot!

una volta riavviato possiamo testare il successo delle operazioni appena svolte:

$cat /proc/device-tree/soc/firmwarekms@7e600000/status

e

$cat /proc/device-tree/v3dbus/v3d@7ec04000/status

che, se tutto è andato bene, restituiranno un bel “okay”.

Ci siamo quasi:

per abilitare le operazioni appena svolte su Chromium, procediamo così:

  1. Apriamo il browser di default (click in alto a sinistra sull’icona del “mondo stilizzato”)
  2. digitiamo nella barra degli indirizzi chrome://flags e modifichiamo e impostiamo  le seguenti 3 voci su “Enabled”
    • Override software rendering list
    • GPU rasterization
    • Out of process rasterization
      
      
  3. possiamo vedere le modifiche a queste impostazioni all’indirizzo chrome://gpu

  4. …e possiamo verificare se i video sono ora decodificati usando l’hardware all’indirizzo chrome://media-internals durante la riproduzione


(MmalVideoDecoder è la libreria predefinita di Broadcom utilizzata per la decodifica hardware H.264 su Raspberry PI)

Disabilitare xcompmgr composition manager

Occasionalmente potreste notare ancora qualche “strappo” sullo schermo: è un problema noto con il nome di “screen tearing” e ho dovuto indagare un po’ per capire come risolvere il problema. La soluzione è arrivata, come spesso succede, da un post in questo forum sul sito raspberry.org:

$sudo mv /etc/xdg/autostart/xcompmgr.desktop /home/pi/backup.xcompmgr.desktop

$sudo reboot

oppure, in alternativa:

$sudo raspi-config

  • Advanced Options > Compositor > xcompmgr composition manager (selezionare “No“)

Riavviare il sistema con

$sudo reboot

La maggior parte dei problemi dovrebbero essere risolti e dopo quest’operazione gli strappi dovrebbero scomparire del tutto o diminuire drasticamente.

Tip: possibili problemi con HD Camera - ENOSPC error

Dopo aver attivato l’accelerazione hardware in Chromium può capitare di utilizzare il comando raspistill mentre si guarda un video su youtube

$raspistill -o /tmp/schermo.jpg

e ricevere quest'errore:
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

per risolvere questo problema basta modificare la memoria GPU precedentemente impostata a 128 MB e portarla a 144 MB:

$sudo raspi-config

Advanced Options > A3 Memory Split

 Click su <Ok> ed è fatta!

raspberry pi 4 + case in metallo per raffreddamento efficace
raspberry pi 4 custodia allulminio - articolo: accelerazione video hardware GPU