Basato su Archlinux, AudioLinux è un sistema operativo che è stato concepito per ottenere la massima qualità nella riproduzione audio.
Possiede un kernel realtime e quest'aspetto, più che la latenza vera e propria, m'interessava perché un RTOS permette di stabilire priorità degli IRQ e ottimizzare le risorse da fornire a determinate applicazioni. Nel nostro caso un sistema basato su HQPlayer, oltre alla capacità di calcolo, ha infatti bisogno di I/O ottimizzato. In poche parole, altri OS generalisti come OSx e Windows nelle sue varie versioni hanno bisogno di programmi esterni per diventare "audiofili", mentre AudioLinux al contrario nasce già con questa vocazione, snello e dedicato.
Per l'audio high-end quello che importa non è il ritardo (latenza audio) tra l'invio del segnale e la sua riproduzione. Un segnale con un ritardo di 20 ms ma che mantiene costante tale ritardo nel tempo avrebbe lo stesso effetto positivo di un segnale che mantiene un ritardo di 1ms (a meno che non dobbiamo suonare su una tastiera!). E' proprio per questo fatto fondamentale della non variazione del ritardo che un kernel realtime può essere decisivo per una corretta riproduzione audio.
Da questo punto di vista le misure su AudioLinux con un processore non dei più recenti, con IRQ per il device, utilizzando l'applicazione rtapp (vedere https://aur.archlinux.org/packages/rtapp/), sono di questo tipo (le cifre sono in microsecondi):
STANDARD TEST
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 25.81 14.02 5.39 1/272 1882
T: 0 ( 1879)
T: 1 ( 1880)
T: 2 ( 1881)
T: 3 ( 1882)P:98
P:98
P:98
P:98I:100
I:100
I:100
I:100C: 10000
C: 10000
C: 10000
C: 9989Min: 1
Min: 1
Min: 1
Min: 1Act: 2
Act: 2
Act: 1
Act: 1Avg: 2
Avg: 2
Avg: 2
Avg: 2Max: 11
Max: 30
Max: 19
Max: 9
STRESS TEST
Running in process mode with 10 groups using 40 file descriptors each (== 400 tasks)
Each sender will pass 10000 messages of 100 bytes
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 25.81 14.02 5.39 89/675 2288
T: 0 ( 1939)
T: 1 ( 1978)
T: 2 ( 2015)
T: 3 ( 2060)P:98
P:98
P:98
P:98I:100
I:100
I:100
I:100C: 10000
C: 10000
C: 10000
C: 9965Min: 2
Min: 2
Min: 2
Min: 2Act: 4
Act: 4
Act: 3
Act: 4Avg: 4
Avg: 4
Avg: 3
Avg: 3Max: 11
Max: 16
Max: 13
Max: 11
I numeri rappresentano la latenza del processore. Un sistema lavora alla perfezione (realtime) se nello STRESS TEST e nello STANDARD TEST i numeri sono dello stesso ordine di grandezza. Se invece nello STRESS TEST sono inferiori rispetto allo STANDARD vuol dire che nella maggior parte dei casi della riproduzione audio il processore non sta usando tutte le sue capacità. Test effettuato su suggerimento di jhernberg, "maintainer" dell pacchetto linux-rt per Arch.
--> informazioni dettagliate qui: https://rt.wiki.kernel.org/index.php/Cyclictest
Qui invece riporto il monitoraggio degli IRQ con HQplayer (DSD 128 nativo da file 44,1 kHz) prima in pausa e poi in riproduzione:
IRQ=16
HARDWARE DEVICES:
IO-APIC 16-fasteoi ehci_hcd:usb1
--> EHCI Host Controller, iFi (by AMR) HD USB Audio,
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0
IRQs/Second --> 0IRQs/Second --> 1890
IRQs/Second --> 1895
IRQs/Second --> 1889
IRQs/Second --> 1913
IRQs/Second --> 1901
IRQs/Second --> 1878
IRQs/Second --> 1906
IRQs/Second --> 1881
IRQs/Second --> 1900
IRQs/Second --> 1908
IRQs/Second --> 1907
Forse qualcuno immagina che AudioLinux sia nient'altro che un'installazione di Archlinux più qualche script ad hoc - assolutamente sbagliato. In realtà il lavoro per la preparazione di AudioLinux va molto più in profondità ed è piuttosto complicato. Infatti, l'installazione di Archlinux è lunga e laboriosa, ed è dettata dalla scelta degli autori di Archlinux che l'utilizzatore deve conoscere tutte le caratteristiche dell'installazione. Inoltre, Archlinux installa un sistema-base senza GUI, per cui un ambiente come LXQt deve essere installato successivamente. La "taratura" di tale ambiente grafico, soprattutto l'uniformità dei temi tra qt4, qt5, gtk2, gtk3, ecc., è un lavoro piuttosto lungo e complesso. In AudioLinux esistono numerose speciali configurazioni, come ad esempio la configurazione della rete con netctl-gui; il kernel realtime Linux-RT è compilato manualmente con l'opzione "performance"; la modifica del valore max_user_freq per rtc0 e hpet; l'ottimizzazione per processori Intel volte ad ottenere le massime prestazioni dalla CPU senza che questa vada mai in power saving; l'utilizzo di prelink per il lancio veloce dei programmi; l'utilizzo di alcune unità systemd per velocizzare il boot; il desktop con tutti i comandi importanti a portata di mano; ecc. ecc.
Oltre ai suddetti motivi, ci sono parecchi altri aspetti che mi hanno portato a testare AudioLinux, i principali sono:
- la possibilità di usare un client su smartphone/tablet per avere playback tramite HQPlayer;
- la possibilità di poter utilizzare lo stesso OS sul NAA, unendo ottimizzazione ad essenzialità;
- la presenza di un Ramdisk intelligente già pronto;
- la possibilità di poter utilizzare lo stesso sistema per A/V, variando le ottimizzazioni con un semplice click.
Tutto questo sulla carta è interessante, ma non essendo io un Linux guru e non essendo ArchLinux un OS per neofiti, AudioLinux deve essere il più possibile di facile utilizzazione. Sono pronto a dedicarci del tempo per configurarlo, se intuitivo, ma certamente non se devo stare difronte ad una finestra terminale ad "impazzire" con terminologia varia.
------------------------------------------------------------------------
Veniamo alla prova pratica. Suggerisco di stampare la Mini Guida dal sito di AudioLinux e tenerla a portata di mano.
L'autore di AudioLinux è hifi25nl, un nexthardwariano di nome Piero, che molto gentilmente mi ha mandato una pennetta USB preinstallata.
Per fare un po' di pratica con il nuovo sistema, la inserisco nel mio notebook, invece del PC principale e, dopo la schermata di boot,...WOW, ecco il desktop in 13 secondi! ...e funziona tutto al primo colpo!!!
A dire il vero la scheda audio interna è in blacklist, giustamente disabilitata, ma per questa prima prova ne ho bisogno. Per cui vado in /etc/modprobe.d/blacklist-minimize.conf, lo apro tramite pulsante dx e tolgo la voce "blacklist snd_hda_intel", lancio HQPlayer, seleziono un brano ed è...Musica.
Qualche consiglio iniziale -
- Il desktop di AudioLinux è configurato per 1920x1080. Il mio notebook è partito a 1366x768 e non vedeva le due colonne di icone a dx e la riga di icone in basso, nonostante abbia provato a cambiare configurazione del monitor in LXQt System Settings (LXQt è la GUI); quindi, basta riposizionare le icone.
- Per riposizionare le icone, spostatele dalla parte opposta e poi nella posizione finale.
- L'icona reboot Command Line sarà utilizzata per l'NAA e disabilita la GUI.
- In LXQt System Settings non è possibile accedere a Date & Time e User & Groups. Comunque, l'ora si aggiusta da sola collegandosi ad internet e l'altro verrà messo a posto in un prossimo aggiornamento della GUI.
- Se sul proprio HD si ha un'installazione Windows, l'icona 2Windows chiude AudioLinux e riavvia il sistema sotto Windows. Funziona perfettamente.
- Se sull'hard disk sono presenti due installazioni di Windows (tipo 8.1 e Server) bisognerebbe cambiare come ROOT ** i file
/boot/syslinux/syslinux.cfg (per sistemi non uefi)
/boot/EFI/boot/syslinux.cfg (per sistemi uefi)
Adesso ad esempio c'è una sezione con
LABEL windows
MENU LABEL WindowsSe il secondo windows è sullo stesso hard disk ma in una differente partizione, aggiungere subito dopo un'altra sezione tipo
COM32 chain.c32
APPEND hd1 0
LABEL windows2
MENU LABEL Windows2dove hd1 è l'hard disk e "0" e "1" sono le differenti partizioni
COM32 chain.c32
APPEND hd1 1
Ovviamente se vi sono più hard disk bisognerà capire quale è hd1, quale hd2, ecc.
--> Procedere con cautela: un errore sul file syslinux.cfg potrebbe condurre all'impossibilità di fare il boot.
I primi due passi da fare sono:
- "montaggio" dell'hard disk o NAS della nostra libreria musicale
- settaggio della scheda ethernet.
Entrambi i punti sono spiegati in dettaglio nella Mini Guida. Il passo successivo è l'ottimizzazione del sistema.
** Per andare ROOT da terminale: scrivere "su" poi < invio > poi password "audiolinux0"
oppure
sulla barra in basso ci sono due icone di gestore dei file, quella più a destra lancia Pcmanfm-qt come root e richiede la password "audiolinux0".