Visualizzazione post con etichetta Raspbian. Mostra tutti i post
Visualizzazione post con etichetta Raspbian. Mostra tutti i post

sabato 30 giugno 2018

Installare transmission-daemon sul Raspberry Pi, guida per Raspbian Stretch


In occasione del rilascio degli ultimi aggiornamenti di Raspbian Stretch e dopo quasi cinque anni dalla mia precedente guida sull’installazione e configurazione di transmission-daemon, vediamo cosa è cambiato.

Premetto che rispetto a Raspbian Wheezy l’installazione di Transmission-daemon è molto più semplice, in pochi passi avremo il nostro daemon attivo e funzionante.

I requisiti necessari per seguire questa guida sono due:

1. avere un Raspberry Pi con Raspbian Stretch installato, attivo e collegato alla rete con IP statico;

2. avere un hard disk esterno collegato ad una porta USB del Raspberry Pi, formattato con filesystem ext4 e montato automaticamente al boot;

Se la vostra configurazione soddisfa questi due requisiti possiamo iniziare.

Dal terminale del nostro Raspberry Pi (o da remoto via SSH) controlliamo se ci sono aggiornamenti del sistema.

$ sudo apt update

Se ci sono aggiornamenti procediamo con

$ sudo apt upgrade

Quindi installiano transmission-daemon

$ sudo apt install transmission-daemon

Una volta terminata l’installazione procediamo ad aggiungere il nostro utente al gruppo debian-transmission e l’utente debian-transmission al gruppo del nostro utente. Nel mio esempio userò l’utente di default pi, sostituitelo con il vostro nome utente.

$ sudo usermod -aG pi debian-transmission
$ sudo usermod -aG debian-transmission pi

Prima di procedere alla configurazione prepariamo il disco esterno. Andiamo nella directory che contiene quella di mount del disco, in questo esempio il disco esterno è montato in /media/storage, quindi andrò nella directory /media. Modificate il percorso in base alla vostra configurazione.

$ cd /media
Ora modifichiamo il proprietario del disco.

$ sudo chown -R pi:pi storage

Ora l’utente e il gruppo proprietario del disco è pi (ricordatevi di utilizzare il vostro nome utente), l’opzione -R esegue l’azione ricorsivamente all’interno di tutte le directory del disco, quindi tutti i file contenuti in esso saranno proprietà del vostro utente.

Entriamo nel disco e creiamo le due directory che conterranno i nostri file.

$ mkdir complete
$ mkdir incomplete

Ho usato complete per i file completi e incomplete per quelli in corso, siete liberi di utilizzare dei nomi di vostro gradimento.
Correggiamo i permessi di accesso alle directory.

$ chmod 775 complete
$ chmod 775 incomplete

Con 775 abbiamo garantito i permessi di lettura, scrittura ed esecuzione al proprietario ed agli utenti che appartengono allo stesso gruppo, gli altri non hanno il permesso di scrittura.

Ultimo passo la configurazione di transmission-daemon

$ sudo nano /etc/transmission-daemon/settings.json

Qui dobbiamo modificare le seguenti righe:

"download-dir": "/media/storage/complete",

"incomplete-dir": "/media/storage/incomplete",

Ricordatevi di inserire il percorso ed i nomi delle directory della vostra configurazione.
Nella riga seguente assicuriamoci che l'utilizzo della directory per i file incompleti sia abilitato:

"incomplete-dir-enabled": true,

Proseguiamo con le impostazioni per l'accesso in remoto a transmission-daemon.

"rpc-enabled": true,

"rpc-password": "la_tua_password",

Cancellate quanto contenuto tra le virgole ed inserite una password da utilizzare per l’accesso al daemon. La password che ora appare in chiaro verrà successivamente criptata, la prossima volta che apriremo il file non sarà visibile. Per finire inseriamo un nome utente per accedere

"rpc-username": "nome_utente",

Inserite un nome utente di vostra scelta.
Il filtro sugli indirizzi IP dai quali poter accedere non è necessario se limitate l’accesso dalla vostra rete casalinga, quindi lo disabilitiamo.

"rpc-whitelist-enabled": false,

Salvate le modifiche ed uscite premendo i tasti CTRL-X.

Ora facciamo in modo che transmission-daemon legga ed utilizzi le nuove configurazioni:

$ sudo service transmission-daemon reload

Abbiamo terminato, procediamo a riavviare il Raspberry Pi per verificare che transmission-daemon si riavvia al boot.

$ sudo reboot

Provate l’accesso da web da un altro dispositivo collegato alla stessa rete scrivendo sul campo indirizzo del vostro browser il numero IP del Raspberry Pi seguito dal numero di porta 9091 come nell’esempio:

192.168.1.100:9091

Vi verrà chiesto il nome utente e la password, dovrete usare quelle inserite nel file di configurazione.
Provate ad avviare un file torrent e assicuratevi che il file in download venga scritto sul disco nella directory dei file incompleti.


lunedì 27 febbraio 2017

Custom Arcade Desk: costruire una postazione da sala giochi in puro stile anni '80/'90


In questo post vi parlerò di un progetto che ho realizzato lo scorso anno e che ho battezzato “Custom Arcade Desk”, in pratica si tratta di una scrivania con doppia postazione da gioco per rivivere il fascino delle sale giochi degli anni '80/'90.



