Trinity desktop environment 14.0.6 raspberry pi 4

Benvenuti nella pagina Wiki di Simone Giustetti.


Lingue: English - Italiano


TDE 14.0.6 e SlackwareARM 14.2 Current

Nel corso del 2019 sono stati rilasciati sia un nuovo modello di Raspberry Pi, che alcuni aggiornamenti del Trinity Desktop Environment: un ambiente grafico nato per continuare lo sviluppo del ramo 3.5 di KDE. Non è ancora pronta invece la nuova versione di Slackware Linux: la 15.0, ma il ramo di sviluppo, chiamato 14.2 current, è molto stabile e testato. Il Raspberry Pi 4, ultimo modello introdotto della famiglia di computer, è dotato di più risorse dei sui predecessori e si presenta come un ottimo rimpiazzo per sistemi desktop oppure per installare server per piccole aziende, artigiani o studi professionali. Nonostante l'abbondanza di risorse, vale comunque la pena limitare gli sprechi per cui:

  • SlackwareARM anzichè Raspian.
  • TDE al posto di KDE 4 oppure di KDE Plasma.

in modo che il potere computazionale non venga mangiato dal sistema operativo e dall'interfaccia grafica, ma resti a disposizione dei programmi o dei servizi che devono girare sul computer.

Nell'articolo che segue descriverò come compilare la versione 14.0.6 di Trinity Desktop Environment per SlackwareARM Linux su di un Raspberry Pi 4.


SlackwareARM sul Raspberry Pi 4

Il primo passo consiste nell'installare la distribuzione SlackwareARM sul Raspberry Pi 4. Nè la fondazione Raspberry Pi, nè la distribuzione SlackwareARM offrono alcuna forma di supporto, ma come descritto in altri articoli reperibili su questo sito, si tratta di un'operazione semplice, che non cambia di molto tra modelli diversi di Raspberry Pi. Si consiglia di leggere i seguenti articoli:

E la documentazione semi ufficiale disponibile sul sito del progetto SARPi (Slackware ARM on a Raspberry Pi), che fornisce i programmi di installazione e versioni ottimizzate del Kernel Linux.

Cosa cambia rispetto ai modelli precedenti di Raspberry Pi ed alle versioni precedenti di Slackware ARM ? Per il Raspberry Pi 4 il progetto SARPi non fornisce supporto per Slackware 14.2, ma solo per il ramo current in quanto i pacchetti di quest'ultimo sono compilati includendo il supporto hardware ai numeri in virgola mobile, mentre tutte le versioni precedenti emulavano via software tale funzionalità. Supporto hardware significa migliori prestazioni ed è quindi un'innovazione ben accetta. Tutti i modelli a partire dal Raspberry Pi 2 incluso e successivi sono dotati di un'unità hardware in virgola mobile ed è un peccato non sfruttarla. La faccia negativa della medaglia è che i pacchetti della versione current non possono essere mischiati con quelli delle versioni precedenti. Prestate particolare attenzione alla sorgente da cui scaricate i pacchetti di installazione e verificatene la compatibilità.

I pacchetti generici di installazione di SlackwareARM possono essere scaricati da uno dei server del progetto elencati nella pagina seguente. I pacchetti specifici per il Raspberry Pi 4 possono essere reperiti nel sito del progetto SARPi.


Installazione di Trinity Desktop Environment su Raspberry Pi 4

TDE non è incluso ufficialmente in Slackware Linux ed il supporto per tale distribuzione da parte dell'ambiente desktop è sempre stato lacunoso. La situazione è andata migliorando nel corso degli ultimi anni. Sono nati diversi progetti che forniscono script di compilazione per l'interfaccia grafica; uno fra tutti: TDE Slackbuilds su GitHub. Esistono anche alcuni siti che offrono pacchetti compilati pronti per l'installazione. Purtroppo le architetture supportate sono sempre e solo Amd64 e i486 mentre nessuno sembra prestare attenzione alla piattaforma ARM. L'uso di un Raspberry Pi comporta la necessità di compilare i pacchetti in proprio. Fortunatamente ho maturato una certa esperienza con la compilazione di TDE e posso basarmi su script che funzionano per la maggioranza dei pacchetti e richiedono solo piccoli aggiornamenti ad ogni rilascio per adattarsi alle novità introdotte. Recentemente ho aggiornato gli script alla versione 14.0.6 di TDE.

