installazione chromium headless con supporto webgl software (Debian 8)
Updated at: 20/04/2018


Prerequisiti

Installare i seguenti pacchetti come prerequisiti

apt-get install chromium gcc g++ dh-autoreconf pkg-config lib32z1 zlib1g zlib1g-dev freeglut3-dev

Avremo bisogno di Cmake versione almeno 3.11, mentre la versione distribuita tramite apt-get è la 3.0.1.

Per installarlo si possono usare gli script automatici forniti dal sito (verifica la disponibilità di versioni aggiornate):

mkdir /opt/cmake
cd /opt/cmake
wget https://cmake.org/files/v3.11/cmake-3.11.1-Linux-x86_64.sh
chmod +x cmake-3.11.1-Linux-x86_64.sh
./cmake-3.11.1-Linux-x86_64.sh --skip-license --exclude-subdir

Scaricare lo script di installazione per la versione aggiornata del driver mesa:

mkdir /opt/source/osmesa-install
cd /opt/source/osmesa-install
wget https://raw.githubusercontent.com/devernay/osmesa-install/master/osmesa-install.sh

Modificare le seguenti righe in osmesa-install.sh:

--Modificare la Riga 40 da:
    buildllvm= " ${ LLVM_BUILD :- 0 } "
    
--A:
    buildllvm= " ${ LLVM_BUILD :- 1 } "

-- Eliminare la Riga 537:
    --enable-static \

--Modificare la Riga 538 da:
    --disable-shared \

-- A:
    --enable-shared \

Creare le cartelle per llvm e osmesa:

mkdir /opt/osmesa
mkdir /opt/llvm

Eseguire la compilazione automatica:

chmod +x osmesa-install.sh
./osmesa-install.sh

Creare un symlink alla libreria nella cartella di chromium:

ln -s /opt/osmesa/lib/libMangledOSMesa32.so /usr/lib/chromium/libosmesa.so

Per eseguire chromium headless è necessario prima settare la seguente variabile di ambiente:

export LIBGL_ALWAYS_SOFTWARE=1

Il comando da eseguire è il seguente:

chromium --headless --remote-debugging-port=8090 http://url.da.visitare