Come avrete intuito, se seguite questo blog, il computer al quale ho collegato la postazione da gioco è alimentato da una distribuzione GNU/Linux: Debian 8 (Jessie), recentemente aggiornato a Debian 9 (Stretch).
Comunque è possibile usare qualsiasi altra distribuzione GNU/Linux, incluso Raspbian per Raspberry Pi.

Custom Arcade Desk

Prima di iniziare la carrellata di foto, vediamo la lista dei materiali che ho utilizzato:

- due pannelli in OSB (Oriented Strand Board) da 25 mm di spessore, è un materiale composto da pezzi di legno incollati insieme, in modo simile al truciolato, ma con la caratteristica di essere più resistente;

- un pannello di plexiglas da 3mm di spessore;

- un adesivo permanente polimerico laminato opaco sul quale ho fatto stampare un'illustrazione del gioco Tastunoko vs Capcom;

- una scheda Ultimarc I-PAC 2, è il circuito che si occupa di tradurre i segnali dei pulsanti e del joystick in caratteri e li invia al computer tramite il cavo USB;

- due joystick Sanwa JLF-TP-8YT;

- sedici pulsanti Sanwa OBSF-30 da 30mm di larghezza;

- quattro pulsanti Sanwa OBSF-24 da 24mm di larghezza;

- cavo elettrico mono-polare;

- 20 terminali fastom da 2,8 mm;

- bordo per pannelli preincollato (si applica a caldo con un ferro da stiro);

- flatting per proteggere il legno;

- stucco francese;



Gli utensili necessari per realizzare questo progetto sono:

- un trapano con punte a tazza da 30mm e da 24mm;

- un seghetto alternativo con lame per legno e per metallo;

- una fresatrice per il legno;

- carta vetrata a grana media e fine;

- avvitatore;

- saldatore elettrico;


Una fonte preziosa di informazioni riguardanti i materiali da utilizzare, i diversi costruttori di joystick e pulsanti, nonché i vari schemi di disposizione dei tasti la potete trovare su questo sito.


 Questa era la mia piccola scrivania Ikea modello MICKE che utilizzavo per il computer. Notare come il piano si è era curvato al centro e mostrava segni di cedimento.

L'economica scrivania Ikea MICKE

Ho smontato il piano originale e tolto il cassetto.



Questo è un pannello in OSB da 25 mm, della stessa misura di quello originale, ma il materiale è più pesante e molto più resistente. Ho recuperato e montato gli agganci originali Ikea.

Agganci Ikea montati sul pannello in OSB


Il piano sostitutivo si monta alla perfezione come l'originale


Al posto del cassetto ho montato un altro piano che utilizzo per la tastiera ed il mouse, ho riutilizzato il meccanismo scorrevole per farlo a scomparsa.



Questo è un altro pannello in OSB da 25 mm di spessore, ma di dimensioni maggiori, che estende la scrivania. Sopra c'è un pannello in plexiglas da 3 mm.

Piano superiore con plexiglas e schemi di disposizione dei pulsanti e joystick


Lo schema della disposizione del joystick e dei pulsanti è quello standard utilizzato nelle sale giochi giapponesi.


Di seguito i fori da 30 mm realizzati con una punta a tazza.

Fori da 30mm e catena di fastom per il collegamento a terra dei pulsanti

I due fori da 24 mm per i tasti di servizio, per questi ho utilizzato una mecchia per il legno.

Fori da 24mm e mecchia per legno montata sul trapano

Fori per le due postazioni completati


Fresatura da 3 mm nell'area dove poggia la piastra del joystick.

Fresatura di 3mm di profondità
Il piano delle dimensioni di quello originale è montato su quello superiore di dimensioni maggiori, una fresatura profonda nella parte inferiore della scrivania facilita il montaggio dei pulsanti.

Parte inferiore della scrivania

Dopo aver carteggiato con cura tutta la parte inferiore, ho dato una mano di flatting per proteggere il legno.



Stuccatura del piano per renderlo il più liscio possibile e prepararlo all'applicazione dell'adesivo. Anche sul lato superiore, dopo aver carteggiato, ho passato una mano di flatting.

Il pannello in OSB non è perfettamente liscio e va stuccato

Applicazione del bordo bianco preincollato con il ferro da stiro.

Rifinitura con bordo per pannelli bianco
Questo è il cablaggio completato. Tutti i componenti sono collegati tramite terminali fastom da 2,8 mm, la scheda I-PAC 2 invece è dotata di morsetti a vite.

La scheda I-PAC 2 invia dei caratteri per ogni pulsante premuto o per ciascuna delle 4 direzioni del joystick, proprio come fosse una tastiera, quindi basta un text editor per verificare che tutto funzioni correttamente.

Test di funzionamento con gedit

Applicazione dell'adesivo permanente che ho fatto realizzare su misura, questo adesivo è stato laminato per essere resistente all'usura.

Con l'adesivo applicato l'aspetto è decisamente migliore

Ho montato il plexiglas ed i pulsanti. I joystick sono dei Sanwa con pallina e copri leva in alluminio colorato. I pulsanti sono Sanwa da 30mm e 24mm, la caratteristica forma convessa del tasto li rende ideali per i picchiaduro.