Nel seguito dell'articolo illusterò come utilizzare gli script per ottenere pacchetti installabili della versione 14.0.6 del Trinity Desktop Environment. La distribuzione di riferimento sarà Slackware 14.2 current e la piattaforma un Raspberry Pi 4 dotato di 4 Gigabyte di memoria RAM. Non ho ancora testato gli script per ambienti Amd64 e i486, ma dovrebbero funzionare comunque.

L'installazione di una versione qualsiasi di Trinity Desktop Environment non varia molto tra rilasci diversi. Per istruzioni dettagliate si rimanda ad alcuni articoli presenti in questo stesso sito:

mentre nel seguito dell'articolo esporrò le note specifiche per la versione 14.0.6. Un collegamento agli script utilizzati è reperibile in questa stessa pagina.

Il primo passo per assemblare i pacchetti di installazione consiste nel procurarsi il codice sorgente, distribuito in forma di archivi compressi che possono essere scaricati dai collegamenti riportati nella seguente pagina. Si consiglia di usare i collegamenti reperibili verso la fine della pagina che raggruppano molti file in un unico comodo archivio:

Dipendenze di TDE

Per poter compilare ed usare TDE bisogna installare precedentemente alcuni pacchetti da cui l'ambiente grafico dipende per funzionare correttamente. La lista dei prerequisiti varia con ogni rilascio, ma il numero di pacchetti esterni da installare è andato costantemente riducendosi nel corso degli anni. Molte delle librerie non sono più attivamente supportate e sono pertanto state incluse nel progetto principale. L'ultima dipendenza richiesta dal Trinity Desktop Environment è la libreria imlib, che consente di manipolare e disegnare velocemente su schermo immagini salvate in formati standard. Imlib deve essere installata per compilare tdegraphics ed ottenere un pacchetto funzionante. Imlib è stata rimossa tempo fa dai pacchetti ufficiali di Slackware Linux e deve essere compilata ed installata a parte. La libreria è fortunatamente supportata dal progetto SlackBuilds.org e le istruzioni per compilarla ed installarla sono reperibili in un mio precedente articolo. Le informazioni ivi contenute sono valide tuttora.

Supporto Java

Il Trinity Desktop Environment è sviluppato in C++, ma supporta altri linguaggi di programmazione. Nel caso in cui si desiderasse sviluppare programmi integrati in TDE utilizzando Java è necessario compilare il pacchetto tdebindings abilitando il supporto per tale linguaggio. A tal fine bisogna installare una macchina virtuale Java o ancora meglio il JDK (Java Development Kit). In passato reperire una macchina virtuale Java per architettura ARM rappresentava un problema. Fortunatamente il progetto SARPi, citato in precedenza, mette a disposizione degli utenti di Raspberry Pi una versione in formato pacchetto di un JDK recente, pronto per l'installazione. Il JDK per SlackwareARM 14.2 current e Raspberry Pi 4 può essere scaricato dal collegamento contenuto nella seguente pagina web.

Il Build Tree di TDE

Il Trinity Desktop Environment è un ambiente molto complesso che consta di una moltitudine di pacchetti, suddivisi in quattro categorie:

  • Prerequisiti.
  • Pacchetti base.
  • Librerie addizionali.
  • Applicazioni opzionali.

Il numero di pacchetti di ogni categoria varia sensibilmente con ogni rilascio in quanto quelli troppo obsoleti ed ormai inutili vengono epurati o eventualmente sostituiti, mentre nuovi pacchetti sono introdotti per aggiungere funzionalità, effetti grafici, ed altro ancora. L'insieme degli script utilizzati per compilare TDE prende il nome di Build Tree. Il Build Tree consiste in uno script principale che imposta le opzioni dell'intero ambiente e chiama gli altri, dedicati ai singoli blocchi costituenti TDE, nell'ordine corretto per produrre ed installare tutti i pacchetti senza incorrere in errori. Il file di configurazione è centralizzato in modo da garantire la consistenza dell'intero ambiente grafico. Ogni pacchetto ha una directory dedicata al cui interno si trovano lo script SlackBuild di compilazione, l'archivio compresso contenente il codice sorgente, eventuali patch, un file slack-desc contenente la descrizione e le finalità del pacchetto ed infine un file chiamato local.options che va a sovrascrivere le opzioni globali con quelle specifiche del pacchetto. I file local.options sono solitamente vuoti e vengono popolati solo quando necessario con le opzioni desiderate.

