Per gli utilizzatori di Daphile propongo ulteriori provvedimenti di sistema
per farlo funzionare al massimo e che si aggiungono ai precedenti già descritti
nei precedenti post.
Per ottenere con parametri corretti del kernel
che il medesimo utilizzi esclusivamente la porta
USB dedicata al DAC bisogna immettere nel file
pippo queste altre voci. fare attenzione a
posizionarle DOPO l’ultima riga del file come
si presenta ai vostri occhi.
dare da terminale :
codice:
nano /etc/init.d/pippo
dopo l’ultima riga immettere :
codice:
echo 3000 > /proc/sys/vm/dirty_writeback_centisecs
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor > /dev/null 2>&1
echo “suspend” >/sys/bus/usb/devices/usb1/power/level > /dev/null 2>&1 # Choose the best USB port soundwise
echo “suspend” >/sys/bus/usb/devices/usb2/power/level > /dev/null 2>&1 # Shutdown the other ports
echo “suspend” >/sys/bus/usb/devices/usb3/power/level > /dev/null 2>&1 # lsusb will show you your port
echo “suspend” >/sys/bus/usb/devices/usb5/power/level > /dev/null 2>&1
Salvare (CTRL+x > Y > Enter )
Riavviare
……………………………………………………………..
Renice del processo di scheduling di Squuezelite in Daphile
Il comando “nice” assegna una priorità a tutti i processi che il
kernel propone alla cpu.
Il valore di nice è un attributo numerico di ciascun processo dei
sistemi Unix e Unix-like che è usato dallo scheduler per stabilire
quanto tempo di CPU dedicare all’esecuzione del processo. A parità di
priorità e di politica di schedulazione, i processi che hanno valori di
nice maggiori ottengono in proporzione meno tempo di CPU rispetto a
processi che hanno valori di nice minori, e quindi la loro esecuzione
procede più lentamente, favorendo gli altri processi.
Il valore –20 è il valore massimo quiandi maggiore priorità.
per ottenere questo si imposta per Squeezelite in questo modo:
codice:
nice --20 squeezelite -p 95 -a f:x
al posto di x si puo’impostare 24bit ovvero 32bit
dipende dal vostro DAC,quindi fare delle prove è necessario.
Anche questo comando si puo’tranquillamente inserire nel file pippo
sempre inserendo la stringa nell’ultima riga
salvandolo opportunamente e riavviando la macchina.
Utilizzare il server jackd per gestire ALSA.
jackd è un server audio che lavora a bassissima latenza,
in pratica gestisce l’intero motore audio di Linux lavorando
in real time.
viene utilizzato nei sistemi professionali in registrazione
multitraccia, ad esempio, ma anche per altri usi in playback.
in pratica jackd quando viene richiamato da terminale si
interpone come gestore server dello stream fra il kernel
e il mixer ALSA.
per il nostro interesse ai fini della gestione assolutamente
efficiente del player Squeezelite su daphile esistono alcuni
comandi raccomandati che tuttavia possono essere modificati
in alcuni parametri che devono tuttavia essere sperimentati
sulla mcchina (hardware) in uso corrente. Quindi essi possono
essere aggiustati in relazione alla possibilità di essere
in qualche modo “tollerati” dalla macchina medesima senza
che si manifestino i cosidetti x-run cioè delle perdite di
trasferimento dello stream . Siccome si lavora in realtime
è necessario rendersi conto se i parametri impostati non
generino questa condizione di x-run. Bisogna quindi controllare
la shell dopo il comando per verificare la denuncia di x-run.
tipico comando raccomandato in Daphile (player squeezelite):
codice:
usr/bin/jackd -R -P89 -dalsa -dhw:0 -r44100 -p256 -n3
esaminiamo i parametri:
-n3 :per la usb è consigliato questo valore. Si puo’ provare
ad abbassarlo a 2
-p256 : questo valore di default è 1024 . Si puo’ abbassare
a 256 > 128 >64 >32
-r : di default è 48000 ma puo’ essere impostato qualunque
valore da 44100 > fino a 384000
Tutti parametri dopo -dalsa -dhw:0 sono riferiti ai parametri
di output di ALSA infatti si puo’aggiungere altri parametri:
-P : playback opportuno nel nostro caso perchè non abbiamo
registrazione in corso .Opzionale l’aggiunta del nome del
device . Nel nostro caso X20.
-H : monitor delle porte in cui transita lo stream. Utile
in quanto fà ottenere “zero latenza”nel monitoraggio
dell’input stream .
I parametri tipicamente di jackd che stanno davanti a -dalsa
qui impostati sono :
-R :sta per scheduling realtime
-P :sta per priorità realtime. Si puo’ specificare il valore
facendo attenzione agli altri processi che hanno alta priorità.
Non attribuire valori detenuti da altri processi ma
scegliere valori lievemente piu’ bassi per non generare
conflitti.
opzionali (da valutare)sempre davanti a -dalsa:
-c :clocksource puo’ essere utile specificando hpet
per il nostro kernel disponibile
Questo comando puo’ essere automatizzato all’avvio inserendolo
nel file pippo gia’ creato in precedenza per questo scopo
salvando opportunamente e riavviando la macchina.
Un ulteriore comando al processo di jackd appena visto e che
garantirebbe un piu’ elevato controllo da parte del kernel è
attribuire un valore di nice molto spinto come è stato fatto
per Squeezelite.
per ottenerlo si imposta nel comando visto sopra in questo modo :
codice:
nice --20 usr/bin/jackd -R -P89 -dalsa -dhw:0 -r44100 -p256 -n3
Nel file pippo si aggiunge semplicemente il valore di nice come
indicato.
Dopo prove opportune consiglio infine di utilizzare il seguente comando :
codice:
nice --20 /usr/bin/jackd -R -P 89 -p 8 -c hpet -d alsa -d hw:0 -r 192000 -p 256 -n 3 -P -H
……………………………………………………………
……………………………………………………………
Per un piu’ corretto utilizzo da parte del kernel delle
risorse impegnate proprio nell’assegnamento delle priority
agli elementi dedicati al trasporto dello streaming
in una scala gerarchica ancora piu’ precisa è opportuno
modificare in alcuni parametri il file rtirq.conf
Vediamo come attuarlo:
entriamo nel file dando da terminale :
codice:
nano /etc/rtirq.conf
modificate il file in questo modo
alle righe di testo indicate :
codice:
* RTIRQ_NAME_LIST=”rtc ehci_hcd”
* RTIRQ_PRIO_HIGH=”99″
* RTIRQ_PRIO_DECR=”2″
* RTIRQ_NON_THREADED=””
Modificati questi valori esattamente nella sintassi
indicata si salva il file nel modo abituale
CTRL+x > Y > Enter
Riavviare
………………………………………………………
una volta eseguite tutte queste configurazioni l’ultimo
tocco consiste nel lanciare nuovamente da terminale il
comando :
questo determina un riaggiornamento delle priority
creando una perfetta gerachia di lavoro del Kernel
con particolare riguardo ai file che a noi interessano
in particolare cosi squeezelite passa da una priority
di -81 a -94.
La seccatura è doverlo ridare ad ogni riavvio ma si è
ampiamente ripagati.
Nota : Un certo numero di utenti Daphile sta sperimentando tutti questi parametri e provvedimenti mostrati finora e in pratica tutti indistintamente
hanno denunciato un feedback positivo come incremento di prestazione audio pura . Molti asseriscono che Daphile è il miglior player che abbiano
mai sperimentato. Per quanto ne posso sapere io personalmente confermo ampiamente quest'ultima osservazione.