Scrivania completata

Vediamo ora la parte software ed il supporto per Linux.

La scheda I-PAC 2 viene riconosciuta dal sistema immediatamente e senza il bisogno di installare driver.
E'  preimpostata con la mappatura dei tasti del MAME (Multiple Arcade Machine Emulator), ma è possibile rimappare i controlli per mezzo di un apposito programma.
Ultimarc (la casa produttrice, vedi il sito) fornisce il programma per Windows, OS X e indirettamente anche per Linux. La libreria per configurare I-PAC 2 è infatti sviluppata da Katie Snow (vedi il sito) ed è scaricabile dal repository su github (link di github).


Iniziamo con l'installare il MAME inserendo i seguenti comandi come root

# apt update
# apt install mame mame-tools mame-extra

Per poter utilizzare il MAME ovviamente vi occorrono i file di dump delle rom dei videogiochi dell'epoca e questi non sono distribuiti con l'emulatore perché coperti dalle rigide regole del copyright.

Ora scaricate l'ultima versione della libreria Ultimarc dal repository di github (link download), è un archivio tar.gz. Decomprimete l'archivio con il comando:

tar -zxvf nome_file

Attualmente l'ultima versione è la seguente
$ tar -zxvf ultimarc-linux-1.1.update.tar.gz

Ora entrate nella directory con

$ cd ultimarc-linux-1.1

Nel file README ci sono le informazioni per la compilazione della libreria, in particolar modo ci serve sapere quali sono le librerie necessarie e sono le seguenti:

json-c (0.11), su Debian il pacchetto si chiama libjson-c-dev
libusb-dev, su Debian il pacchetto si chiama libusb-1.0-0-dev
libtool

Per finire vi serve il pacchetto build-essential per poter compilare, quindi installate tutto il necessario

# apt install build-essential libjson-c-dev libusb-1.0-0-dev libtool


Un'altra informazione importante che troverete nel file README è la necessità di copiare il file 21-ultimarc.rules nella directory di sistema /etc/udev/rules.d

# cp 21-ultimarc.rules /etc/udev/rules.d
Quindi procedete alla compilazione con
$ ./configure
$ make

Troverete l'eseguibile umtool all'interno della directory src/umtool, si invoca dal terminale e la sintassi è semplice

$ cd src/umtool
 
$ ./umtool ipac2.json

Dove ipac2.json è il nome del file di configurazione della scheda. All'interno della stessa directory ci sono vari file di configurazione di esempio, utilizzate solo i file ipac2 per la vostra scheda I-PAC2 e solo quelli denominati 2015 (la versione 2014 è per le schede più vecchie). Se non trovate i file .json dentro src/umtool allora scaricate da github il file source code e li troverete lì.
Potete aprire il file .json con un text editor e modificare a piacimento la mappatura dei tasti, è un operazione veramente semplice ed intuitiva.

Una volta preparato il file di configurazione basterà invocare il comando umtool per caricarlo sulla scheda. Vi consiglio comunque di conservare sempre una copia del file di configurazione di default.

Buon divertimento!

martedì 9 giugno 2015

Collegare uno scanner di rete al Raspberry Pi utilizzando il server Samba


Se avete una stampante multifunzione di rete che supporta il protocollo SMB (Server Message Block) e vi permette di inviare i file dei documenti acquisiti con lo scanner su un disco condiviso in rete, allora potrete facilmente configurarla per utilizzare il server Samba installato sul vostro Raspberry Pi.

Se non avete ancora installato e configurato il server Samba sul vostro Raspberry Pi potete farlo ora seguendo la mia guida.

In questo post utilizzo la stampante Epson Workforce AL-MX200DNF, ma potrete utilizzare qualsiasi altra marca e modello di stampante multifunzione che abbia il supporto al protocollo SMB.

Dopo aver collegato la stampante al router tramite cavo LAN (o in Wi-Fi se la stampante ve lo permette) ed averla accesa, dal browser di un PC collegato alla stessa rete, digitate l'indirizzo IP della stampante per accedere alla pagina di configurazione della stessa.
Se state configurando una stampante Epson, vi comparirà la pagina EpsonNet Config come questa:

Pagina di configurazione Epson visualizzata sul browser


Ora selezionate la linguetta denominata Rubrica Indirizzi e quindi sulla sinistra, sotto Scansione di rete, cliccate su Rubrica indirizzi computer/server.

Pagina Rubrica Indirizzi computer/server


Vi comparirà una lista di indirizzi vuoti, cliccate il pulsante aggiungi su uno di questi per accedere alla pagina di configurazione del computer collegato.

Pagina di configurazione del computer collegato


Ora inseriamo i dati richiesti:

Nome (visualizzato sulla stampante): potete scrivere Raspberry Pi o qualsiasi altro nome vi ricordi il vostro disco condiviso sulla rete.

Tipo di rete: selezionate Computer SMB o qualsiasi altra dicitura che indichi il protocollo SMB.

Indirizzo host (indirizzo IP): inserite l'indirizzo IP della stampante.

N. porta: 139

