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''' è 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ù 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, è 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ò conferma come il Raspberry Pi sia ideale per lo sviluppo di progetti complessi ed articolati e che sto diventando veramente vecchio >_< . | | Il '''Raspberry Pi''' è 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ù 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, è 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ò 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 è stata introdotta nella riga che invoca il comando '''make''', immediatamente dopo la fase di configurazione del codice sorgente: | | La variabile è 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 è 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 è 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à sufficiente variare il valore numerico impostato dopo l'opzione ''-j''. Un valore pari a ''-j1'' implicherà l'uso di un singolo core '''disabilitando di fatto la compilazione in parallelo'''. | | Per impostare un livello di parallelismo maggiore o minore sarà sufficiente variare il valore numerico impostato dopo l'opzione ''-j''. Un valore pari a ''-j1'' implicherà 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 è 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à possibile aggirarli durante la compilazione impostando un valore di parallelismo pari ad 1. A tal fine dovrà 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à 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 è 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à possibile aggirarli durante la compilazione impostando un valore di parallelismo pari ad 1. A tal fine dovrà 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à 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à possibile lanciare immediatamente la compilazione del pacchetto tramite lo script SlackBuild presente nella medesima directory: | | Apportata la modifica sarà 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 è fallita rendendo il seguente errore: | | Durante il primo tentativo di compilare il pacchetto '''tdelibs''' la procedura è 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 è 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 è 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 è 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 è 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 è 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 è 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 è presentato immediatamente, ma relativamente più 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 è presentato immediatamente, ma relativamente più 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 è 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 è 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 è stata preparata la seguente '''patch''': | | Per ovviare definitivamente al problema è 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 è stata trovata una relativa al problema sopra descritto: [http://bugs.pearsoncomputing.net/show_bug.cgi?id=2525 BUG 2525]. La patch è stata proposta come soluzione. | | In seguito, spulciando le segnalazioni presenti nel bug tracker del progetto Trinity ne è stata trovata una relativa al problema sopra descritto: [http://bugs.pearsoncomputing.net/show_bug.cgi?id=2525 BUG 2525]. La patch è 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ò '''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: | | 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ò '''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 | | # 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}} |