Il build tree distribuito per la versione 14.0.5 del Trinity Desktop Environment necessita di alcune piccole modifiche per funzionare con la versione 14.0.6. Dopotutto si tratta di un rilascio incrementale per corregge errori ed apportare piccole modifiche senza stravolgere il progetto. Una versione aggiornata del build tree è reperibile al seguente indirizzo. Di seguito sono descritte le modifiche apportate rispetto alla versione precedente.

Aggiornamenti al Build Tree

Tutti gli script SlackBuild sono stati aggiornati incrementando a 14.0.6 la versione del rilascio:

   SRCVER=${SRCVER:-"R14.0.6"}

LIBTOOL

Il codice sorgente di TDE fa riferimento ad una versione obsoleta delle librerie libtool, necessarie per assemblare programmi portabili tra sistemi operativi diversi. Il problema è arcinoto dato che affligge l'ambiente grafico fin dal suo primissimo rilascio. Slackware 14.2 Current include libtool 2.4.6 come Slackware 14.2 prima di lei, di conseguenza la patch inclusa per la versione 14.0.5 di TDE funziona anche per la 14.0.6. La correzione è contenuta nel file ltmain_version_update.patch:

   *** admin/ltmain.sh	2013-08-29 14:58:12.136925711 +0200
   --- admin/ltmain.sh	2013-08-29 12:10:51.935987043 +0200
   ***************
   *** 73,81 ****
   
   PROGRAM=ltmain.sh
   PACKAGE=libtool
   ! VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
   TIMESTAMP=""
   ! package_revision=1.3017
   
   # Be Bourne compatible
   if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   --- 73,81 ----
   
   PROGRAM=ltmain.sh
   PACKAGE=libtool
   ! VERSION="2.4.6"
   TIMESTAMP=""
   ! package_revision=2.4.6
   
   # Be Bourne compatible
   if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then

che deve essere copiato nelle cartelle contenenti il codice sorgente dei pacchetti inclusi nel seguente elenco:

  • base/tdeaccessibility
  • base/tdeaddons
  • base/tdeadmnin
  • base/tdebindings
  • base/tdeedu
  • base/tdegames
  • base/tdemultimedia
  • base/tdewebdev
  • library/kipi-plugins
  • library/libkdcraw
  • library/libkexiv2
  • library/libkipi
  • library/libksquirrel
  • library/libtdeldap
  • library/libtqt-perl

MLT e MLT++

Le librerie MLT e MLT++ sono state definitivamente rimosse dal progetto in quanto inutilizzate da altre componenti. La loro compilazione con versioni del Trinity Desktop Environment precedenti alla 14.0.4 ha sempre presentato problemi e conflitti con altre dipendenze per cui la loro rimozione non porta rimpianti. Lo script TDE.SlackBuild è stato aggiornato di conseguenza.

AKODE e LIBR

TDE 14.0.6 introduce 2 nuove dipendenze: Akode e Libr. La prima è una libreria che permette la decodifica di vari formati audio quali MPEG, Ogg Vorbis, FLAC, WAV ed altro ancora, aumentando le funzionalità di tdemultimedia. La seconda dipendenza consiste in una libreria per gestire risorse incorporate in librerie ELF, il formato adottato abitualmente da Linux per i binari. Per includere le due nuove dipendenze sono stati aggiunti i seguenti file all'albero delle directory:

  |   |-- akode
  |   |   |-- local.options
  |   |   |-- akode-trinity-14.0.6.tar.xz
  |   |   |-- akode.SlackBuild
  |   |   `-- slack-desc
  ...
  |   |-- libr
  |   |   |-- local.options
  |   |   |-- libr-trinity-14.0.6.tar.xz
  |   |   |-- libr.SlackBuild
  |   |   `-- slack-desc
  ...