Nome accesso (se richiesto dall'host): inserite il nome utente che avete utilizzato per configurare Samba (molto probabilmente avete utilizzato pi se non avete creato un nuovo utente).

Password: inserite la password che avete impostato per accedere al server Samba.

Conferma password: ripetete la stessa password.

Nome directory condivisa: inserite il nome che avete assegnato alla condivisione Samba, se avete seguito la mia guida inserite usb.

Percorso sottodirectory (facoltativo): se volete che i file vengano inviati in una cartella in particolare all'interno del disco condiviso, inserite qui il percorso. Ad esempio io ho creato la cartella scanner ed ho quindi inserito il percorso /scanner

Cliccate su applica ed avete finito.

Ora potete provare ad effettuare una scansione: inserite il foglio da acquisire, selezionate la funzione scanner sulla stampante, quindi scansione in rete. Selezionate scansione su... e quindi Computer (rete). Vi comparirà la lista della rubrica indirizzi e vedrete il vostro Raspberry Pi con il nome che gli avete assegnato. Premete il tasto ok, configurate gli altri parametri della scansione se necessario e quindi premete il tasto Start.
Quando lo scanner avrà terminato l'acquisizione, potrete accedere al disco condiviso in rete con il vostro PC e troverete il file della scansione effettuata nella cartella scelta.

giovedì 4 settembre 2014

aMule-daemon - non funziona dopo un aggiornamento di sistema, vediamo come risolvere


E' buona abitudine aggiornare regolarmente il sistema operativo, ed è quello che faccio quasi quotidianamente anche sul mio Raspberry Pi con i classici comandi:

> sudo apt-get update
> sudo apt-get upgrade

Mi è capitato recentemente di notare, al termine dell'aggiornamento, che x pacchetti erano stati aggiornati e 41 pacchetti non erano stati aggiornati. Ho proceduto allora ad aggiornare tutti i pacchetti con il comando

> sudo apt-get dist-upgrade

Al termine dell'aggiornamento completato senza messaggi d'errore ho notato però che amule-daemon non funzionava più e dava questo messaggio d'errore:

amule: error while loading shared libraries: libbfd-2.22-system.so: cannot open shared object file: No such file or directory

Ho quindi cercato la libreria libbfd con il comando:

> sudo apt-cache search libbfd

Ho così scoperto che il problema risiede nel pacchetto binutils, che risulta regolarmente installato, ma è stato aggiornato dalla versione 2.22-8 alla 2.24.51.
Sembra che la nuova versione di questo pacchetto sia incompatibile con l'attuale versione di amule-daemon, durante un tentativo di compilazione del pacchetto infatti, ho ricevuto un avviso che mi segnalava l'assenza o il non riconoscimento del file header binutils.h.

La soluzione a questo problema quindi è il downgrade del pacchetto binutils, cioè sostituire la versione 2.24.51 con la vecchia 2.22-8, con questo comando:

> sudo apt-get install binutils=2.22-8

Questo comando genererà il seguente output:

Reading package lists... Done
Building dependency tree      
Reading state information... Done
Suggested packages:
  binutils-doc
The following packages will be REMOVED:
  binutils-dev
The following packages will be DOWNGRADED:
  binutils
0 upgraded, 0 newly installed, 1 downgraded, 1 to remove and 0 not upgraded.
Need to get 0 B/4,521 kB of archives.
After this operation, 12.4 MB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 74365 files and directories currently installed.)
Removing binutils-dev ...
dpkg: warning: downgrading binutils from 2.24.51.20140425-1~rpi1rpi2 to 2.22-8
(Reading database ... 74354 files and directories currently installed.)
Preparing to replace binutils 2.24.51.20140425-1~rpi1rpi2 (using .../binutils_2.22-8_armhf.deb) ...
Unpacking replacement binutils ...
Processing triggers for man-db ...
Setting up binutils (2.22-8) ...

Ora potete lanciare amule-daemon in background con il comando:

> amuled -f

Ora amule-daemon funziona regolarmente. In questo post ho parlato in particolare del Raspberry Pi, ma è comunque valido per qualunque sistema che utilizzi Debian o derivati.

venerdì 7 marzo 2014

Raspberry Pi: come ottenere la risoluzione ottimale per il vostro monitor o televisore

Nella guida precedente (leggi qui) abbiamo visto come risolvere i problemi con il collegamento HDMI al televisore o al monitor del Raspberry Pi, in questo post vediamo invece come ottenere la risoluzione ottimale per il vostro schermo.
Spesso infatti la risoluzione scelta dal Raspberry Pi con i valori di default è la classica VGA 640x480, decisamente bassa!
il file di riferimento è sempre config.txt che troviamo in /boot, ci sono due opzioni che regolano la modalità video e la risoluzione, sono hdmi_group e hdmi_mode.

hdmi_group definisce il tipo di HDMI del display collegato, i valori possibili sono:
0 = valore di default
1 = CEA
2 = DMT

Il valore di default sceglierà il tipo in base alle informazioni ottenute dall'EDID (Extended Display Identification Data), che è una struttura di dati forniti dal display, in pratica sono le informazioni che utilizzano i computer per conoscere che tipo di monitor è collegato e quali risoluzioni sono supportate.

hdmi_mode imposta la modalità video e la risoluzione, c'è una lunga lista di valori possibili che evito di riportare qui, ma che potete vedere su questo sito.

