Creiamo il nostro Media Center con Raspberry+Arch


Questa guida si propone con l’idea di creare un piccolo server tuttofare (anche se il NAS non riesce a ottenere grandi prestazioni di rete) da collegare alla nostra TV tramite HDMI, grazie al Raspberry Pi 3.
Come prerequisiti dovremmo avere ArchLinuxARM installato e configurato.
EDIT:La guida è aggiornata per essere usata anche su ODROID-C2.

Installiamo kodi

Raspberry:

# pacman -S kodi-rbp afpfs-ng bluez libnfs udisks unrar unzip shairplay omxplayer-git xorg-xrefresh xorg-xset

in /boot/config.txt modificate gpu_mem ad almeno 128 (io ho messo 256).

Aggiungiamo la regola udev
SUBSYSTEM=="tty", KERNEL=="tty0", GROUP="tty", MODE="0666" in /etc/udev/rules.d/raspberrypi.rules

Abilitiamo kodi ad avviarsi in modalità standalone
# systemctl enable kodi

Odroid:
Vi rimando a questa guida.

Rendiamo fissi i dischi collegati via USB

Se, come nel mio caso, volete anche adibirlo a server, allora conviene collegare dei dischi tramite usb e aggiungerli come dischi fissi al file /etc/fstab con la seguente riga
/dev/sdxy /percorso/disco ext4 defaults,noatime 0 0

Installiamo e configuriamo samba

La guida del wiki è molto più che esauriente, vi rimando a quella in quanto non sono necessari passaggi particolari e la configurazione è molto personale.

Riassumo velocemente la mia configurazione;


# pacman -S samba
# systemctl enable samba

Nel file /etc/samba/smb.conf ho la seguente condivisione (uno per ogni cartella):

[media]
comment = media file
path = /mnt/nas/media
valid users = raspi
public = no
writable = yes
printable = no
create mask = 0765
[data]
comment = personal data
path = /mnt/nas/data
valid users = raspi
public = no
writable = yes
printable = no
create mask = 0765
[torrent]
comment = torrent downloads
path = /mnt/nas/torrent
valid users = raspi
public = no
writable = yes
printable = no
create mask = 0765

Questo permette di accedere alla cartella solo all’utente raspi, quindi creiamo l’utente raspi per samba:

# smbpasswd -a raspi

E se per caso l’utente raspi non è proprietario della cartella torrent, data o media rendiamocelo con

# chown -R raspi /mnt/nas/torrent/
# chmod -R 777 /mnt/nas/torrent/
# chown -R raspi /mnt/nas/data/
# chmod -R 777 /mnt/nas/data/
# chown -R raspi /mnt/nas/media/
# chmod -R 777 /mnt/nas/media/

Avviamo con:

# systemctl start samba

Installiamo dei plugin per kodi

Vi rimando a questa guida.

Rendiamolo un torrentbox

Nota: Siccome la cartella torrent è in comune con samba, essa appartiene già all’utente raspi, cioè quello su cui gira il demone di transmission.

Ora procediamo all’installazione
# pacman -Syu transmission-cli
# systemctl enable transmission

Ora dovremmo modificare il servizio di transmission per avviarlo col nostro utente; per farlo editiamo il file /etc/systemd/system/multi-user.target.wants/transmission.service come segue:

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=raspi (o vostroutente, che deve possedere la cartella dove salverete i file)
Type=notify
ExecStart=/usr/bin/transmission-daemon -f –log-error
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target

Adesso avviamo il servizio e fermiamo il servizio in modo che transmission crei il suo file di configurazione:

# systemctl daemon-reload
# systemctl start transmission
# systemctl stop transmission

Siccome il demone è avviato col vostroutente il file di configurazione lo trovate sotto ~/.config/transmission-daemon/settings.json.
Quindi editiamolo e modifichiamolo a piacere, in particolare:


{...
"download-dir": "/mnt/nas/torrent/torrent_complete/",
...
"incomplete-dir": "/mnt/nas/torrent/torrent_incomplete/",
"incomplete-dir-enabled": true,
...
"rpc-authentication-required": true,
...
"rpc-whitelist": "192.168.1.*",
...
"rpc-username": "vostroutente",
...
"rpc-password": "vostrapassword",
...
"trash-original-torrent-files": true,
...
"utp-enabled": true,
"watch-dir": "/mnt/nas/torrent/torrents",
"watch-dir-enabled": true

}

Condividiamo le cartelle con NFS

Oltre a samba possiamo voler condividere delle cartelle con NFS in modo da montarle quando ci colleghiamo alla rete direttamente sulla nostra distro Linux e avere prestazioni un pochino superiori rispetto a samba, quindi… procediamo!
# pacman -S nfs-utils

Configurazione lato server:
creiamo la cartella dove andremo a montare le altre cartelle (consigliano di fare così per ragioni di sicurezza)
# mkdir -p /srv/nfs4/ /cartella/da/condividere/
# chown -R raspi /srv/nfs4/
# chmod -R 777 /srv/nfs4/
# mount --bind /mnt/nas/ /srv/nfs4/

Aggiungiamo la seguente riga al file /etc/fstab (così monterà a ogni avvio la cartella  /mnt/nas in /srv/nfs4)
/mnt/nas/ /srv/nfs4/ none bind 0 0

e la seguente al file /etc/exports (questo è il file che gestisce le cartelle condivise da nfs):

  • Se volete condividere una sola cartella:
    /srv/nfs4/ 192.168.1.0/24(rw,fsid=root,no_subtree_check,nohide)
  • Se volete condividere più sottocartelle in posizioni diverse:
    /srv/nfs4 192.168.1.0/24(rw,fsid=root,no_subtree_check) # è la cartella che contiene le altre (nascosta)
    /srv/nfs4/cartella1 192.168.1.0/24(rw,no_subtree_check,nohide)

    /srv/nfs4/cartella2 192.168.1.0/24(rw,no_subtree_check,nohide) # e così via..

Ora avviamo il servizio e dovrebbe funzionare:
# systemctl enable nfs-server
# systemctl start nfs-server
.

Configurazione lato client:

# systemctl start rpcbind
# systemctl start nfs-client.target
# systemctl start remote-fs.target
# systemctl enable remote-fs.target
# systemctl enable nfs-client.target
# systemctl enable rpcbind

e montiamo la partizione con
# mount 192.168.1.x:/srv/nfs4/ /mnt/cartella/che/volete

Per adesso mi sembra di aver messo tutte le funzionalità base che dovrebbe avere un media server, se avete qualche altra funzionalità interessante potete dirlo e provvederò ad aggiungerla se mi sembrerà utile per me! 😉

Questa voce è stata pubblicata in Arch Linux, raspberry pi e contrassegnata con , , , , . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...