Translate

8.9 Kernel RT Realtime

Se avete intenzione di sfruttare al meglio il kernel realtime già installato (ma servirà? :)) dovete usare la versione di MPD 0.16.2 o 0.17.0 e i driver ALSA 1.0.24. Quindi se state usando la versione di "Voyage MPD" 0.7.0 che ha MPD 0.16.0 e i driver ALSA 1.0.23 sarà impossibile effettuare le modifiche di seguito esposte. Per effettuare la modifiche dovete avere installato "Voyage MPD" 0.7.5 che ha MPD 0.16.2 e ALSA 1.0.24. Se avete pazienza, presto uscirà un'altra versione aggiornata di "Voyage MPD" con tutto incluso e configurato.
Per quanto riguarda la modifica proposta, fate riferimento a questa guida http://kubotayo.web.fc2.com/voyagempd.html#bianries.
Prima di tutto scaricate i file binari col comando

wget http://hpcgi3.nifty.com/yo_kubota/downlog.cgi?edata/mpd0162-rtopt-build.tgz

dopodichè estraete l'archivio col comando

tar zxvf downlog.cgi?edata%2Fmpd-rtopt-110605.tgz

A questo punto non ci resta che copiare i file binari col comando

sh mpdinstall.sh

Adesso riavviate MPD e configurate a vostro piacere la priorità dei vari processi di MPD nella nuova sezione "realtime_option" di "/etc/mpd.conf". Modificate pure la priorità in "audio_output":

realtime_option {
   memlock              "yes"
    stack_reserve        "1024"
    heap_reserve         "0"

    main_priority        "OTHER:0"
    player_priority      "FIFO:49"
    decoder_priority     "FIFO:48"
    update_priority      "OTHER:0"

audio_output {
        type            "alsa"
        name            "scheda audio"
        device          "hw:0,0"
        priority        "FIFO:99"
#       format          "44100:16:2"    # optional
#       mixer_device    "default"       # optional
#       mixer_control   "PCM"           # optional
#       mixer_index     "0"             # optional
}

Come potete notare, potete modificare la priorità realtime di: main, player, decoder, update, audio_output. Io mi trovo molto bene usando i seguenti parametri:


realtime_option {
   memlock              "yes"
    stack_reserve        "1024"
    heap_reserve         "0"

    main_priority        "OTHER:0"
    player_priority      "FIFO:50"
    decoder_priority     "FIFO:70"
    update_priority      "OTHER:0"

audio_output {
        type            "alsa"
        name            "scheda audio"
        device          "hw:0,0"
        priority        "FIFO:95"
#       format          "44100:16:2"    # optional
#       mixer_device    "default"       # optional
#       mixer_control   "PCM"           # optional
#       mixer_index     "0"             # optional
}


In questo modo, differentemente dal primo esempio valido per tutti, ho aumentato la priorità del "decoder" a discapito della priorità del "player" (che si occupa solo di ricevere i comandi dal client) in quanto, usando file compressi senza perdita di qualità come i ".flac", preferisco che il processore e quindi il PC si occupi prima di tutto di decodificare i miei file compressi e solo dopo di inviarli all' "audio_output" (al quale ho abbassato di poco la priorità per velocizzare il comando del player).

Per ulteriori istruzioni sull'uso fate riferimento al sito sopra linkato. Se avete intenzione di usare la memoria RAM per riprodurre i files digitali audio fate riferimento sempre alla guida linkata, in particolare qui.