Ora che conosciamo un minimo di teoria, passiamo alla pratica: come faccio a sapere quale sia la risoluzione ottimale del mio monitor o televisore?

Aprite il file di configurazione per modificarlo da terminale con

sudo nano /boot/config.txt

Prima cosa da fare è abilitare le due opzioni hdmi_group e hdmi_mode cancellando il carattere '#' all'inizio delle righe ed impostiamo entrambi i valori a 1, così da ottenere una risoluzione standard VGA (640x480).

Salvate le modifiche premendo i tasti Ctrl + o, premete il tasto Invio per confermare il nome del file, quindi uscite dall'editor con Ctrl + x.

Ora riavviate il Raspberry Pi con

sudo reboot

Dopo il login digitate questo comando per ottenere le informazioni dal vostro monitor/TV

/opt/vc/bin/tvservice -d edid.dat

Avete così ottenuto l'EDID, ora andiamo a leggere le informazioni contenute con il seguente comando

/opt/vc/bin/edidparser edid.dat

Verranno visualizzate sul terminale molte informazioni, dal costruttore del display alla lista di tutte le risoluzioni supportate. Sarà qualcosa di simile a quello che ho ottenuto io:


Enabling fuzzy format match...
Parsing edid.dat...
HDMI:EDID version 1.3, 1 extensions, screen size 16x9 cm
HDMI:EDID features - videodef 0x80 !standby !suspend !active off; colour encoding:RGB444|YCbCr422; sRGB is not default colourspace; preferred format is native; does not support GTF
HDMI:EDID found monitor range descriptor tag 0xfd
HDMI:EDID monitor range offsets: V min=0, V max=0, H min=0, H max=0
HDMI:EDID monitor range: vertical is 49-61 Hz, horizontal is 15-46 kHz, max pixel clock is 80 MHz
HDMI:EDID monitor range does not support GTF
HDMI:EDID found monitor name descriptor tag 0xfc
HDMI:EDID monitor name is SAMSUNG
HDMI:EDID found preferred CEA detail timing format: 1280x720p @ 60 Hz (4)
HDMI:EDID found CEA detail timing format: 1280x720p @ 50 Hz (19)
HDMI:EDID established timing I/II bytes are 20 00 00
HDMI:EDID found DMT format: code 4, 640x480p @ 60 Hz in established timing I/II
HDMI:EDID standard timings block x 8: 0x0101 0101 0101 0101 0101 0101 0101 0101
HDMI:EDID parsing v3 CEA extension 0
HDMI:EDID monitor support - underscan IT formats:no, basic audio:yes, yuv444:yes, yuv422:yes, #native DTD:1
HDMI:EDID found CEA detail timing format: 1920x1080i @ 60 Hz (5)
HDMI:EDID found CEA detail timing format: 1920x1080i @ 50 Hz (20)
HDMI:EDID found CEA detail timing format: 720x480p @ 60 Hz (2)
HDMI:EDID found CEA detail timing format: 720x576p @ 50 Hz (17)
HDMI:EDID found CEA format: code 4, 1280x720p @ 60Hz (native)
HDMI:EDID found CEA format: code 19, 1280x720p @ 50Hz
HDMI:EDID found CEA format: code 5, 1920x1080i @ 60Hz
HDMI:EDID found CEA format: code 20, 1920x1080i @ 50Hz
HDMI:EDID found CEA format: code 3, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 18, 720x576p @ 50Hz
HDMI:EDID found audio format 2 channels PCM, sample rate: 32|44|48 kHz, sample size: 16|20|24 bits
HDMI:EDID found HDMI VSDB length 6
HDMI:EDID HDMI VSDB has physical address 1.0.0.0
HDMI:EDID HDMI VSDB supports AI:yes, dual link DVI:no
HDMI:EDID HDMI VSDB deep colour support - 48-bit:no 36-bit:no 30-bit:no DC_yuv444:no
HDMI:EDID HDMI VSDB has no latency information
HDMI:EDID adding mandatory support for CEA (1) 640x480p @ 60Hz
HDMI:EDID filtering formats with pixel clock > 162 MHz or h. blanking > 1023
HDMI:EDID best score mode initialised to CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 0)
HDMI:EDID best score mode is now CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 61864)
HDMI:EDID best score mode is now CEA (2) 720x480p @ 60 Hz with pixel clock 27 MHz (score 3066472)
HDMI:EDID CEA mode (3) 720x480p @ 60 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID best score mode is now CEA (4) 1280x720p @ 60 Hz with pixel clock 74 MHz (score 5190888)
HDMI:EDID DMT mode (4) 640x480p @ 60 Hz with pixel clock 25 MHz has a score of 18432
HDMI:EDID CEA mode (5) 1920x1080i @ 60 Hz with pixel clock 74 MHz has a score of 4273832
HDMI:EDID CEA mode (17) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 2566472
HDMI:EDID CEA mode (18) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID CEA mode (19) 1280x720p @ 50 Hz with pixel clock 74 MHz has a score of 4617160
HDMI:EDID CEA mode (20) 1920x1080i @ 50 Hz with pixel clock 74 MHz has a score of 3732360
HDMI:EDID preferred mode remained as CEA (4) 1280x720p @ 60 Hz with pixel clock 74 MHz
HDMI:EDID has HDMI support and audio support
edid_parser exited with code 0


