36,467 bytes added
, 12:15, 21 December 2016
{{header_it|title=Installazione di TDE 14.0.4 su SlackwareArm Linux 14.2| keyword={{Template:keyword_it_tde}}| description=Installazione di Trinity Desktop Environment e Slackware Linux 14.2 per architettura ARM su Raspberry Pi 3 | link_page=en/Trinity_desktop_environment_14.0.4_raspberry_pi_3}}
== '''TDE 14.0.4 e SlackwareArm 14.2''' ==
'''Trinity Desktop environment''' è un ambiente grafico nato per continuare lo sviluppo del '''ramo 3.5 di KDE'''. '''Slackware''' è la più longeva tra le distribuzioni Linux attivamente supportate ed una tra le più stabili. '''Raspberry Pi''' è una famiglia di computer a basso costo costruiti su una singola scheda. Nati con il fine di insegnare l'informatica e la programmazione, i modelli recenti vantano specifiche hardware e prestazioni di tutto rispetto e sono la piattaforma ideale per ambienti di sviluppo e test o per server destinati a piccole reti. Paradossalmente sono le moderne interfacce grafiche ad avere i maggiori problemi nel girare sul Raspberry Pi a causa delle richieste abnormi di risorse. '''TDE rappresenta il miglior compromesso tra funzionalità e buone prestazioni per macchine con risorse limitate'''.
'''Trinity Desktop Environment non supporta ufficialmente Slackware''' perciò non sono disponibili pacchetti ufficiali per tale distribuzione. In una serie di articoli reperibili su questo stesso sito avevo illustrato come compilare pacchetti funzionanti per svariate versioni di Slackware su architettura '''AMD''', '''ARM''' o '''Intel'''. Il primo Luglio 2016 ha coinciso con il rilascio ufficiale di '''Slackware 14.2''', l'ultima versione della distribuzione, il cui ciclo di sviluppo ha richiesto oltre due anni. Essendo venuto in possesso di un '''Raspberry Pi 3''' aspettavo solo un ritaglio di tempo per installare e provare entrambi. Purtroppo altre attività hanno avuto la precedenza. Ero riuscito ad installare la distribuzione e a compilare quasi tutti i pacchetti di '''TDE 14.0.3''' a cavallo tra Luglio ed Agosto, ma mi sono dovuto fermare prima di aver completato l'opera. Ho procrastinato fino alla fine di Novembre quando, con il rilascio ufficiale di '''TDE 14.0.4''', mi sono reso conto di non poter rimandare oltre e ho deciso di recuperare il tempo perduto scrivendo l'articolo che state leggendo.
Nel proseguo dell'articolo verrà illustrato come installare la versione 14.0.4 del '''Trinity Desktop Environment''', '''TDE''' in breve, su '''Raspberry Pi 3''' e '''SlackwareARM 14.2'''.
== SlackwareARM sul Raspberry Pi 3 ==
Ci si occuperà prima di tutto di installare la distribuzione '''SlackwareARM sul Raspberry Pi 3'''. La [https://www.raspberrypi.org fondazione Raspberry Pi] non supporta la distribuzione derivata Slackware, nè [http://arm.slackware.com SlackwareARM] fornisce supporto per alcun modello di Raspberry Pi. Si tratta comunque di un'operazione semplice che non si discosta molto da una installazione di Slackware Linux su altre architetture ed è possibile reperire [http://rpi3.fatdog.eu/index.php?p=installer documentazione] esaustiva in rete. Le istruzioni non si discostano molto da quelle impiegate per [[trinity_desktop_environment_raspberry_pi_2 |installare SlackwareARM 14.1 su Raspberry Pi 2]] illustrate in un precedente articolo. Nel caso abbiate già installato la distribuzione sul dispositivo potete procedere oltre fino al capitolo dedicato a TDE disponibile più avanti altrimenti continuate la lettura.
Prima di incominciare l'installazione sarà necessario procurarsi:
* Una scheda MicroSD di dimensione maggiore o uguale a 16 Giga byte su cui verrà installato il sistema operativo. Si consiglia una scheda da 32 Gbyte
* Un lettore di schede MicroSD per PC.
* Una pennetta USB da almeno 4 Gb su cui copiare i pacchetti di installazione.
* Mouse USB, tastiera USB, monitor, cavi e tutto il necessario per il funzionamento del Raspberry Pi.
=== Preparazione della Scheda MicroSD ===
Le operazioni di installazione devono essere eseguite da un utente con privilegi elevati quale '''root'''. Salvo dove diversamente specificato nel proseguo dell'articolo si supporrà che stiate operando come root.
Collegare la scheda al PC mediante l'apposito lettore. La scheda correttamente rilevata dovrebbe comparire nell'elenco dei dischi reso dal comando '''fdisk''' come nel seguente esempio:
'''fdisk''' ''-l''
Disk /dev/sdd: 16.0 GB, 16003366912 bytes
255 heads, 63 sectors/track, 1945 cylinders, total 31256576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdd1 8192 31256575 15624192 c W95 FAT32 (LBA)
Scaricare l'immagine di installazione di '''SlacwareArm''' in una directory locale
: '''cd''' /tmp
: '''wget''' http://rpi3.fatdog.eu/files/rpi3/142/img/sarpi3-installer_slack14.2_fd0.img.xz
: '''wget''' http://rpi3.fatdog.eu/files/rpi3/142/img/sarpi3-installer_slack14.2_fd0.img.md5
Ad operazione terminata eseguire un controllo di congruenza per accertarsi che l'immagine non si sia corrotta durante il trasferimento:
: '''md5sum''' ''-c'' rpi3.fatdog.eu/files/rpi3/142/img/sarpi3-installer_slack14.2_fd0.img.md5
Nel caso il comando rendesse un errore sarà necessario scaricare nuovamente l'immagine sperando che il problema non si ripeta. Altrimenti si potrà procedere copiando l'immagine sulla scheda MicroSD mediante il comando '''dd''':
: '''xz''' ''-dc'' sarpi3-installer_slack14.2_fd0.img.xz | '''dd''' of=/dev/sdd bs=65536
Ove /dev/sdd è la scheda MicroSD collegata al PC e precedentemente rilevata. Il buon esito della copia potrà essere verificato utilizzando nuovamente il comando '''fdisk''' per accertarsi che '''le dimensioni della partizione siano mutate''' e che sia stato '''attivato il flag di boot''':
'''fdisk''' ''-l''
Disk /dev/sdd: 16.0 GB, 16003366912 bytes
4 heads, 32 sectors/track, 244192 cylinders, total 31256576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd4dd6bc4
Device Boot Start End Blocks Id System
/dev/sdd1 * 32 187519 93744 c W95 FAT32 (LBA)
=== Pacchetti di Installazione ===
'''Non esistono immagini ISO di SlackwareARM''' dato che la grande maggioranza dei dispositivi basati su architettura ARM non è dotata di lettore CD/DVD e che anche collegandone uno esterno via USB '''non sarebbe comunque possibile eseguire il boot''' dai supporti. SlackwareARM può essere installata in due modi dopo aver avviato il programma di installazione:
# Leggendo i pacchetti esportati via rete tramite protocollo NFS.
# Leggendo i pacchetti da un supporto collegato via USB.
Nel proseguo dell'articolo si utilizzerà la seconda opzione. Un elenco di locazioni da cui scaricare i pacchetti può essere reperito al [http://arm.slackware.com/getslack/ seguente indirizzo]. Una volta scaricati, i pacchetti costituenti SlackwareARM devono essere copiati sulla pennetta USB che dovrà essere collegata al Raspberry Pi durante l'installazione.
=== Avviare l'Installazione di SlackwareARM ===
Ultimati i preparativi si potrà cominciare l'installazione vera e propria.
* Inserire la scheda MicroSD nell'apposito lettore integrato nel Raspberry Pi.
* Collegare tastiera e mouse USB.
* Collegare la chiavetta USB contenente i pacchetti di SlackwareARM precedentemente scaricati.
* Collegare il cavo HDMI/RCA al monitor.
* Accendere il monitor.
* Collegare il cavo di alimentazione al Raspberry Pi.
Se tutto va bene sul Raspberry Pi si accenderanno in sequenza la spia rossa dell'alimentazione e la spia verde collegata al lettore MicroSD che incomincerà a lampeggiare. Sulla parte alta del monitor compariranno '''un numero di lamponi pari al numero di core''' e più sotto la schermata di selezione della tastiera. In caso contrario qualcosa non funziona: potrebbe trattarsi di un problema dell'immagine di installazione risolvibile ripetendo l'operazione di scrittura della scheda MicroSD oppure un problema della scheda stessa; in quest'ultimo caso sarà necessario sostituirla e provarne un'altra.
=== Impostazione di Data e Ora ===
Il Raspberry Pi non è dotato di un orologio hardware perciò '''ad ogni avvio la data di sistema viene azzerata al 1 Gennaio 1970 ed è necessario impostare data ed ora correnti'''. Tale operazione deve essere eseguita anche durante l'installazione altrimenti la procedura si rifiuterà di installare pacchetti di molti anni più recenti del sistema ipotizzando un errore di configurazione. Per impostare la data di sistema sarà necessario:
* Selezionare un layout di tastiera dall'elenco fornito.
* Collegarsi come utente root (Durante l'installazione non viene richiesta una password).
* Lanciare il comando '''date''' con l'opzione ''-s'' per impostare la data:
: '''date''' ''-s'' "<day> <month> <date> <hour>:<minute>:<second> <year>"
Ove
: <day> = Stringa di 3 lettere che specifica il giorno della settimana in inglese.
: <month> = Mese dell'anno rappresentato con una stringa di 3 lettere.
: <date> = Giorno del mese rappresentato con 2 cifre numeriche.
: <year> = Anno rappresentato con 4 cifre numeriche.
: <hour> = Ora rappresentata con 2 cifre numeriche.
: <minute> = Minuti rappresentati con 2 cifre numeriche.
: <second> = Secondi rappresentati con 2 cifre numeriche.
: Es: '''date''' ''-s'' "Thu Sep 3 16:06:35 2015"
Nel caso in cui la rete fosse configurata e funzionante sarà invece possibile aggiornare la data di sistema interrogando un '''server NTP''' esterno mediante il comando:
: '''ntpdate''' pool.ntp.org
=== Partizionamento della Scheda MicroSD ===
La scheda MicroSD è gestita come un disco e come tale deve essere partizionata. Creare più di una partizione garantisce una maggior sicurezza per i dati residenti sul sistema oltre che una maggiore flessibilità nell'eseguire aggiornamenti, back-up o per reinstallare il sistema. Il primo passo consiste nell'individuare la scheda tra i supporti riconosciuti dal sistema mediante il comando '''fdisk''' di cui si riporta un estratto:
'''fdisk''' ''-l''
/dev/mmcblk0
/dev/mmcblk0p1
La scheda corrisponde al dispositivo '''/dev/mmcblk0''' mentre '''/dev/mmcblk0p1''' è la prima partiziona, che contiene i file di avvio. Per partizionare la scheda è possibile far ricorso al comando '''cfdisk''' comune in moltissime distribuzioni Linux:
: '''cfdisk''' /dev/mmcblk0
La partizione esistente '''non deve essere modificata'''. Oltre ad essa sarà necessario creare una '''partizione di swap''', tipologia 082, di almeno 256 Mb di dimensione, una '''partizione di root''', ove installare il sistema ed una '''partizione /home''' per i dati dell'utenza. È ovviamente possibile creare molte altre partizioni secondo le proprie esigenze; quelle elencate rappresentano una configurazione minima. Verificare che '''il flag di boot della prima partizione VFAT sia attivo''' prima di salvare la tabella delle partizioni ed uscire da cfdisk.
Si consiglia di riservare '''come minimo 8 Gbyte per il sistema''' operativo, ma '''12 Gbyte sarebbero preferibili''' in quanto compilare TDE consuma molto spazio disco temporaneo. Lo spazio può essere liberato dopo aver installato l'ambiente desktop, ma si corre il rischio di saturare il disco durante la compilazione causandone il fallimento.
=== Copia dei Pacchetti ===
Montare la pennetta USB contenente i pacchetti di SlackwareARM su di una directory locale ed avviare il programma di installazione mediante il comando '''setup''', che presenterà le schermate standard di una installazione di Slackware Linux.
* Attivare la partizione di swap.
* Attivare la partizione di sistema e le altre configurate.
* Salvare la configurazione delle partizioni nel file '''/etc/fstab'''.
* Attivare la partizione di boot (VFAT) facendo attenzione ad '''impostare umask 177''' in fase di mount onde evitare che ne sia sovrascritto il contenuto per errore.
* Selezionare la sorgente dei pacchetti specificando la directory ove è stata in precedenza montata la pennetta USB.
* Selezionare la tipologia di installazione ed avviare la copia dei pacchetti.
Come anticipato in precedenza lo scopo del presente articolo consiste nel dimostrare che TDE 14.0.4 rappresenti un ottimo rimpiazzo per KDE 4 pertanto si consiglia di '''non installare i pacchetti relativi a KDE 4'''. Le librerie '''Qt4''' potrebbero essere richieste da programmi non necessariamente legati a KDE e possono convivere con '''TQt''': la versione di Qt3 manutenuta dal progetto Trinity. Purtroppo la presenza di Qt4 può causare problemi durante la compilazione dei pacchetti costituenti il Trinity Desktop Environment pertanto si consiglia di '''non installarle subito, ma di rimandarne a dopo aver ultimato l'installazione di TDE'''.
=== Configurazione di Sistema ===
Il programma di installazione di SlackwareARM ricalca quello standard di Slackware perciò la procedura di configurazione va a toccare tutti i punti gestiti da quest'ultimo:
* Configurazione del mouse.
* Configurazione dell'interfaccia di rete.
** Impostazione del nome della macchina.
** Impostazione del dominio.
** Impostazione di un indirizzo IP statico oppure configurazione del servizio DHCP.
* Configurazione dei servizi da avviare al boot.
* Selezione di un font predefinito per la console.
* Configurazione del fuso orario.
* Configurazione del Window Manager predefinito. '''Operazione che dovrà essere ripetuta dopo aver compilato ed installato TDE'''.
* Impostazione della password dell'utente root.
In chiusura il programma di installazione chiederà di eseguire un riavvio del sistema. '''Non riavviare immediatamente''' e procedere invece collegandosi ad un nuovo terminale per:
* Rimuovere pacchetti inutili:
: ROOT=/mnt '''removepkg''' kernel_armv7 kernel-modules-armv7
: ROOT=/mnt '''removepkg''' kernel_kirkwood kernel-modules-kirkwood
* Rimuovere il file '''initrd.gz''' dalla partizione di boot:
: '''mount''' ''-t'' vfat /dev/mmcblk0p1 /mnt/boot
: '''rm''' /mnt/boot/initrd.gz
* Installare il firmware per il Raspberry Pi ed i dati per il kernel:
: ROOT=/mnt '''installpkg''' /rpi3-extra/kernel* /rpi3-extra/rpi3*
Ultimate le operazioni sopra elencate si potrà smontare la sorgente dei pacchetti di installazione ed '''eseguire il riavvio'''. L'installazione di SlackwareARM sul Raspberry Pi è conclusa ed al termine della procedura di avvio sarà possibile collegarsi al sistema appena installato per procedere all'installazione di TDE.
----
== Installazione di Trinity Desktop Environment su Raspberry Pi 3 ==
Il 7 Novembre del 2016 è stata ufficialmente rilasciata la '''versione 14.0.4 del Trinity Desktop Environment'''. Si tratta di un '''rilascio di manutenzione''' e rappresenta il risultato di oltre sette mesi di lavoro per correggere errori e problemi segnalati dagli utenti. '''Non esistono pacchetti precompilati di TDE per Slackware Linux'''. Non per PC e neppure per dispositivi basati su architettura ARM. Si dovrà pertanto procedere compilando i singoli pacchetti a partire dal codice sorgente. Gli archivi compressi contenenti il codice sorgente per i pacchetti possono essere scaricati dal seguente [http://ftp.fau.de/trinity/releases/R14.0.4/downloads.html indirizzo]. Nella pagina web sono disponibili sia i singoli pacchetti che un unico archivio contenente il codice sorgente e i file di localizzazione dell'intero ambiente desktop. Volendo compilare l'intero ambiente e avendo a disposizione circa '''750 Mbyte di spazio disco''' ed '''una linea veloce''', si consiglia di scaricare l'archivio completo. La versione 14.0.4 non presenta stravolgimenti rispetto alle precedenti: si tratta di una versione di manutenzione che non introduce novità. È stato necessario apportare alcune modifiche agli script di compilazione per gestire le dipendenze e gli aggiornamenti introdotti nella versione 14.2 di Slackware. Prima di procedere si consiglia lettura di due precedenti articoli che trattavano la compilazione dei pacchetti di TDE:
* [[trinity_desktop_environment_14.0.0 | Trinity Desktop Environment 14.0.0]] che trattava della nuova versione principale di TDE.
* [[trinity_desktop_environment_raspberry_pi_2 |Trinity Desktop Environment su Raspberry Pi 2]] che illustrava l'installazione di TDE 14.0.1 su di un Raspberry Pi 2.
Segue una descrizione degli script utilizzati per compilare l'intero Trinity Desktop Environement con note specifiche per le novità introdotte.
=== Il Build Tree di TDE ===
Il Trinity Desktop Environment è un ambiente molto complesso che consta di una moltitudine di pacchetti, che possono essere suddivisi in quattro categorie:
* Prerequisiti.
* Pacchetti base.
* Librerie addizionali.
* Applicazioni opzionali.
'''I primi due gruppi costituiscono l'ambiente base''' funzionante ed adatto alle esigenze di un utenza generica. Le librerie introducono funzionalità aggiuntive utili sia per migliorare l'ambiente base che per installare le molte applicazioni opzionali facenti parte del quarto ed ultimo gruppo. Per compilare tutti i pacchetti e mantenere un alto livello di maneggevolezza non basta un unico script SlackBuild per quanto complesso. Si utilizzano invece '''molti script in grado di svolgere un compito specifico ed uno principale che svolge funzioni di controllo'''. Per mantenere la consistenza dell'intero ambiente si utilizza un file di configurazione centralizzato ed univoco in cui includere tutte le opzioni predefinite. Per i pacchetti che necessitassero di opzioni specifiche si utilizzano invece file locali che vanno a sovrascrivere in toto o in parte la configurazione predefinita. L'albero delle directory è stato descritto in un precedente [[trinity_desktop_environment_14.0.0#Alberatura_delle_Directory |articolo]] rispetto al quale ci occuperemo degli aggiornamenti introdotti:
==== LIBTOOL ====
Molti dei pacchetti costituenti TDE presentano problemi nel riconoscimento delle versioni recenti di '''libtool''' incluse nelle moderne distribuzioni. Problemi che affliggono anche una distribuzione molto conservativa come Slackware, sempre attenta negli aggiornamenti del software incluso. In breve il codice sorgente dei pacchetti fa riferimento a libtool 2.2.6: una versione ormai obsoleta e spesso rimpiazzata con quelle più recenti. Non si tratta di un problema introdotto con TDE 14.0.4 bensì di una anomalia nota, che si propaga ad ogni nuovo rilascio. '''Slackware 14.2 include libtool 2.4.6''' il che rende le patch utilizzate per Slackware 14.1 e precedenti obsolete ed inutili. '''ltmain_version_update.patch è stata aggiornata come segue''':
<syntaxhighlight lang="bash">
*** 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
</syntaxhighlight>
Il file aggiornato deve essere copiato nelle cartelle di compilazione di ogni pacchetto che lo necessiti. Segue l'elenco dei pacchetti che richiedono la patch:
* 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++''' erano state trascurate in precedenza essendo afflitte da problemi di dipendenze con '''Qt4''' e '''tQt''' che ne impedivano la compilazione. '''Le librerie sono inutilizzate dall'ambiente base''' pertanto la loro presenza non era fondamentale e la loro assenza non comportava alcuna limitazione. La versione 14.0.4 di TDE sembra aver risolto il problema delle dipendenze ed entrambe le librerie sono finalmente incluse nell'ambiente. Sono stati aggiunti i seguenti file all'albero delle directory:
| |-- mlt
| | |-- local.options
| | |-- mlt-R14.0.4.tar.bz2
| | |-- mlt.SlackBuild
| | |-- slack-desc
| | |-- sox_configure.patch
| | `-- sox_makefile.patch
| |-- mlt++
| | |-- local.options
| | |-- mlt++-R14.0.4.tar.bz2
| | |-- mlt++.SlackBuild
| | `-- slack-desc
e lo script '''TDE.SlackBuild''' è stato aggiornato di conseguenza.
==== TDEBASE ====
Alcuni degli script contenuti nella cartella ''config'' non sono più necessari, ma sono comunque inclusi. Si ipotizza di rimuoverli in versioni future del build tree.
==== TDEBINDINGS ====
'''Tdebindings''' contiene i collegamenti dell'ambiente grafico a linguaggi diversi da quello nativo: il '''C++'''. Tali collegamenti sono indispensabili per chi volesse sviluppare applicazioni integrate in TDE utilizzando altri linguaggi di programmazione. Tra i linguaggi supportati figura anche '''Java''', che purtroppo rappresenta un problema per la piattaforma ARM dato che '''è complicato reperire una virtual machine funzionante per tale architettura'''. Ovviamente le applicazioni non potrebbero funzionare senza la macchina virtuale e le librerie di collegamento non vengono compilate a meno che una non sia installata. Dove reperire una macchina virtuale Java funzionante per SlackwareArm 14.2 ? In passato era impossibile, ma con la versione 14.0 la situazione è migliorata.
Sul sito di [http://www.oracle.com/technetwork/java/javase/downloads/index.html Oracle], attuale proprietario del linguaggio, esistono file di installazione per alcuni dispositivi basati su architettura ARM. Le distribuzioni Linux che girano su architetture ARM si dividono in due categorie: hard float e soft float in base a come gestiscono i numeri a virgola mobile. SlackwareARM 14.2 ricade nella seconda categoria perciò '''necessita di un macchina virtuale soft float'''. Oracle distribuisce solo versioni hard float del JDK8, si dovrà quindi ripiegare sul [http://www.oracle.com/technetwork/java/javase/downloads/jdk7-arm-downloads-2187468.html JDK7 di cui esiste una versione soft float]. Istruzioni per l'installazione della Java virtual machine sono reperibili al seguente [http://www.linuxquestions.org/questions/slackware-arm-108/java-installation-step-by-step-4175527813 indirizzo]. Per chi fosse interessato, maggiori informazioni circa la differenza tra architetture ARM hard e soft float sono reperibili sul [https://www.raspberrypi.org/forums/viewtopic.php?t=11177&p=123525 forum di '''Raspian'''] (In inglese).
Una soluzione alternativa consiste nel compilare una virtual machine basata sul progetto [http://openjdk.java.net OpenJDK]: Un'implementazione di Java completamente Open Source che condivide gran parte del codice sorgente con quella di Oracle. Grazie agli sforzi di [http://alien.slackbook.org/blog/java-in-slackware-arm Eric Hameleers] (Alias Alien Bob) OpenJDK è stato incluso in SlackwareARM. Istruzioni dettagliate per la compilazione ed installazione sono reperibili nel [http://www.slackware.com/~alien/slackbuilds/openjdk7/build repository dei pacchetti di Eric]. Compilare il tutto richiede buone competenze, tempo e risorse: oltre 10 Giga byte di spazio disco libero, e potrebbe rappresentare un problema. Per chi non se la sentisse sono disponibili pacchetti precompilati sul sito di [http://slackware.uk/slackwarearm/unsupported/slackwarearm-current/packages/openjdk Slackware UK]. Nonostante il nome possa trarre in inganno dato che contiene '''armhfp''', i file binari sono compilati per architetture soft-float:
root@system:/tmp/openjdk7/usr/lib/java/bin# '''readelf''' ''-a'' java
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
Entry point address: 0x84c4
Start of program headers: 52 (bytes into file)
Start of section headers: 6512 (bytes into file)
Flags: 0x5000202, has entry point, Version5 EABI, '''soft-float ABI'''
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 8
Size of section headers: 40 (bytes)
Number of section headers: 38
Section header string table index: 35
pertanto possono girare su SlackwareARM 14.2.
==== TDENETWORK ====
Versioni precedenti del pacchetto '''tdenetwork''' richiedevano una patch, inclusa nel file ''threads_sprintf.patch'', per risolvere problema di compatibilità con la funzione '''vsprintf'''. L'ultima versione del pacchetto non sembra essere afflitta dal problema per cui la patch è stata rimossa e lo script '''tdenetwork.SlackBuild''' aggiornato eliminando ogni riferimento ad essa.
=== Le Linee Guida ===
Riassumiamo brevemente le linee guida impiegate per gestire un progetto di ampio respiro come TDE:
# Impostare '''/opt/trinity come directory base dei pacchetti''' in modo da consentire la coesistenza di TDE 14.0.4 e KDE 4 sulla medesima macchina.
# Compilare tutti i pacchetti appartenenti ai gruppi: '''Prerequisiti''', '''Base''' e '''Librerie Opzionali''' ignorando invece le '''Applicazioni Addizionali'''.
# Preparare script di compilazione che funzionino su tutte le architetture supportate da Slackware Linux: '''amd64''', '''ARM''' e '''i486'''.
# 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 unico comando.
# Utilizzare un '''file di configurazione centralizzato''' che contenga tutte le opzioni comuni tra i pacchetti costituenti il Trinity Desktop Environment: ''TDE.options''.
# Utilizzare file di configurazione locali per le opzioni specifiche di singoli pacchetti. Il contenuto dei file sovrascrive in toto 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.4.
=== Novità Introdotte tra le Dipendenze ===
'''Per compilare tutti i pacchetti costituenti il Trinity Desktop Environment sono richieste alcune dipendenze''' elencate in un [[trinity_desktop_environment_14.0.0#Dipendenze |precedente articolo]]. All'elenco si aggiunge '''imlib''': una libreria per leggere immagini e disegnarle velocemente sullo schermo. La libreria è stata rimossa dai pacchetti ufficiali di Slackware 14.2 e deve pertanto essere compilata ed installata a parte pena l'impossibilità di ottenere un pacchetto per '''tdegraphics'''.
'''Imlib è supportata dal progetto [http://www.slackbuilds.org SlackBuilds.org]''' che mette a disposizione degli utenti script di compilazione per una mole considerevole di librerie e programmi non supportati direttamente da Slackware Linux. Per ottenere un pacchetto di imlib funzionante ed installabile sarà necessario:
* Scaricare il codice sorgente di imlib 1.9.15 e l'archivio contenente lo script di compilazione dalla [https://www.slackbuilds.org/repository/14.2/libraries/imlib pagina seguente].
* Spostarsi nella cartella ove sono stati scaricati i file. Si supponga ''/tmp'':
'''cd''' /tmp
* Decomprimere l'archivio contenente lo script di compilazione con il comando '''tar''':
'''tar''' ''-zxf'' imlib.tar.gz
* Spostarsi nella cartella principale dell'archivio estratto:
'''cd''' imlib
* Trasferire l'archivio contenente il codice sorgente nella cartella dello script:
'''mv''' /tmp/imlib-1.9.15.tar.bz2 .
* Lanciare la procedura di compilazione del pacchetto:
./imlib.SlackBuild
Lo script si occuperà di applicare le patch e le correzioni introdotte e di eseguire tutte le operazioni necesssarie ad ottenere un pacchetto finito contenente la libreria.
Il pacchetto creato nella directory ''/tmp'' può essere installato mediante il comando '''installpkg''' come consuetudine:
'''installpkg''' /tmp/imlib-1.9.15-arm-1_SBo.tgz
Nota Bene: tutte le operazioni descritte '''devono essere eseguite dall'utente root'''.
Non installare il pacchetto di imlib distribuito con Slackware 14.1. Anche se sembra funzionare, la libreria inclusa si appoggia a versioni obsolete di jpeg, png, ecc. perciò la sua inclusione in tdegraphics comporterà la produzione di un errore durante la compilazione ed il definitivo fallimento della stessa. '''Imlib deve essere compilato ex novo'''.
=== Aggiornamenti all'Ordine di Compilazione ===
Non si segnala alcuna modifica all'ordine di compilzione dei pacchetti riportato in un [[trinity_desktop_environment_14.0.0#Ordine_di_compilazione |precedente articolo]].
=== Compilare TDE ===
Per semplificare l'operazione di compilazione di TDE è stato preparato uno '''script principale: TDE.SlackBuild''' avente lo scopo di guidare la procedura richiamando in ordine quelli per specifici pacchetti. Una copia dello script e dell'intero '''build tree''' è scaricabile sotto forma di archivio compresso dal seguente [http://www.giustetti.net/resource/slackbuild/tde/1404/tde_build_tree_sg-14.0.4.tar.bz2 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.4.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.4.tar.bz2
La directory /usr/src/trinity verrà così popolata:
'''ls''' ''-la''
total 14
drwxr-xr-x 7 root root 4096 Nov 29 20:48 .
drwxr-xr-x 5 root root 4096 Aug 12 22:46 ..
-rw-r--r-- 1 root root 314 Aug 12 22:59 TDE.options
drwxr-xr-x 113 root root 4096 Aug 12 22:46 application
drwxr-xr-x 22 root root 4096 Aug 12 23:11 base
drwxr-xr-x 13 root root 4096 Aug 12 22:47 library
drwxr-xr-x 16 root root 4096 Aug 12 22:48 prerequisite
drwxr-xr-x 4 root root 4096 Aug 12 22:46 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''', di cui viene fornito un esempio, contiene le opzioni di compilazione per l'intero ambiente:
<syntaxhighlight lang="bash">
# 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.bz2"
BUILD="1"
JOB_NUM="-j6"
MARCH="arm"
PREFIX="/opt/trinity"
SRCVER="R14.0.4"
TAG="sg"
TAR_OPTION="-xjvf"
</syntaxhighlight>
* Aprire il file con un qualsiasi programma di elaborazione di testo ed impostare i valori adeguati alla versione di TDE. Le variabili che dovrebbero essere popolate con riguardo all'architettura e alle preferenze personali sono:
** '''ARCH''' e '''MARCH''' che impostano l'architettura per cui si desideri compilare i pacchetti: '''arm nel caso del Raspberry Pi 3'''.
** '''BUILD''' che dovrebbe essere incrementato ogni volta che si apporta una modifica alla procedura.
** '''JOB_NUM''' che specifica il livello di parallelismo utilizzato per compilare i pacchetti.
** '''PREFIX''' che impone la directory di installazione di TDE. Impostare '''/opt/trinity consente la convivenza di TDE e KDE 4'''.
** '''SRCVER''' è la versione di TDE che si desidera compilare.
** '''TAG''' è l'identificatore di chi esegue la compilazione. Impostare una stringa a piacere.
* 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:
<syntaxhighlight lang="bash">
# bash ./${PKG}.SlackBuild
</syntaxhighlight>
modificandola in
<syntaxhighlight lang="bash">
bash ./${PKG}.SlackBuild
</syntaxhighlight>
----
== Conclusioni ==
Nel corso del presente articolo è stato affrontato il tema dell''''installazione di versioni aggiornate di SlackwareARM e di Trinity Desktop Environment su un Raspberry Pi modello 3'''. L'operazione 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.
<gallery>
tde_1404_desktop_clean.png|Come si presenta il desktop all'avvio di TDE.
tde_1404_konqueror_version.png|La versione di TDE come riportata nello help in linea di Konqueror.
tde_1404_periodic_table.png|Un po' di chimica.
tde_1404_java_plugin_configure.png|La schermata di configurazione dei plug-in Java gestiti attraverso IcedTea.
tde_1404_gparted.png|GParted: un programma per il partizionamento dei dischi rigidi.
tde_1404_task_manager.png|Il monito del Task Manager.
tde_1404_calendar.png|Un calendario per programmare le attività.
tde_1404_disk_usage.png|Una rappresentazione grafica dell'occupazione di spazio dell'utenza '''root'''.
tde_1404_tdevelop.png|TDevelop un IDE per sviluppatori integrato nell'ambiente desktop.
tde_1404_ddd.png|Dopo l'ambiente di sviluppo non poteva mancare quello di debug.
</gallery>
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
----
* [https://www.raspberrypi.org Home page della fondazione Raspberry Pi (En)]
* [https://it.wikipedia.org/wiki/Raspberry_Pi La pagina di Wikipedia dedicata al Raspberry Pi]
* [http://www.slackware.com Home page di Slackware (En)]
* [http://arm.slackware.com Slackware Linux per piattaforma ARM]
* [http://rpi3.fatdog.eu/index.php?p=home Supporto non ufficiale per Slackware su Raspberry Pi 3]
* [http://www.trinitydesktop.org Home page del progetto TDE (En)]
* [http://ftp.fau.de/trinity/releases/R14.0.4/downloads.html Link da cui scaricare il codice sorgente di TDE]
----
{{footer_it | link_page=en/Trinity_desktop_environment_14.0.4_raspberry_pi_3}}