Changes

Aggiornamento pagine a nuova struttura
Line 1: Line 1: −
Benvenuti nella pagina Wiki di Simone Giustetti.
+
{{header_it|title=Installazione di TDE 14.0.1 su SlackwareArm Linux 14.1| keyword={{Template:keyword_it_tde}}| description=Installazione di Trinity Desktop Environment e Slackware Linux 14.1 per architettura ARM su Raspberry Pi 2 | link_page=En/Trinity_desktop_environment_raspberry_pi_2}}
 
  −
 
  −
Lingue: [[En/Trinity_desktop_environment_raspberry_pi_2 |English]] - '''Italiano'''
  −
 
  −
----
      
Il '''Raspberry Pi''' &egrave; un computer di dimensioni molto ridotte, occupa una superficie paragonabile ad una carta di credito, e dal costo contenuto, una trentina di Euro, progettato con il fine di '''insegnare la programmazione ai pi&ugrave; giovani'''. La prima versione fu introdotta il 29 Febbraio del 2012 dalla [https://www.raspberrypi.org fondazione Raspberry Pi], che ne cura tuttora lo sviluppo e gestisce gli aggiornamenti. Nel Febbraio del 2015, &egrave; stato rilasciato il primo modello della nuova generazione di Raspberry Pi: Il '''Raspberry Pi 2'''. Una macchina dotata di un processore Quad Core a 900 MHz e 1 Gb di memoria RAM integrata: una potenza di calcolo di tutto rispetto, migliaia di volte superiore alla dotazione dei server che installavo alcuni anni fa. Ci&ograve; conferma come il Raspberry Pi sia ideale per lo sviluppo di progetti complessi ed articolati e che sto diventando veramente vecchio >_< .
 
Il '''Raspberry Pi''' &egrave; un computer di dimensioni molto ridotte, occupa una superficie paragonabile ad una carta di credito, e dal costo contenuto, una trentina di Euro, progettato con il fine di '''insegnare la programmazione ai pi&ugrave; giovani'''. La prima versione fu introdotta il 29 Febbraio del 2012 dalla [https://www.raspberrypi.org fondazione Raspberry Pi], che ne cura tuttora lo sviluppo e gestisce gli aggiornamenti. Nel Febbraio del 2015, &egrave; stato rilasciato il primo modello della nuova generazione di Raspberry Pi: Il '''Raspberry Pi 2'''. Una macchina dotata di un processore Quad Core a 900 MHz e 1 Gb di memoria RAM integrata: una potenza di calcolo di tutto rispetto, migliaia di volte superiore alla dotazione dei server che installavo alcuni anni fa. Ci&ograve; conferma come il Raspberry Pi sia ideale per lo sviluppo di progetti complessi ed articolati e che sto diventando veramente vecchio >_< .
Line 35: Line 30:  
   Disk identifier: 0x00000000
 
   Disk identifier: 0x00000000
 
    
 
    
      Device Boot      Start        End     Blocks  Id  System
+
  Device     Boot      Start   End         Blocks     Id  System
   /dev/sdc1            8192    31116287    15554048    c W95 FAT32 (LBA)
+
   /dev/sdc1            8192    31116287    15554048    c   W95 FAT32 (LBA)
    
Scaricare l'immagine di installazione di '''SlacwareArm''' in una directory locale
 
Scaricare l'immagine di installazione di '''SlacwareArm''' in una directory locale
Line 58: Line 53:  
   Disk identifier: 0x08dd8e65
 
   Disk identifier: 0x08dd8e65
 
    
 
    
      Device Boot     Start         End     Blocks  Id  System
+
  Device     Boot       Start   End         Blocks  Id  System
   /dev/sdc1  *          32      156287      78128    c W95 FAT32 (LBA)
+
   /dev/sdc1  *          32      156287      78128    c   W95 FAT32 (LBA)
    
=== Pacchetti di Installazione ===
 
=== Pacchetti di Installazione ===
Line 146: Line 141:     
La variabile &egrave; stata introdotta nella riga che invoca il comando '''make''', immediatamente dopo la fase di configurazione del codice sorgente:
 
La variabile &egrave; stata introdotta nella riga che invoca il comando '''make''', immediatamente dopo la fase di configurazione del codice sorgente:
 +
<syntaxhighlight lang="bash">
 
   '''make''' VERBOSE=1 ${JOB_NUM}
 
   '''make''' VERBOSE=1 ${JOB_NUM}
 +
</syntaxhighlight>
 
Come standard per i pacchetti si &egrave; optato per '''un livello di parallelismo pari a 6''' in accordo con i vecchi script ufficiali di compilazione di KDE 3 per Slackware. La variabile definita negli script SlackBuild deve essere impostata attraverso il file '''TDE.options''', contenente le opzioni di compilazione per l'intero ambiente desktop.
 
Come standard per i pacchetti si &egrave; optato per '''un livello di parallelismo pari a 6''' in accordo con i vecchi script ufficiali di compilazione di KDE 3 per Slackware. La variabile definita negli script SlackBuild deve essere impostata attraverso il file '''TDE.options''', contenente le opzioni di compilazione per l'intero ambiente desktop.
 +
<syntaxhighlight lang="bash">
 
   JOB_NUM=-j6
 
   JOB_NUM=-j6
 +
</syntaxhighlight>
 
Per impostare un livello di parallelismo maggiore o minore sar&agrave; sufficiente variare il valore numerico impostato dopo l'opzione ''-j''. Un valore pari a ''-j1'' implicher&agrave; l'uso di un singolo core '''disabilitando di fatto la compilazione in parallelo'''.
 
Per impostare un livello di parallelismo maggiore o minore sar&agrave; sufficiente variare il valore numerico impostato dopo l'opzione ''-j''. Un valore pari a ''-j1'' implicher&agrave; l'uso di un singolo core '''disabilitando di fatto la compilazione in parallelo'''.
    
=== Errori Dovuti al Parallelismo ===
 
=== Errori Dovuti al Parallelismo ===
 
Esistono segnalazioni da parte di utenti che lamentano l'insorgere di errori durante la compilazione di alcuni pacchetti di TDE quando il livello di parallelismo impostato &egrave; maggiore di 1. La maggior parte delle segnalazioni riguardano due pacchetti: '''tdebindings''' e '''tdemultimedia'''. I test eseguiti durante la stesura del presente articolo non hanno rilevato alcun problema, cionondimeno se tali problemi dovessero presentarsi sar&agrave; possibile aggirarli durante la compilazione impostando un valore di parallelismo pari ad 1. A tal fine dovr&agrave; essere modificato il contenuto del file globale '''TDE.options''', oppure le opzioni specifiche per il singolo pacchetto contentue nel relativo file '''local.options'''. Se ad esempio si volesse generare un pacchetto per '''tdebindings''' senza ricorrere alla compilazione parallela sar&agrave; sufficiente spostarsi nella directory contente gli script di compilazione, il codice sorgente ed il file local.options: /usr/src/trinity/base/tdebindings nel nostro caso, aprire il file '''local.options''' con un programma di elaborazione di testi a scelta ed aggiungere la riga:
 
Esistono segnalazioni da parte di utenti che lamentano l'insorgere di errori durante la compilazione di alcuni pacchetti di TDE quando il livello di parallelismo impostato &egrave; maggiore di 1. La maggior parte delle segnalazioni riguardano due pacchetti: '''tdebindings''' e '''tdemultimedia'''. I test eseguiti durante la stesura del presente articolo non hanno rilevato alcun problema, cionondimeno se tali problemi dovessero presentarsi sar&agrave; possibile aggirarli durante la compilazione impostando un valore di parallelismo pari ad 1. A tal fine dovr&agrave; essere modificato il contenuto del file globale '''TDE.options''', oppure le opzioni specifiche per il singolo pacchetto contentue nel relativo file '''local.options'''. Se ad esempio si volesse generare un pacchetto per '''tdebindings''' senza ricorrere alla compilazione parallela sar&agrave; sufficiente spostarsi nella directory contente gli script di compilazione, il codice sorgente ed il file local.options: /usr/src/trinity/base/tdebindings nel nostro caso, aprire il file '''local.options''' con un programma di elaborazione di testi a scelta ed aggiungere la riga:
 +
<syntaxhighlight lang="bash">
 
   JOB_NUM=-j1
 
   JOB_NUM=-j1
 +
</syntaxhighlight>
 
Apportata la modifica sar&agrave; possibile lanciare immediatamente la compilazione del pacchetto tramite lo script SlackBuild presente nella medesima directory:
 
Apportata la modifica sar&agrave; possibile lanciare immediatamente la compilazione del pacchetto tramite lo script SlackBuild presente nella medesima directory:
 
   '''sh''' ./tdebindings.SlackBuild
 
   '''sh''' ./tdebindings.SlackBuild
Line 164: Line 165:  
==== TDELIBS ====
 
==== TDELIBS ====
 
Durante il primo tentativo di compilare il pacchetto '''tdelibs''' la procedura &egrave; fallita rendendo il seguente errore:
 
Durante il primo tentativo di compilare il pacchetto '''tdelibs''' la procedura &egrave; fallita rendendo il seguente errore:
 +
<syntaxhighlight lang="cmake">
 
   [  0%] Building C object dcop/KDE-ICE/CMakeFiles/kICE-static.dir/accept.c.o
 
   [  0%] Building C object dcop/KDE-ICE/CMakeFiles/kICE-static.dir/accept.c.o
 
   In file included from <command-line>:0:0:
 
   In file included from <command-line>:0:0:
Line 173: Line 175:  
   make[1]: *** [dcop/KDE-ICE/CMakeFiles/kICE-static.dir/all] Error 2
 
   make[1]: *** [dcop/KDE-ICE/CMakeFiles/kICE-static.dir/all] Error 2
 
   make: *** [all] Error 2
 
   make: *** [all] Error 2
 +
</syntaxhighlight>
    
Inizialmente si &egrave; pensato ad un potenziale problema derivante dal parallelismo introdotto dato che la versione 14.0.0 del pacchetto non presentava alcun difetto. Un secondo tentativo eseguito impostando l'opzione '''-j1''' ha reso esito analogo. Scartata la compilazione parallela come causa potenziale del problema si &egrave; proceduto a verificare che tutti i prerequisiti fossero stati correttamente installati e che il file '''ntqglobal.h''' fosse presente nel sistema. Il comando '''find''' ha confermato l'esistenza di un file con tale nome:
 
Inizialmente si &egrave; pensato ad un potenziale problema derivante dal parallelismo introdotto dato che la versione 14.0.0 del pacchetto non presentava alcun difetto. Un secondo tentativo eseguito impostando l'opzione '''-j1''' ha reso esito analogo. Scartata la compilazione parallela come causa potenziale del problema si &egrave; proceduto a verificare che tutti i prerequisiti fossero stati correttamente installati e che il file '''ntqglobal.h''' fosse presente nel sistema. Il comando '''find''' ha confermato l'esistenza di un file con tale nome:
Line 182: Line 185:     
Il problema &egrave; stato risolto '''aggiungendo un percorso di ricerca per i file include''' durante la fase di compilazione del codice sorgente. A tal fine sono state aggiunte le righe:
 
Il problema &egrave; stato risolto '''aggiungendo un percorso di ricerca per i file include''' durante la fase di compilazione del codice sorgente. A tal fine sono state aggiunte le righe:
 +
<syntaxhighlight lang="bash">
 
   # Add some include paths to the standard compiler flags otherwise the build
 
   # Add some include paths to the standard compiler flags otherwise the build
 
   # process will fail with an error
 
   # process will fail with an error
 
   SLKCFLAGS="${SLKCFLAGS} -I${PREFIX}/include"
 
   SLKCFLAGS="${SLKCFLAGS} -I${PREFIX}/include"
 +
</syntaxhighlight>
 
Aventi lo scopo di accodare '''/opt/trinity/include''' all'elenco dei percorsi predefiniti. Lo script modificato gira con successo.
 
Aventi lo scopo di accodare '''/opt/trinity/include''' all'elenco dei percorsi predefiniti. Lo script modificato gira con successo.
    
==== TDENETWORK ====
 
==== TDENETWORK ====
 
Nel caso del pacchetto '''tdenetwork''' il problema non si &egrave; presentato immediatamente, ma relativamente pi&ugrave; tardi a procedura avanzata: durante la fase di copia dei file costituenti l'installazione. L'errore reso nel caso specifico era:
 
Nel caso del pacchetto '''tdenetwork''' il problema non si &egrave; presentato immediatamente, ma relativamente pi&ugrave; tardi a procedura avanzata: durante la fase di copia dei file costituenti l'installazione. L'errore reso nel caso specifico era:
 +
<syntaxhighlight lang="cmake">
 
   [ 71%] Building CXX object krdc/vnc/CMakeFiles/vnc-static.dir/threads.cpp.o
 
   [ 71%] Building CXX object krdc/vnc/CMakeFiles/vnc-static.dir/threads.cpp.o
 
   /tmp/build/tmp-tdenetwork/tdenetwork/krdc/vnc/threads.cpp: In function 'void output(const char*, ...)':
 
   /tmp/build/tmp-tdenetwork/tdenetwork/krdc/vnc/threads.cpp: In function 'void output(const char*, ...)':
Line 197: Line 203:  
   make[1]: *** [krdc/vnc/CMakeFiles/vnc-static.dir/all] Error 2
 
   make[1]: *** [krdc/vnc/CMakeFiles/vnc-static.dir/all] Error 2
 
   make: *** [all] Error 2
 
   make: *** [all] Error 2
 +
</syntaxhighlight>
    
Anche in questo caso si &egrave; proceduto verificando che il problema non fosse una conseguenza diretta del livello di parallelismo pari a 6, ma nuovamente i test hanno dimostrato che la causa dovesse essere cercata altrove. Leggendo la documentazione relativa alle classi TQString e TQCString interessate:
 
Anche in questo caso si &egrave; proceduto verificando che il problema non fosse una conseguenza diretta del livello di parallelismo pari a 6, ma nuovamente i test hanno dimostrato che la causa dovesse essere cercata altrove. Leggendo la documentazione relativa alle classi TQString e TQCString interessate:
Line 204: Line 211:     
Per ovviare definitivamente al problema &egrave; stata preparata la seguente '''patch''':
 
Per ovviare definitivamente al problema &egrave; stata preparata la seguente '''patch''':
 +
<syntaxhighlight lang="cpp">
 
   *** krdc/vnc/threads.cpp        2015-09-13 20:01:24.889992277 +0200
 
   *** krdc/vnc/threads.cpp        2015-09-13 20:01:24.889992277 +0200
 
   --- krdc/vnc/threads.cpp        2015-09-13 19:59:20.899992324 +0200
 
   --- krdc/vnc/threads.cpp        2015-09-13 19:59:20.899992324 +0200
Line 222: Line 230:  
    
 
    
 
         va_end(args);
 
         va_end(args);
 
+
</syntaxhighlight>
 +
 
 
Richiamata dallo script di compilazione mediante le righe:
 
Richiamata dallo script di compilazione mediante le righe:
 +
<syntaxhighlight lang="bash">
 
   # Patch the krdc/vncn/threads.cpp source file in order to solve an issue with the
 
   # Patch the krdc/vncn/threads.cpp source file in order to solve an issue with the
 
   #  output function.
 
   #  output function.
   '''patch''' ''-p0 -i'' ${SRCDIR}/threads_sprintf.patch
+
   patch -p0 -i ${SRCDIR}/threads_sprintf.patch
 +
</syntaxhighlight>
    
In seguito, spulciando le segnalazioni presenti nel bug tracker del progetto Trinity ne &egrave; stata trovata una relativa al problema sopra descritto: [http://bugs.pearsoncomputing.net/show_bug.cgi?id=2525 BUG 2525]. La patch &egrave; stata proposta come soluzione.
 
In seguito, spulciando le segnalazioni presenti nel bug tracker del progetto Trinity ne &egrave; stata trovata una relativa al problema sopra descritto: [http://bugs.pearsoncomputing.net/show_bug.cgi?id=2525 BUG 2525]. La patch &egrave; stata proposta come soluzione.
Line 263: Line 274:     
* 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:
 
* 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.
 
   # Global options used to build TDE.
 
   #
 
   #
Line 278: Line 290:  
   TAG="sg"
 
   TAG="sg"
 
   TAR_OPTION="-xjvf"
 
   TAR_OPTION="-xjvf"
 +
</syntaxhighlight>
    
* Aprire il file con un qualsiasi programma di elaborazione di testo ed impostare i valori desiderati per le variabili contenute. Le variabili che dovrebbero essere popolate con riguardo all'architettura e alle preferenze personali sono:
 
* Aprire il file con un qualsiasi programma di elaborazione di testo ed impostare i valori desiderati per le variabili contenute. Le variabili che dovrebbero essere popolate con riguardo all'architettura e alle preferenze personali sono:
Line 294: Line 307:     
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 onerosa in termini di tempo perci&ograve; '''le istruzioni sono commentate''' ed i pacchetti di localizzazione vengono ignorati. Se si desiderasse generare anche i file di localizzazione sar&agrave; necessario modificare lo script TDE.SlackBuild rimuovendo il commento dalla riga:
 
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 onerosa in termini di tempo perci&ograve; '''le istruzioni sono commentate''' ed i pacchetti di localizzazione vengono ignorati. Se si desiderasse generare anche i file di localizzazione sar&agrave; necessario modificare lo script TDE.SlackBuild rimuovendo il commento dalla riga:
 +
<syntaxhighlight lang="bash">
 
   #  bash ./${PKG}.SlackBuild
 
   #  bash ./${PKG}.SlackBuild
 +
</syntaxhighlight>
 
modificandola in
 
modificandola in
 +
<syntaxhighlight lang="bash">
 
       bash ./${PKG}.SlackBuild
 
       bash ./${PKG}.SlackBuild
 +
</syntaxhighlight>
    
=== Tempistiche ===
 
=== Tempistiche ===
Line 338: Line 355:  
----
 
----
   −
Lingue: [[En/Trinity_desktop_environment_raspberry_pi_2 |English]] - '''Italiano'''
+
{{footer_it | link_page=En/Trinity_desktop_environment_raspberry_pi_2}}