Ho evidenziato in grassetto e sottolineato due righe in particolare, perché sono quelle che ci dicono qual'è la modalità video preferita.
Nel mio caso, come potete vedere dall'ultima riga evidenziata qui sopra, la risoluzione preferita è CEA (4), corrispondente a 1280x720p @ 60 Hz.

CEA è il tipo di HDMI, quindi imposterò hdmi_group=1, il numero tra parentesi corrisponde invece al valore da inserire per impostare la modalità video, quindi nel mio caso hdmi_mode=4.

Una volta a conoscenza dei valori ottimali per il vostro monitor/TV, andate a modificare di nuovo il file di configurazione con

sudo nano /boot/config.txt

sostituite i valori di hdmi_group e hdmi_mode con quelli ottimali e ricordatevi di verificare che l'opzione hdmi_safe sia disabilitata, altrimenti la risoluzione sarà bloccata su VGA (640x480).
Vi ricordo che un opzione, per essere disabilitata, deve avere il carattere '#' all'inizio della riga.
Ora salvate con la solita combinazione Ctrl + o, Invio, Ctrl + x e riavviate con

sudo reboot

Ora il vostro Raspberry Pi utilizza la risoluzione ottimale del vostro monitor/TV.


giovedì 27 febbraio 2014

Raspberry Pi: come risolvere i problemi con la connessione HDMI

Sono in molti ad avere problemi di connessione del Raspberry Pi ad un televisore/monitor tramite la porta HDMI, spesso ci si ritrova davanti ad uno schermo completamente nero.
Anche io ho incontrato lo stesso problema, la connessione tramite video composito funzionava perfettamente, ma provando a collegarlo tramite HDMI nessun segnale!
La soluzione a questo problema si trova in un file di configurazione in /boot, andiamo subito a modificarlo con:

sudo nano /boot/config.txt

Il file si presenta con una lista di opzioni di configurazione e molti commenti che aiutano a capire a cosa serve ciascuna voce (il tutto ovviamente in inglese).
Le righe che iniziano con il carattere # sono commenti e di conseguenza vengono ignorati dal sistema, molte delle opzioni presenti nel file sono precedute dal suddetto carattere e quindi di fatto disabilitate. Per abilitare un opzione basterà rimuovere il carattere all'inizio della riga.

La prima opzione del file è hdmi_safe=1, che attiva la modalità “sicura”, cioè imposta i parametri per la massima compatibilità possibile con tutti i tipi di TV/monitor. Tenete presente che, se attivate questa opzione, la risoluzione in uscita sarà la standard VGA (640x480).

Saltando le opzioni relative alle dimensioni e posizione dello schermo, troverete hdmi_force_hotplug=1, che forza l'uscita video su HDMI anche quando non viene rilevato alcun monitor collegato. Il Raspberry Pi infatti, in fase di boot, verifica se è presente un monitor HDMI collegato, se non lo rileva viene impostata di default l'uscita video composito. Questa è l'opzione che ha risolto il mio problema!

Altra opzione degna di nota è hdmi_drive=2, che forza la modalità HDMI (video + audio), piuttosto che DVI (solo video).

Per finire, config_hdmi_boost=4, che rafforza il segnale e previene problemi di interferenze o assenza completa di segnale.

Ricapitolando, ho abilitato le seguenti opzioni ed ho risolto ogni problema:

hdmi_force_hotplug=1
hdmi_drive=2
config_hdmi_boost=4

Dopo aver concluso le modifiche salvate premendo i tasti Ctrl + o, premete il tasto Invio per confermare il nome del file, quindi uscite dall'editor con Ctrl + x.
Ora potete riavviare con sudo reboot e godervi l'uscita video sulla vostra TV.

mercoledì 11 settembre 2013

Raspberry Pi - come impostare un numero IP statico

In questa guida spiegherò come impostare un indirizzo IP statico sul vostro Raspberry Pi, prima di iniziare la procedura pratica vorrei illustrare un po di teoria.
Un indirizzo IP serve ad identificare un dispositivo collegato in rete, generalmente il vostro router assegna dinamicamente un indirizzo IP ad ogni nuovo dispositivo collegato. Se abbiamo un computer collegato alla rete casalinga e lo scolleghiamo, il suo indirizzo IP viene liberato e lo stesso potrebbe essere assegnato ad un altro nuovo dispositivo che dovesse collegarsi successivamente. La stessa cosa avviene per il vostro Raspberry Pi, il quale ad ogni riavvio potrebbe avere un indirizzo IP differente.
Avere un IP dinamico risulta quindi decisamente scomodo quando vogliamo accedere in remoto al nostro Raspberry Pi, infatti ogni volta dovremmo essere a conoscenza del suo indirizzo IP. Questo vale sia per accedere al nostro hard disk condiviso tramite Samba, sia per accedere a Transmission-daemon o aMule-daemon e ancora se vogliamo accedere tramite SSH.
Impostare un IP statico farà in modo che, all'avvio, il Raspberry Pi otterrà sempre lo stesso indirizzo IP e di conseguenza sapremo sempre a quale indirizzo trovarlo.
Detto questo effettuiamo il login ed iniziamo a conoscere come vedere quale indirizzo IP ha attualmente il Raspberry Pi con il seguente comando:

sudo ifconfig

Questo comando visualizza molte informazioni riguardanti la connessione di rete, in particolare quelle della sezione denominata eth0 riguardano la connessione via cavo ethernet, wlan0 invece riguarda la connessione Wi-Fi.
Le informazioni che ci saranno utili sono l'indirizzo IP, descritto come "indirizzo inet:" e il numero della "Maschera". Un indirizzo IP è formato da quattro serie di numeri separati da un punto, anche la maschera ha un formato simile e di solito è 255.255.255.0, ma non sempre.

Un'altra informazione necessaria è l'indirizzo IP del nostro router, possiamo trovarla con il seguente comando:

route

Anche in questo caso verranno visualizzate diverse informazioni, il valore che vi interessa lo troverete nella riga che inizia con "default", sotto la colonna Gateway.
Nella riga subito sotto invece, sotto la colonna Genmask, troverete il valore della maschera che dovrebbe essere la stessa di quella trovata con ifconfig.

Ora che abbiamo ottenute tutte le informazioni possiamo andare a modificare il file interfaces che si trova in /etc/network/, quindi scriviamo:

cd /etc/network

Facciamo una copia di sicurezza di interfaces in modo da poterlo ripristinare in qualsiasi momento.

sudo cp interfaces interfaces.backup

Ora apriamo interfaces con l'editor di testo nano:

sudo nano interfaces

Il file di default dovrebbe essere come questo:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Prima cosa da fare è aggiungere il carattere # all'inizio della riga "iface eth0 inet dhcp", questo la farà diventare un commento e verrà ignorata.
Quindi subito sotto aggiungiamo le seguenti righe:

auto eth0
iface eth0 inet static

Di seguito aggiungiamo nell'ordine l'indirizzo IP del Raspberry Pi, l'indirizzo del router ed infine la maschera, come segue:

address [indirizzo_IP_del_Raspberry_PI]
gateway [indirizzo_IP_del_router]
netmask [numero_della_maschera]

Alla fine il vostro file dovrebbe somigliare a questo:

auto lo

iface lo inet loopback
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static

address 11.96.182.58
gateway 11.96.172.1
netmask 255.255.255.0

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Salviamo premendo i tasti Ctrl + o, premiamo il tasto Invio per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.
Ora riavviamo il Raspberry Pi scrivendo

sudo reboot

Se non avete fatto errori ora l'indirizzo IP sarà quello da voi impostato.
Verifichiamo se la connessione ad internet funziona provando con il comando ping sul sito di Google o qualunque altro indirizzo valido.

ping www.google.com

Il risultato deve essere qualcosa del genere:

PING www.google.com (173.194.40.20) 56(84) bytes of data.
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=1 ttl=51 time=264 ms
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=3 ttl=51 time=267 ms
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=4 ttl=51 time=232 ms
64 bytes from mil02s06-in-f20.1e100.net (173.194.40.20): icmp_req=5 ttl=51 time=237 ms

Fermatelo premendo Ctrl + c.
Avete finito, il vostro Raspberry Pi ora ha l'indirizzo IP statico e saprete sempre come collegarvi in remoto.

sabato 24 agosto 2013

Raspberry Pi - come installare e configurare aMule-daemon

Nel precedente post vi ho guidati nell'installazione e configurazione di Transmission-daemon sul Raspberry Pi, vediamo adesso come installare aMule-daemon, il client peer-to-peer per le reti di scambio file eDonkey e Kademlia. Come Transmission-daemon anche aMule-daemon lavora in background e si potrà controllare in remoto da un computer o altro dispositivo collegato alla rete.

aMule - il client peer-to-peer per le reti eDonkey e Kademlia


Prima di iniziare la procedura di installazione assicuratevi di aver collegato e configurato correttamente un disco esterno tramite porta USB, se non lo avete già fatto fatelo ora (qui troverete come farlo).
A questo punto poniamo il caso che il vostro disco sia montato in /mnt/nas.
Prima di installare aMule-daemon aggiorniamo la lista dei pacchetti del repository con

> sudo apt-get update

quindi installiamo con

> sudo apt-get install amule-daemon amule-utils amule-utils-gui

aMule avrà bisogno di 2 cartelle, una dove mettere i file completati ed una dove mettere i file temporanei.
Se non abbiamo già due cartelle adatte allo scopo sul nostro disco esterno possiamo crearle adesso.

> mkdir /mnt/nas/incoming

> mkdir /mnt/nas/temp

Ora avvieremo per la prima volta aMule in modo che questo crei i file di configurazione, otterremo un messaggio d'errore, ma ignoratelo, è normale che succeda.

> amuled

I file di configurazione verranno messi in una cartella nascosta nella nostra home, il suo nome è .aMule. Le cartelle che hanno il nome che inizia con un punto sono nascoste, ma potete vederle aggiungendo l'opzione -a al comando ls, così

> ls -a

Ora impostiamo un password per aMule invocando il comando:

> amuled -e

Ci verrà chiesto di inserire la password.

Se per qualche strano motivo non riuscite ad impostare la password con il comando amuled -e, allora potrete inserirla manualmente nel file di configurazione in questo modo:
Inserite il sequente comando inserendo la password da voi scelta al posto di password.