Non esistono altre differenze nell'elenco dei pacchetti.

Le Linee Guida

Riassumiamo brevemente le linee guida impiegate per gestire un progetto di ampio respiro come TDE:

  1. Impostare /opt/trinity come directory base dei pacchetti in modo da consentire la coesistenza di TDE 14.0.6 e recenti versioni di KDE sulla medesima macchina.
  2. Compilare tutti i pacchetti appartenenti ai gruppi: Prerequisiti, Base e Librerie Opzionali ignorando invece le Applicazioni Addizionali.
  3. Preparare script di compilazione che funzionino su tutte le architetture supportate da Slackware Linux: Amd64, ARM e i486.
  4. Utilizzare uno script di compilazione specifico per ogni pacchetto ed uno principale che richiami quelli specifici nel giusto ordine. Ciò consente di compilare a scelta sia l'intero ambiente che un unico pacchetto lanciando sempre un solo comando.
  5. Utilizzare un file di configurazione centralizzato che contenga tutte le opzioni comuni tra i pacchetti costituenti il Trinity Desktop Environment: TDE.options.
  6. Utilizzare file di configurazione locali per le opzioni specifiche di singoli pacchetti. Il contenuto dei file sovrascrive in toto o in parte quello di TDE.options.

Le linee guida elencate sono state utilizzate per tutte le versioni di TDE su cui si è lavorato fino ad ora e mantenute sostanzialmente invariate anche per la versione 14.0.6.

Compilare TDE

