RaspberryPi2B

Da WikiLilis.

Introduzione

Il raspberry è un single board computer prodotto a partire dal 2012. Dimensioni, prezzo e consumi molto ridotti, oltre ad un forte legame con il mondo OpenSource, ne hanno decretato un'enorme diffusione e la formazione di una grande community di appassionati. Può essere usata come piccolo server casalingo, come mediaplayer (grazie alla decodifica hardware h.264) o anche come postazione desktop (soprattutto nell'ultimo modello "2 b" che trattiamo in questo articolo, grazie alla maggior potenza della CPU rispetto al primo modello).

Caratteristiche Hardware

  • SOC BCM2836
  • CPU ARM Cortex-A7 900MHz quad-core
  • 1GB RAM LPDDR2
  • 4 porte USB
  • 40 pin GPIO
  • Full HDMI
  • Ethernet port 10/100
  • porta jack 3.5mm combinata audio/video
  • Camera interface (CSI)
  • Display interface (DSI)
  • Slot per schede Micro SD
  • core grafico Broadcom VideoCore IV 3D OpenGL ES, decodifica hardware h.264 a 1080p 30 fps

Completare il proprio Raspberry

Indispensabili

E' necessario fornire l'alimentazione attraverso la porta microusb (o al limite da header GPIO). Il Soc ha bisogno di almeno 600ma, ma conviene prenderne uno superiore in base al numero di periferiche usb (ricordo che nel modello 2b ci sono ben 4 porte) non alimentate che si intende collegare. Se non si hanno particolari esigenze è sufficiente un comune alimentatore per cellulare.

E' inoltre necessaria una scheda microsd per sistema operativo, applicazioni e dati, il RB non ha infatti un modulo di storage embedded EMMC o simile.

Connettività

Il Raspberry ha una porta ethernet, se ciò non dovesse bastare bisogna prevedere di aggiungere un adattatore usb wireless/bluetooth avendo cura di sceglierne uno ben supportato dal sistema operativo che si intende usare.

Decodifica MPEG2

