Scrivo questa guida per dare istruzioni quanto più complete possibile a tutti coloro che hanno scelto di usare come sistema operativo FreeBSD (o derivate) per il computer "server" sul quale installare Logitech Media Server.
Ci sono tre modi per raggiungere il medesimo fine:
- Utilizzare i ports
- Utilizzare i pacchetti
- Compilarsi tutto quanto da soli
Partiamo dal primo
1) PORTS
Assicuratevi di aver installato portmaster:
codice:
pkg install portmaster
quindi:
codice:
portmaster audio/logitechmediaserver
IMPORTANTE: Inizieranno a comparirvi varie finestre di dialogo in cui impostare le varie opzioni di compilazione delle dipendenze, quando comparirà quella di logitechmediaserver assicuratevi che nella casella "TEST" non ci sia alcuna spunta!
N.B. L'ultimo aggiornamento della versione di LMS di questo port risale al 30 Settembre 2016.
2) PACCHETTI - NON PIù SUPPORTATO, LEGGERE POST #6
Purtroppo non è presente alcun pacchetto facilmente installabile di Logitech Media Server delle repository ufficiali, ed è qui che vi vengo incontro io creando una repository con i tutti i pacchetti necessari pre-compilati:
Modificate il file di configurazione del package manager:
codice:
ee /etc/pkg/FreeBSD.conf
aggiungendo:
codice:
audiodigitale: {
url: "http://audiodigitale.eu/repo/freebsd/pkgs",
mirror_type: "http",
enabled: yes
}
Quindi:
codice:
pkg update
pkg install logitechmediaserver
Avendo compilato tutto partendo dai ports l'ultimo aggiornamento della versione di LMS risale al 30 Settembre 2016.
3) DIY: diamoci al Fai-Da-TE
Prima di iniziare è necessario:
- libtime.a
- libpatience.a
- Conoscenze minime su cosa siano le Jail. Userò CBSD per gestirle.
Utilizzeremo due jails: una per compilare il tutto e un'altra per testare ed eseguire LMS.
Iniziamo creando la prima:
codice:
cbsd jconstruct-tui
In "pkglist" inserite manualmente:
unzip bash gmake rsync nasm wget libgd gcc perl5-5.24.1 automake libtool
Entrate nella jail:
codice:
cbsd jstart build
cbsd jlogin build
Userò la cartella /tmp per scaricare i sorgenti e compilare il tutto:
codice:
cd /tmp
wget http://downloads.slimdevices.com/nightly/7.9/sc/3adb1b4/logitechmediaserver-7.9.1-1489743085.tgz
wget https://github.com/Logitech/slimserver-vendor/archive/public/7.9.zip
unzip 7*
tar xjf l*
Iniziamo a compilare:
codice:
cd slimserver-vendor-public-7.9/CPAN
./buildme.sh -t | tee /tmp/build.log
cd /tmp/logitechmediaserver-7.9.1-1489743085/CPAN/arch/5.24
rm -rf 5.1* && rm -rf 5.8 && rm -rf 5.22 && rm -rf 5.20
cp -Rp /tmp/slimserver-vendor-public-7.9/CPAN/build/arch/5.24/amd64-freebsd-thread-multi .
rm -rf x*
cd /tmp
tar cf FreeBSD-lms-7.9.1.tar logitechmediaserver-7.9.1-1489743085
wget http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz
tar xf f*
cd flac-1.3.2
autoreconf -i
./configure --enable-static --disable-shared
make
cd /tmp
wget http://downloads.sourceforge.net/faac/faad2-2.7.zip
unzip faad2-2.7.zip
cd faad2-2.7
./configure --enable-static --disable-shared
make
cd /tmp
wget http://www.wavpack.com/wavpack-5.1.0.tar.bz2
tar xf wavpack-5.1.0.tar.bz2
cd wavpack-5.1.0
autoreconf -i
./configure --enable-static --disable-shared
make
Ora usciamo dalla jail "build", creiamo la jail "lms" e trasferiamoci tutto ciò che abbiamo compilato:
Per uscire.
codice:
cbsd jconstruct-tui
In "pkglist" inserite manualmente:
wget perl5-5.24.1 libiconv
codice:
cbsd jstart lms
mv /usr/jails/jails-data/build-data/tmp/FreeBSD-lms-7.9.1.tar /usr/jails/jails-data/lms-data/tmp
cbsd jlogin lms
Ora copierò LMS compilato e includerò una versione di SoX modificata compatibile con la conversione PCM->DSD (Per maggiori info -> Logitechmediaserver, C-3PO and PCM to DSD conversion)
codice:
cd /tmp
tar xf F*
pw groupadd -n lms -g 20000
pw useradd -n lms -u 20000 -g lms -s /usr/sbin/nologin -c "Logitech Media Server" -d /nonexistent
mkdir /usr/local/lms
mv logitechmediaserver-7.9.1-1489743085 /usr/local/lms/
cd /usr/local/lms
mv logitechmediaserver-7.9.1-1489743085/* /usr/local/lms
rmdir logitechmediaserver-7.9.1-1489743085
rm -rf Bin/a* && rm -rf Bin/i* && rm -rf Bin/p* && rm -rf Bin/s* && rm -rf Bin/x*
cd Bin
wget https://audiodigitale.eu/repo/sox/sox-FreeBSD
mv sox-FreeBSD sox
exit
Copiamo i binari di flac, faad, wavpack e rientriamo nella jail lms:
codice:
mv /usr/jails/jails-data/build-data/tmp/flac-1.3.2/src/flac/flac /usr/jails/jails-data/lms-data/usr/local/lms/Bin/
mv /usr/jails/jails-data/build-data/tmp/faad2-2.7/frontend/faad /usr/jails/jails-data/lms-data/usr/local/lms/Bin/
mv /usr/jails/jails-data/build-data/tmp/wavpack-5.1.0/cli/wvunpack /usr/jails/jails-data/lms-data/usr/local/lms/Bin/
Dentro alla jail lms ora:
codice:
cbsd jlogin lms
chown -R lms:lms /usr/local/lms
chmod -R 755 /usr/local/lms/Bin
mkdir /var/log/lms
mkdir /var/db/lms
mkdir /var/db/lms/cache
mkdir /var/db/lms/prefs
mkdir /var/db/lms/playlists
chown -R lms:lms /var/db/lms
chown -R lms:lms /var/log/lms
cd /etc/rc.d
wget https://audiodigitale.eu/repo/freebsd/lms
chmod 555 lms
echo 'lms_enable="YES"' >> /etc/rc.conf && echo 'lms_logdir="/var/log/lms"' >> /etc/rc.conf && echo 'lms_cachedir="/var/db/lms/cache"' >> /etc/rc.conf && echo 'lms_prefsdir="/var/db/lms/prefs"' >> /etc/rc.conf && echo 'lms_playlistdir="/var/db/lms/playlists"' >> /etc/rc.conf
exit
Ora se abbiamo fatto tutto correttamente, con un pizzico di fortuna, riavviando la jail Logitech Media Server partirà all'avvio:
codice:
cbsd jstop lms
cbsd jstart lms
Concludiamo rimuovendo la jail utilizzata per la compilazione:
codice:
cbsd jremove build
Scrivete pure se ho fatto errori e/o se qualcosa non funziona a dovere. Spero possa essere utile a qualcuno.
English version: Logitech Media Server and FreeBSD