Prima di avviare la compilazione è consigliabile rimuovere eventuali versioni precedentemente installate dei pacchetti di TDE dalla macchina designata. Il build tree installa le nuove versioni durante la compilazione, ma non rimuove preventivamente i pacchetti installati. L'utenza dovrà procedere manualmente prima di avviare la compilazione oppure ad installazione avvenuta usando il comando removepkg. Supponendo di voler aggiornare una macchina su cui sia installata la versione 14.0.5 di TDE si può ricorrere al comando:

  removepkg /var/log/packages/*R14.0.5*

Così facendo si partirà da una situazione pulita, ma non sarà possibile utilizzare l'interfaccia grafica fino al termine dell'installazione.

Una copia dell'intero build tree è scaricabile sotto forma di archivio compresso dal seguente indirizzo. Una volta scaricato l'archivio ed il codice sorgente del progetto TDE in una cartella locale quale /tmp si dovranno seguire i passi dettagliati di seguito:

  • Creare la directory /usr/src/trinity:
mkdir /usr/src/trinity
  • Copiare l'archivio contenente il build tree in tale directory
cp /tmp/tde_build_tree_sg-14.0.6.tar.bz2 /usr/src/trinity/
  • Spostarsi nella directory /usr/src/trinity
cd /usr/src/trinity/
  • Estrarre il contenuto dell'archivio utilizzando il comando tar:
tar -jxf tde_build_tree_sg-14.0.6.tar.bz2

La directory /usr/src/trinity verrà così popolata:

  ls -la
  total 12
  drwxr-xr-x  7 root root 1024 Jan  4 19:31 .
  drwxr-xr-x  3 root root 1024 Sep  9  2018 ..
  lrwxrwxrwx  1 root root   15 Jan  4 19:31 TDE.options -> TDE.options.arm
  -rw-r--r--  1 root root  301 Nov 27 16:09 TDE.options.arm
  -rw-r--r--  1 root root  302 Nov 27 16:10 TDE.options.i486
  -rw-r--r--  1 root root  306 Nov 27 16:10 TDE.options.x86_64
  drwxr-xr-x  2 root root 3072 Jan  1  1970 application
  drwxr-xr-x 21 root root 1024 Sep  9  2018 base
  drwxr-xr-x 13 root root 1024 Dec 14  2016 library
  drwxr-xr-x 18 root root 1024 Jan  4 19:31 prerequisite
  drwxr-xr-x  4 root root 1024 Dec 14  2016 tde_build_script
  • Smistare gli archivi contenenti il codice sorgente per i pacchetti nelle omonime directory contenute in base, library e prerequisite. Il file TDE.options è un collegamento al file delle opzioni per una delle tre architetture supportate:
  • TDE.options.arm: Per macchine con processori ARM come il Raspberry Pi.
  • TDE.options.i486: Per personal computer con processori Amd o Intel a 32 bit.
  • TDE.options.x86_64: Per personal computer con processori Amd o Intel a 64 bit.

Se il collegamento puntasse al file delle opzioni sbagliato è necessario cancellarlo e crearne uno che punti alla destinazione corretta mediante il comando ln. Ad esempio per impostare le opzioni per un processore a 32 bit lanciare i comandi:

  rm TDE.options
  ln -s TDE.options.i486 TDE.options

È consigliabile verificare il contenuto del file ed eventualmente apportare modifiche e personalizzazioni alla configurazione dei parametri. Il file può essere aperto con qualsiasi elaboratore di testo. Segue un esempio di file delle opzioni:

   # Global options used to build TDE.
   #
   # Do not place here package specific options. Use a file named
   # "local.options" in the build root directory of the package
   # instead.

   ARCH="arm"
   ARCHIVE_FORMAT="tar.xz"
   BUILD="1"
   JOB_NUM="-j6"
   MARCH="arm"
   PREFIX="/opt/trinity"
   SRCVER="trinity-14.0.6"
   TAG="sg"

Rispetto alla versione 14.0.5 sono stati cambiati i valori della variabile ARCHIVE_FORMAT e anche di SRCVER per adattarli al nuovo formato di compressione ed alla nuova etichetta impostati dagli sviluppatori del progetto TDE. Inoltre è stata rimossa la variabile TAR_OPTION: l'opzione per decomprimere gli archivi che viene ora gestita all'interno dei singoli script.

  • Spostarsi nella directory /usr/src/trinity/tde_build_script/bin e lanciare la procedura di generazione dei pacchetti:
cd /usr/src/trinity/tde_build_script/bin
sh ./TDE.SlackBuild

Lo script si farà autonomamente carico di compilare ogni pacchetto e di installarlo. I pacchetti generati ed i relativi file di log potranno essere reperiti nella directory /tmp.

Una nota a parte merita il pacchetto tde-i18n contenente i file di localizzazione in tutte le lingue supportate da TDE. Lo script principale contiene le istruzioni necessarie ad eseguirne la compilazione, ma l'operazione risulta essere molto lunga e di scarsa utilità per un utente generico perciò le istruzioni sono commentate ed i pacchetti di localizzazione vengono ignorati. Se si desiderasse generare anche i file di localizzazione sarà necessario modificare lo script TDE.SlackBuild rimuovendo il commento dalla riga:

   #   bash ./${PKG}.SlackBuild

per modificarla in

      bash ./${PKG}.SlackBuild


Conclusioni

Nel corso del presente articolo è stato affrontato il tema dell'installazione di Trinity Desktop Environment su un Raspberry Pi modello 4. L'operazione eseguita su una versione di Slackware Linux per piattaforma ARM si è rivelata semplice e lineare e ha consentito di dotare il Raspberry Pi di un ambiente grafico completo, funzionale e leggero. In conclusione si riportano alcune immagini dell'ambiente desktop in funzione.

 

Fig: 1 - Konqueror utilizzato come file manager.

 

Fig: 2 - La versione di TDE come riportata nello help in linea di Konqueror.

 

Fig: 3 - Il solitario controllo del volume di un Raspberry Pi.

 

Fig: 4 - Un editor esadecimale di file binari che funziona (Ogni critica a Okteta è voluta).

 

Fig: 5 - Kiten: Un programma per studiare la lingua giapponese.

 

Fig: 6 - Programma di disegno semplice e senza fronzoli.

 

Fig: 7 - Un'agenda elettronica per programmare le attività.

 

Fig: 8 - L'elenco dei processi attivi sul sistema.

 

Fig: 9 - Ed il relativo carico per uno dei 4 core del Raspberry Pi.

 

Fig: 10 - Dopo tanta fatica un po' di svago.

Non resta che ringraziare gli sviluppatori di TDE per l'ottimo lavoro svolto e invitarvi a visitare nuovamente il sito per aggiornamenti e nuovi articoli.


Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.


Link esterni





Lingue: English - Italiano