Il rb ha un chip broadcom capace di decodificare in accelerazione hardware, tramite un chip dedicato, flussi video h.264. Il chip può decodificare anche flussi mpeg2 ma è necessario acquistare una licenza (di circa 3 euro) a parte. La rb foundation ha preferito non far gravare i costi di questa licenza su ogni unità, in quanto non tutti gli utenti possono essere interessati. La decodifica mpeg2 hardware è comunque essenziale se si ha intenzione di utilizzare il rb a mo di smart tv (come vcr, timeshift, etc. assieme ad adattatori DVB-T e DVBS su canali non hd) o per visualizzare DVD (o relativi rip) in quanto queste tecnologie utilizzano appunti flussi mpeg2. (E' possibile in ogni caso convertire tali flussi in h.264).

Installazione raspbian

Download

Il sito ufficiale con la pagina dei collegamenti ai download è la seguente : https://www.raspberrypi.org/downloads/

Per un uso comune del raspberry si consiglia di scaricare raspian, il modo più comodo è tramite torrent . Abbiamo due versioni, la "full" che contiene un desktop completo e la "lite", molto più ridotta, ma che puo' essere personalizzata successivamente installando i pacchetti che più interessano.

Terminato il download avrete dunque un file tipo : 2016-11-25-raspbian-jessie-lite.zip di circa 1,4 gigabyte

questo file va scompattato con il comando:

unzip 2016-11-25-raspbian-jessie-lite.zip

dal quale otterremo il file immagine di raspbian:

2016-11-25-raspbian-jessie-lite.img

guida ufficiale installazione

La guida ufficiale di installazione dell'immagine è QUI ne riassumamo i passi fondamentali: prendiamo la schedina sd ed inseriamola nel lettore del pc, dopo di che lanciamo il comando

dmesg

tra le varie scritte troveremo delle informazioni che fanno riferimento al device appena inserito. /dev/mmcblk0 ad esempio indicherà che la scheda sd è montata con questo nome.

Se il proprio sistema operativo fa l'automount delle periferiche probabilmente lo farà anche con la schedina usb, prima di procedere bisogna dunque "smontare" i file systems, ciò si può fare da interfaccia grafica o da shell:

cd /media/nomeutente 

oppure

cd /run/media/nomeutente

^^^^ varia a seconda della distribuzione e poi

ls -al

e quindi

umount nomefilesystem1
umount nomefilesystem2

etc.

possiamo quindi procedere a copiare il contenuto del file immagine sulla schedina.

il comando seguente distrugge tutto quello che è presente sul device /dev/mmcblk0 quindi fate attenzione. in pillole :

dd è un comando linux ottimizzato per la lettura/scrittura da dischi (o tra file immagine e dischi)
bs=4M indica la grandezza del blocco dati utilizzato durante la copia (conviene forzarlo almeno a 4MB per velocizzare le operazioni)
if= input file ovvero il file/device che si desidera leggere
of= il device/file dove si desidera scrivere

nel nostro caso avremo:

dd bs=4M if=2016-11-25-raspbian-jessie-lite.img of=/dev/mmcblk0

l'operazione dovrebbe richiedere qualche minuto...

il comando sync ci assicura che tutti i dati siano stati scritti

sync

potete quindi estrarre la schedina, metterla nel raspberry e collegare video, alimentazione e tastiera usb.

Post-installazione

la prima cosa da fare dopo l'avvio del sistema è entrare nella shell usando come username "pi" e password "raspberry", a questo punto scrivere il comando sudo -i e poi digitare

raspi-config
setup iniziale.
clicca per ingrandire.
1  serve per indicare al sistema che deve utilizzare tutto lo spazio sulla schedina, non solo i 3 giga. 
2  serve per scegliere la password dell'utente di default pi
3  serve per scegliere in che modalità avviare il rs
4  serve per indicare il layout tastiera ed il fusorario n.b. con l'rpi3 consente di settare (consigliato!) il paese corrente per abilitare/disabilitare determinate frequenze della scheda wifi
..
7   scelte avanzate :
  a2   potete impostare il nome di sistema del rs
  a3   la memoria da dedicare alla grafica: per un utilizzo multimediale è consigliabile aumentarla ad esigenza
  a4   abilita l'accesso ssh da remoto

dopo un riavvio avrete le modifiche apportate funzionanti.


in futuro potete sempre accedere a questo menu digitando

sudo raspi-config

Conclusioni

Se avete impostato l'interfaccia grafica al riavvio avrete una schermata simile :

setup iniziale.
clicca per ingrandire.

dal terminale :

facciamo un aggiornamento del sistema :

apt-get update
apt-get upgrade

e se volete :

 apt-get install xrdp 

vi permette di mettere su il server rdp per farvi collegare in maniera grafica al rsb da qualunque client desktop remoto.

Configurare la tastiera italiana

Dopo la prima installazione del sistema operativo, qualora dalla fretta di vedere il nostro raspeberino in funzione, non avessimo scelto correttamente la tastiera utilizzata,sarà necessario impostare la tastiera italiana per evitare di impazzire alla ricerca di . , : \ $ @ & etc... . Per farlo basta aprire un semplice terminale e lanciare l'istruzione:

MODO 1

sudo raspi-config In questo modo si aprirà il menu di configurazione del vostro Raspberry.

Selezioniamo la voce:

Internationalisation Options

e successivamente CHANGE KEYBOARD LAYOUT Qui sarà possibile selezionare la tastiera preferita.


MODO 2

Un altro modo di impostare la tastiera italiana è il seguente:

Aprire il terminale e lanciare il seguente comando: sudo nano /etc/default/keyboard Questa istruzione vi permetterà di accedere al file di configurazione della tastiera. Dovrebbe aprirsi qualcosa di simile:

# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
 XKBMODEL=”pc105″ XKBLAYOUT=”gb” XKBVARIANT=”” XKBOPTIONS=””
 BACKSPACE=”guess”

A questo punto basta sostituire in XKBLAYOUT gb con it. Fatto questo procedimento fate ctrl + x se vi chiederà di salvare premete Y.

Per vedere le modifiche apportate basta rimuovere la periferica e reinserirla. Qualora le modifiche non fossero ancora attive, un riavvio non fa mai male.

OpenElec

OSMC

Una delle distribuzioni che si sta fortemente affermando su RB è OSMC (http://www.osmc.tv). La distro continua il lavoro svolto su RaspBMC e Crystalbuntu XBMC/OS.

OSMC è basata su debian jessie e ne sfrutta i repository ufficiali. Infatti il RBP2 è basato su arm7 supportato appunto ufficialmente da debian, questo apre un vero e proprio "mondo" per i possessori di questa fanstastica board che potranno ricevere aggiornamenti dei pacchetti di sistema direttamente da upstream.

L'installazione è pressoché simile a quanto visto finora per installare raspbian.

Al primo avvio il sistema si autoconfigura per estendere le partizioni in modo da utilizzare tutto lo spazio disponibile su schedina SD e poi presenta a video KODI in tutto il suo splendore. L'interfaccia di OSMC è stata personalizzata con un tema specifico molto snello ed elegante, ma se preferite potete ovviamente cambiare la "skin" di kodi, c'è solo l'imbarazzo della scelta.

Mount permanente di un disco esterno

OSMC fa l'automount dei dischi USB automaticamente nella cartella /media, il nome assegnato viene preso dall'UUID della partizione. Può essere comodo forzare il mount del disco in modo permanente e con un nome specifico, questa cosa è molto utile se si intende usare il RB per altri servizi come condivisione del disco, sincronizzazione btsync, webserver, etc., in tal caso bisogna innanzitutto conoscere l'UUID del disco con il comando:

blkid

che restituirà l'elenco di tutte le periferiche di storage collegate, come ad esempio:

/dev/mmcblk0: PTUUID="00095b1c" PTTYPE="dos"
/dev/mmcblk0p1: UUID="E41A-EA0D" TYPE="vfat" PARTUUID="00095b1c-01"
/dev/mmcblk0p2: UUID="4bffda46-4f2c-43a9-8bd1-8cb2bd52ea0e" TYPE="ext4" PARTUUID="00095b1c-02"
/dev/sda1: UUID="cd7b0dd0-0de5-4b1a-8b44-eb4d89535b04" TYPE="ext4" PARTUUID="550be2c4-01"

le prime tre si riferiscono alla scheda sd, mentre l'ulitma è il nostro disco esterno. Ora bisogna modificare il file /etc/fstab aggiungendo una riga che indichi al sistema di fare il mount permamente:

UUID=cd7b0dd0-0de5-4b1a-8b44-eb4d89535b04	/media/disco_esterno	ext4	nofail,defaults	0	0

per verificare che è tutt'ok basta riavviare il raspberry e verificare che il disco sia stato effettivamente montato su /media/disco_esterno

BTSync

Sebbene btsync non sia un programma opensource (e questa cosa personalemente mi fa storcere un pò il naso), poterlo far girare 24H/24 sul RB2 può essere molto comodo in modo da avere un cloud privato per i propri dati senza limitazioni e con una certa sicurezza. Sul funzionamento di btsync rimandiamo alla documentazione disponibile in rete, qui appuntiamo le istruzioni specifiche per il rpb2/osmc.

Per installare il pacchetto dare il comando:

sh -c "$(curl -fsSL http://debian.yeasoft.net/add-btsync-repository.sh)"

rispondere "yes" alla domanda ed attendere che la nuova fonte software e la relativa chiave siano aggiunti al sistema. Alla richiesta di "update" dell'indice dei pacchetti rispondere ancora "yes", altrimenti lanciare manualmente il comando:

apt-get update

creare dunque una cartella che sarà gestita da btsync, nel mio caso ho scelto una cartella dedicata del disco esterno, quindi:

mkdir /media/disco_esterno/btsync

Infine sarà possibile installare btsync con il comando:

apt-get install btsync

alla domanda "Vuoi definire un'instanza predefinita di BitTorrent Sync?" rispondere "si", poi confermare "btsync" come utente del daemon e default come gruppo, alla richiesta di "nice" level conviene abbassare il livello di proprità per non interferire con altre operazioni del sistema (innalzando dunque il numero, ad esempio 10), confermare 0.0.0.0 come indirizzo di ascolto (o modificarlo se si sa quello che si sta facendo :)), confermare la porta 8888, alla domanda se accettare solo traffico SSL rispondere a proprio piacimento (sapendo quello che si fa, ad esempio si il rb ha ip pubblico, o si espone la webui di btsync via nat sull'ip pubblico del proprio router, etc. etc. etc.). Verrà ora richiesta una cartella dove btsync salverà i file, inserirò dunque la cartella prima creata:

/media/disco_esterno/btsync

attendere dunque la configuraz/media/disco_esterno/btsyncione di btsync, poi dare i permessi di scrittura di btsync alla cartella: cui daremo permessi di scrittura a tutti con il comando:

chown btsync:btsync /media/disco_esterno/btsync

e proteggendola un pò con:

chmod 750  /media/disco_esterno/btsync

ora sarà possibile accedere alla webui di btsync con il browser aprendo l'indirizzo

http://ip_del_raspberry:8888

Time 4 Popcorn

Gentoo su raspberry

Essendo un'operazione abbastanza complessa gli dedichiamo un pagina dedicata

Emulazione con QEMU

Il raspberry può essere (più o meno) emulato con QEMU, in tal modo è possibile testare le distribuzioni, operare su immagini di sistema prima di trasferirle su schedina SD, etc. QEMU in versione base emula una macchina ARM chiamata 'versatilepb', questa è dotata di caratteristiche hardware diverse dal raspberry reale, come ad esempio il display, ma soprattutto non emula il firmware del raspberry e quindi non sa come caricare il bootloader dalla scheda SD per poi lanciare il kernel ed il resto del sistema. Per questo motivo con QEMU è necessario far caricare il kernel dall'esterno. Un'alternativa consiste nel usare una versione patchata di QEMU che emula anche il firmware del raspberry (creando una board raspi che è possibile attivare con il flag -M al posto di versatilepb.

Installazione in gentoo

echo 'QEMU_SOFTMMU_TARGETS="arm"' >> /etc/portage/make.conf
echo 'QEMU_USER_TARGETS="arm"' >> /etc/portage/make.conf
emerge qemu

volendo si può installare anche qtemu, un frontend che semplifica la gestione di qemu

emerge qtemu

Predisposizione dell'ambiente di virtualizzazione

creare una cartella e scaricarvi dentro un kernel ottimizzato per l'emulazione del raspberry che potete scaricare da: https://github.com/dhruvvyas90/qemu-rpi-kernel poi scaricare noobs da https://www.raspberrypi.org/downloads/noobs/, quest'ultimo file va scompattato. Infine si può avviare qemu, conviene creare un batch file in modo da non dover ridigitare ogni volta il comando.

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 1024 -M versatilepb -serial stdio