> echo -n "password" | md5sum | awk '{print $1}'

Verrà visualizzato sul terminale una serie di lettere e numeri apparentemente senza senso, in realtà quella è la vostra password criptata in md5.

Copiatela ed aprite il file di configurazione per inserire la password con

> nano .aMule/amule.conf

amule.conf è un file piuttosto lungo, ad ogni riga corrisponde un'impostazione. Per rendere più ordinata questa lunga lista di opzioni, è stata suddivisa in sezioni contrassegnate da un nome posto tra parentesi quadre.

Cercate la sezione [ExternalConnect] ed inserite la password criptata alla voce ECPassword. Poche righe sotto cercate la sezione[WebServer] ed inserite di nuovo la password criptata alla voce Password.

Ora che la password è inserita, continuiamo con la modifica del file di configurazione. Se non lo avete già aperto per inserire la password manualmente apritelo adesso con il comando

> nano .aMule/amule.conf


Nella sezione [eMule] andate alla riga che inizia con TempDir ed inserite l'indirizzo della cartella per i file temporanei:

TempDir=/mnt/nas/temp

Poi trovate la riga con IncomingDir ed inserite l'indirizzo della cartella per i file completati:

IncomingDir=/mnt/nas/incoming

Per default l'indirizzo di queste due cartelle è dentro la cartella .aMule, questo vorrebbe dire utilizzare la scheda SD per scaricare i nostri file! Per questo motivo le modifichiamo inserendo gli indirizzi delle cartelle sull'HD esterno.

Se il vostro provider internet è Fastweb sarebbe preferibile impostare le URL dei nodi Kad e dei server ed2k. Potete farlo trovando le righe che iniziano rispettivamente con KadNodesUrl e Ed2kServersUrl, modificandole come segue:

KadNodesUrl=http://www.adunanza.net/files/emule/adu_nodes.dat
Ed2kServersUrl=http://update.adunanza.net/servers.met

Ora andate a cercare la sezione [ExternalConnect] ed assicuratevi che la riga AcceptExternalConnections sia impostata ad 1 come segue:

AcceptExternalConnections=1

Questo rende attivo il collegamento in remoto al demone.
Per finire, nella sezione [WebServer] modifichiamo questa riga come segue:

Enabled=1

Questa attiva il server web o meglio una pagina web che permette il controllo del programma.
Possiamo salvare le modifiche premendo i tasti Ctrl + o, premiamo il tasto Invio per confermare il nome del file, quindi usciamo dall'editor con Ctrl + x.
Ora sarà necessario modificare un altro file per permettere allo script di avvio del demone di funzionare correttamente.

> sudo nano /etc/default/amule-daemon

Nella riga AMULED_USER inserite il vostro nome utente

AMULED_USER="nome_utente"

Salvate e uscite dall'editor con i soliti Ctrl + o, Invio e Ctrl + x.
La configurazione è completata, ora potete avviare aMule-daemon con il comando

amuled -f

l'opzione -f forza l'avvio in background, in questo modo potrete chiudere il terminale e lasciarlo lavorare.

Accedere ad aMule-daemon in remoto da un altro computer

Per poter accedere in remoto e controllare aMule abbiamo due possibilità, la prima è quella di utilizzare l'apposita pagina web creata dal web server di aMule-daemon, la seconda è quella di installare l'interfaccia grafica del programma sul computer che vogliamo utilizzare per controllarlo.

Utilizzare la pagina web è la cosa più semplice ed immediata, senza contare il vantaggio di poter utilizzare qualsiasi tipo di device per controllare il demone, l'importante è che abbia un browser internet.
Per accedere alla pagina web di aMule-daemon dovete inserire nel browser l'indirizzo IP del Raspberry Pi seguito dal carattere : (due punti) ed il numero della porta che di default è 4711. Sarà qualcosa del genere:

172.16.254.1:4711

Vi comparirà una pagina con la richiesta di inserire la password, digitate la password che avete usato per aMule e accederete alla pagina di controllo del demone.

la pagina di aMule vi chiede la password per l'accesso


Per collegarvi in remoto dal vostro computer desktop è possibile installare ed utilizzare l'interfaccia grafica aMuleGUI. Il vantaggio di utilizzare l'interfaccia grafica è quello di avere un controllo completo del programma, come se fosse installato sul vostro computer. Se utilizzate Ubuntu potete installarlo utilizzando Ubuntu Software Center cercando aMuleGUI, per altri sistemi derivati da Debian potete installarlo da Terminale con il comando

sudo apt-get install amule-utils-gui

Per altre distribuzioni GNU/Linux utilizzate i comandi destinati all'installazione dei pacchetti.
L'utilizzo di aMuleGUI è molto simile a quello del programma aMule, appena avviato vi comparirà una finestra con i dati relativi alla connessione in remoto.

Parametri di connessione in remoto ad aMule-daemon


Nel campo "Connetti a" inserite l'indirizzo IP del vostro Raspberry Pi, nel campo successivo inserite il numero della porta che di default è 4712. Per finire inserite la password che avete utilizzato per aMule e fate un click sul tasto Connetti.

Buon utilizzo!