Voyage MPD

Diskusjonstråd Se tråd i gallerivisning

  • O

    Oblivion

    Gjest
    MPaD kan du ikke på noen måte stole på...
    Jeg har måttet avinstallere og installere MPaD på nytt ganske mange ganger.
    Spesielt hvis du starter MPD fra litt forskjellige ISO og hvis du bytter USB stick eller USB disk.

    EDIT: Noen ganger holder det med å slette ALLE MPD konfigurasjoner og stoppe / starte MPaD og konfigurere mot MPD på nytt.

    @Man: Er den siste ISO jeg har lastet ned (7 dager siden) fortsatt "gyldig" eller har det skjedd store ting siden sist ?
     
    Sist redigert:

    gut_man

    Hi-Fi freak
    Ble medlem
    18.02.2004
    Innlegg
    5.450
    Antall liker
    3.193
    Torget vurderinger
    6
    Prøvde å boote uten HagUSB tilkoblet. Kom opp tekst når jeg koblet den til, men det spiller ikke...ingen åpenbare feilmeldinger heller? Har også prøvd med mPod, men får kun pausemodus der også.
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    MPaD kan du ikke på noen måte stole på...
    Jeg har måttet avinstallere og installere MPaD på nytt ganske mange ganger.
    Spesielt hvis du starter MPD fra litt forskjellige ISO og hvis du bytter USB stick eller USB disk.

    EDIT: Noen ganger holder det med å slette ALLE MPD konfigurasjoner og stoppe / starte MPaD og konfigurere mot MPD på nytt.

    @Man: Er den siste ISO jeg har lastet ned (7 dager siden) fortsatt "gyldig" eller har det skjedd store ting siden sist ?
    Nei bare at jeg har oppdatert til MPD 0.17.1 som støtter sanglengde av DFF/DSF-filer.
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Prøvde å boote uten HagUSB tilkoblet. Kom opp tekst når jeg koblet den til, men det spiller ikke...ingen åpenbare feilmeldinger heller? Har også prøvd med mPod, men får kun pausemodus der også.
    ok. Men har du prøvd å formatere USB-pinnen helt på nytt? MPD'en min støtter kun USB-Audio så jeg tror neppe at det er det interne lydkortet som kommer i veien, men det kan jo hende. Jeg kan lage en ny ISO, der du kan velge mellom første andre eller tredje lydkort. Fungerer alt annet utenom HagUSB? Og har du prøvd å oppdatere databasen? Har du flere disker tilkoblet vil de kunne få forskjellig baner i filsystemet om f.eks har plugget inn/ut og/eller plugget de i en annen usbport på PCen.
     

    gut_man

    Hi-Fi freak
    Ble medlem
    18.02.2004
    Innlegg
    5.450
    Antall liker
    3.193
    Torget vurderinger
    6
    Får kkke usb disk opp. Den mountes, men jeg får den ikke opp hverken i mPad eller mPod. Har oppdatert cache og database. Skal prøve å formatere usb sticken før jeg lager ny iso. Jeg bare slettet det som var på den gamle.
     
    Sist redigert:

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Du må rescanne biblioteket før den vises i Mpod, men det regner jeg med at du har gjort? Jeg måtte reinstallere alt på nytt her om dagen etter at jeg prøvde å oppgradere til Wheezy (bare tull), muligens feilen ligger hos meg. Skal dobbeltsjekke.
     

    gut_man

    Hi-Fi freak
    Ble medlem
    18.02.2004
    Innlegg
    5.450
    Antall liker
    3.193
    Torget vurderinger
    6
    Formaterer og tester med en annen laptop? Fikk ikke til å boote fra usb på konas laptop. Må ta en pause for å mekke litt middag. Bbl
     
    Sist redigert:

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    MPaD kan du ikke på noen måte stole på...
    Jeg har måttet avinstallere og installere MPaD på nytt ganske mange ganger.
    Spesielt hvis du starter MPD fra litt forskjellige ISO og hvis du bytter USB stick eller USB disk.

    EDIT: Noen ganger holder det med å slette ALLE MPD konfigurasjoner og stoppe / starte MPaD og konfigurere mot MPD på nytt.

    @Man: Er den siste ISO jeg har lastet ned (7 dager siden) fortsatt "gyldig" eller har det skjedd store ting siden sist ?
    Nei bare at jeg har oppdatert til MPD 0.17.1 som støtter sanglengde av DFF/DSF-filer.
    CuBox som jeg fortsatt venter på kjører 3.4.5 kernel på debian....
    De kompilasjonene som allerede er gjort til CuBox er IKKE gode så det blir endel jobb for å få dette i orden..
    De er kompilert med mengder av unødvendig TV og sattelitt søl etc. etc...
    Og de er ikke kompilert med riktig prossesor source kode for den spesifikke ARM prosessoren heller.

    Skal etterhvert se om jeg får til å kryss kompilere en Voyage MPD til ARMv7 med 3.4.5 kernel.
    Skal også starte opp et USB 2.0 Audio -> I2S kort som også bruker ARM prosessor...

    Lykke til :) Kan garantere deg en ting om ikke annet: Ting tar tid! Jeg tror ikke det vil spille så bra som Intel 64bit, men ingenting hadde vært bedre =)
     
    Sist redigert:

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Har akkurat laget en USB-penn selv, og kan verifisere at USB-disker fungerer riktig. Hvis man er i mPod og trykker på "More" nederst til høyre og så på browse skal nye disker ligger under usb/usb1 usb/usb2 osv. (må ta refresh local cache først)
     

    Goophy

    Hi-Fi entusiast
    Ble medlem
    10.09.2010
    Innlegg
    248
    Antall liker
    21
    Torget vurderinger
    4
    CuBox som jeg fortsatt venter på kjører 3.4.5 kernel på debian....
    De kompilasjonene som allerede er gjort til CuBox er IKKE gode så det blir endel jobb for å få dette i orden..
    De er kompilert med mengder av unødvendig TV og sattelitt søl etc. etc...
    Og de er ikke kompilert med riktig prossesor source kode for den spesifikke ARM prosessoren heller.
    Burde bruke Linux 3.5 som kom i mainline igår. Den har en del veldig fine optimaliseringer for ARM.

    Det finnes ferdige crosstool-ng toolchains for armv7 med hardware floating, kompilere en kjerne på en litt nyere x86-maskin tar ikke mange minuttene.
    Jeg bruker denne feks.: http://archlinuxarm.org/builder/xtools/x-tools7h.tar.xz
    Da er det bare å fjerne alt du ikke vil ha fra configen.
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Gutman: har lastet opp en ny ISO. Eneste forskjellen er at den viser tilkoblede lydkort, etter den er ferdig bootet. Hagusb-lydkortet ditt bør dukke opp som det eneste lydkortet og følgelig ha "0" (null) foran.
     

    gut_man

    Hi-Fi freak
    Ble medlem
    18.02.2004
    Innlegg
    5.450
    Antall liker
    3.193
    Torget vurderinger
    6
    Har nå prøvd to forskjellige disker uten at jeg får dem opp i mPod eller mPad. Sticken med musikk på dukker imidlertid opp. Laster iso'en du har laget nå sist Man og ser om det løser seg med lydkortet så jeg ihvertfall får testet lyden!
     
    O

    Oblivion

    Gjest
    Lykke til :) Kan garantere deg en ting om ikke annet: Ting tar tid! Jeg tror ikke det vil spille så bra som Intel 64bit, men ingenting hadde vært bedre =)
    Det som blir den største forskjellen er at jeg kan modifisere og bytte ut regulatorene med JFET regulatorer og avkoble med OsCON og raske PP kondensatorer, og at jeg kan koble ut mye hardware ved å koble fra drivspenning, og at jeg kan sørge for at kernel / drivere ikke blir installert for de funksjoner jeg ikke får koblet ut fysisk.

    Intel platformene kjenner jeg godt til og tror jeg kan redusere støy og strømforbruk i CuBox med en faktor på 20 - 100 ganger eller mer i forhold til Intel.

    I overkant av en 1 watt burde være maksimal forbruk ved avspilling av 352.8k/32bit ferdig tweaket.
    USB 2.0 Audio -> I2S kortet som også er ARM basert med CPLD bruker ned mot 0.5 watt og her blir det også JFET regulatorer og OsCON og raske PP kondensatorer.
    Faktisk kan MPD spilleren og USB kortet drives av hvert sitt LIFEpo4 batteri..

    Skal også lage et tilsvarende microNAS basert på tweaket CuBox med et fem diskers SSD RAID (240GB til 2.4TB) og en automatisert CD rippe løsning.

    Men om ting tar litt tid gjør ikke det så mye bare resultatet blir bra...
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Har nå prøvd to forskjellige disker uten at jeg får dem opp i mPod eller mPad. Sticken med musikk på dukker imidlertid opp. Laster iso'en du har laget nå sist Man og ser om det løser seg med lydkortet så jeg ihvertfall får testet lyden!
    OK...jeg har egentlig bare testet med USB-sticker selv. Trodde ikke det skulle ha noe å si om det var USB-disker eller ikke. Men nå skal jeg prøve å koble en USB-disk til og sjekke..

    Edit: testet med en USB-disk formatert med HFS+. Funket helt fint.
     
    Sist redigert:

    gut_man

    Hi-Fi freak
    Ble medlem
    18.02.2004
    Innlegg
    5.450
    Antall liker
    3.193
    Torget vurderinger
    6
    Sender deg en mms med tekst som kommer på skjerm når jeg kobler til lydkortet med siste ISO
     
    O

    Oblivion

    Gjest
    CuBox som jeg fortsatt venter på kjører 3.4.5 kernel på debian....
    De kompilasjonene som allerede er gjort til CuBox er IKKE gode så det blir endel jobb for å få dette i orden..
    De er kompilert med mengder av unødvendig TV og sattelitt søl etc. etc...
    Og de er ikke kompilert med riktig prossesor source kode for den spesifikke ARM prosessoren heller.
    Burde bruke Linux 3.5 som kom i mainline igår. Den har en del veldig fine optimaliseringer for ARM.

    Det finnes ferdige crosstool-ng toolchains for armv7 med hardware floating, kompilere en kjerne på en litt nyere x86-maskin tar ikke mange minuttene.
    Jeg bruker denne feks.: http://archlinuxarm.org/builder/xtools/x-tools7h.tar.xz
    Da er det bare å fjerne alt du ikke vil ha fra configen.
    Takk for info. Skal se nærmere på 3.5 "og nyere".
    I 3.4.5 er ARM chipen støttet fullt ut, men ikke direkte via configen..
    Det er en produsent av industrielle ARM kort som har bidratt til source koden,
    men en må tydeligvis kompilere og angi denne spesifikke branchen.
     
    Sist redigert:

    gut_man

    Hi-Fi freak
    Ble medlem
    18.02.2004
    Innlegg
    5.450
    Antall liker
    3.193
    Torget vurderinger
    6
    Halleluja det er lyd!! Siste iso'en funker Man. Har bare prøvd fra stick foreløpig, men skal sjekke om usb disken også funker. Førsteinntrykk av lyd er meget bra! Edit; nå finner mPad MPD automatisk og usb disken funker også. Knall! Eneste som mangler nå er at HD filene mine ikke funker som de skal. Eks. Helge Lien Hello Troll i 24/96 spilles som 16/48 og det er noe digital støy. Fikser du den også Man? Om alt evt må upsamples er 24/192 ønskelig :)
     
    Sist redigert:

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Når du får XMOS-kortet ditt, vil Helge Lien avspilles i native rate. HagUSB støtter MAX 16/48, og MPD foretar derfor automatisk resampling om ikke native rate er tilgjengelig. MPD bytter samplefrekvens helt sømløst, ikke noe å tenke over.
    Jeg vet ikke hva støyen kan komme av. Kanskje p.g.a resamplingen. Det er brukt nest beste kvalitet. Beste kvalitet krever altfor mye CPU, selv for en Dual Core i5 2.5ghz som jeg har. Jeg tror likevel ikke at resamplingen skal være spesielt direkte "hørbar" i form av støy, men muligheten er jo der..

    ps. hvis du legger til http://Gutman-MPD.local eller http://xxx.xxx.xxx.xxx i feltet hvor Mpad søker etter coverbilder og har en bildefil som heter Folder.jpg (eller så bytter til du folder.jpg om du bruker liten forbokstav) så vil også Mpad hente coverart fra MPD. Som standard henter den også coverart fra internett, dette kan du skru av om du vil, men det er ikke alltid de er i så bra kvalitet.
     
    Sist redigert:
    O

    Oblivion

    Gjest
    ps. hvis du legger til http://Gutman-MPD.local eller http://xxx.xxx.xxx.xxx i feltet hvor Mpad søker etter coverbilder og har en bildefil som heter Folder.jpg (eller så bytter til du folder.jpg om du bruker liten forbokstav) så vil også Mpad hente coverart fra MPD. Som standard henter den også coverart fra internett, dette kan du skru av om du vil, men det er ikke alltid de er i så bra kvalitet.
    Den ISO versjonen jeg bruker har noe merkelig: xxxx-MPD.local blir lagt inn som xxxx-MPD.local.
    Altså en "." på slutten..

    MPaD virker da delvis, men hvis jeg editerer og fjerner "." på slutten så fungerer alt bortsett fra coverbilder.

    Må bruke http://xxx.xxx.xxx.xxx for å få coverbilder til å fungere..

    Lager du en ny ISO med de siste "bug" fixene ?
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    sure.
    Jeg har ikke det problemet. http://xxxx.local og http://xxx.xxx.xxx.xxx fungerer like bra. Men må ha "http://" i front ellers fungerer det ikke som det skal. (Mens i feltet der man skal skrive hostname/IP til selve MPD-serveren skal man ikke bruke http:// foran.
     

    gut_man

    Hi-Fi freak
    Ble medlem
    18.02.2004
    Innlegg
    5.450
    Antall liker
    3.193
    Torget vurderinger
    6
    Har lagt ut lytteinntrykk av MPD vs Jriver i mitt anlegg tråden min. Kort fortalt er jeg veldig happy med lyden fra MPD selv med et halvslarvet hardware oppsett og kommer til å gå videre med dette. HTPC'en min er nå forfremmet eller degradert til en dedikert film-pc:cool:
     

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    Man: I tråden til gut_man hadde du denne kommentaren:

    Det er også en veldig annen hørbar tweak som gjør lyden litt mer "fornøyelig", det vil komme an på oppsettet hva som foretrekkes. Etter litt endel testing har jeg kommet fram til at jeg liker det litt strammere, tightere og litt mer macho, og "grandios" og det er altså den utgaven du har fått. Denne innstillingen krever også mye mer av CPU, ikke i ren CPU-kraft men "load". Siden USB-delen blir nå "holdt i sjakk" hvert millisekund istedet for hvert tyvende millisekund. CPU "load" betyr altså 20 ganger flere ganger pr sekund den må holde USB "i sjakk", og hvis PCen din er gammel og sliten er det ikke sikkert den holder 100% følge. Men prøv nå først med M2tech Hiface two, så kan vi ta det andre på et annet tidspunkt.
    Jeg antar at du her snakker om snd-usb-audio modulens nrpacks opsjon. Jeg driver nå og "skrur" min egen MPD-installasjon basert på Debian Wheezy 64-bit og går derfor gjennom haugen med tweaks som flyter rundt i alle former og kvaliteter på nett. Målet er å samle det jeg anser for potensielt relevante tweaks slik at jeg kan gå gjennom dem litt mer systematisk. Da kom jeg selvsagt over denne parameteren også. Jeg la imidlertid merke til at default out-of-the-box i min installasjon er 8ms, ikke 20ms. Er det snakk om samme parameter?
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    nei, default er 8, jeg har ordlagt meg feil. Igår fikk jeg tid til å teste litt rundt, jeg og en kamerat. På høyt og lavt volum, i flere timer.
    Kom fram til at default 8 er det beste. 20 blir bittelitt sirup, 1 blir nesten for stramt og tight. Kan selfølgelig prøve 2 og 4 også..men man blir diagnotisert sinnsyk av mindre! (Men kommer helt sikkert til å gjøre dette). Det kan jo tenkes at 2 eller 4 er den gyldne middelvei (som jeg syns 8, default, foreløpig er).
     

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    Et kjapt spørsmål: Trenger man egentlig realtime patchen fra 3. part til mpd når man manuelt sørger for å sette prioriteten uansett? Så vidt jeg kan se er dette det eneste som kan ødelegge for en kompileringsfri installasjon her hos meg.
     

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    Hmm, det ser ut til at chrt kun klarer å jobbe med selve hovedprosessen, og ikke trådene under denne. Med andre ord kjører kun hovedprosessen mpd med høyere prioritet mens de fire andre trådene kjører med standardprioritet. Da må jeg se om det finnes en annen vei ut. Hvis ikke må jeg krypte til korset og gå for en custom mpd.
     

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    chrt fikk en patch for å kunne ta trådene og ikke bare hovedprosessen nå i mai (med parameteren -t), men dette er ikke støttet i Wheezy, og jeg vet ikke en gang om det er offisielt.

    Det ble i stedet til at jeg gjorde det ordentlig med rt patchen til mpd, men "The Debian Way" for å sikre en mest mulig lettsmurt prosess ved neste korsvei.
    I praksis benyttet jeg apt-get til å laste ned source for mpd 0.17.1 fra Debian Sid. Denne kildekoden patchet jeg med real time patchen, samt at jeg endret debian/rules slik at jeg fikk med --enable-rtopt. Deretter kjørte jeg litt debian magi på dette og ut fikk jeg en portabel .deb fil for amd64 bit med real time støtte, helt 100% integrert med Debian som om pakken var installert på vanlig vis (oppstartsskript, filbaner, pakkehåndtering osv). Dette gjør at jeg slipper å dille mer med dette når jeg skal installere en helt clean maskin i neste runde.

    Etterpå la jeg selvsagt til realtime-konfigurasjonen i mpd.conf.

    Verdt å merke seg er at det så vidt jeg har skjønt kun er prioritet 99 som er rt (det ser man også om man ser på "top"). Jeg valgte derfor å gå for 99 på audio_output FIFO-delen, samt IRQ prosessene.

    Siden kernelen i Wheezy (3.2.21-3 per dags dato) har støtte for "threadirqs" uten å måtte ty til rt-kernelen, er det ikke noen rene tekniske årsaker til å måtte kjøre rt-kernelen lenger, slik som i Squeeze. threadirqs er det som muliggjør individuell prioritering på prosessen tilknyttet hver IRQ, for den uinnvidde.

    Personlig synes jeg det hadde vært fint å slippe å dra inn rt-kernelen, fordi den alltid har mer usikkerhet ved seg enn standardkernelen. Men jeg er nødt til å kjøre noen sammenligninger med og uten rt-kernelen, med ellers identisk oppsett på prioritering osv. Jeg mistenker at rt-kernelen med rt-patchet mpd kommer til å komme seirende ut etter noen særdeles lite relevante og hurtige sammenligninger i dag.

    Oppsettet jeg kjører nå har kun native Wheezy pakker med unntak av rt-patchet Debian Sid mpd 0.17.1, og kjører ellers rt kernel fra Wheezy repositoryet med threadirqs og følgende ekstra innstillinger i form av et script jeg kjører via rc.local ved opppstart (jeg scripter alltid på engelsk, men det går vel bra):

    Kode:
    #!/bin/bash
    SCALING_GOVERNOR="performance"
    USB_IRQ_THREAD="23-ehci_hcd"
    PRI_IRQ=99
    SWAPPINESS=10
    
    # Changing the scaling_governor
    for CPU in {0..3}; do
        echo $SCALING_GOVERNOR > /sys/devices/system/cpu/cpu${CPU}/cpufreq/scaling_governor
        echo "scaling_governor is set to $(cat /sys/devices/system/cpu/cpu${CPU}/cpufreq/scaling_governor) for CPU${CPU}"
    done
    
    # Printing the value of nrpacks just for reference
    echo "snd-usb-audio nrpacks is $(cat /sys/module/snd_usb_audio/parameters/nrpacks)"
    
    # Changing the priority of the USB IRQ thread (threadirqs needs to be activated for the kernel in grub)
    pgrep $USB_IRQ_THREAD | xargs -n 1 chrt -f -p $PRI_IRQ
    
    # Changing the priority of ksoftirqd
    pgrep ksoftirqd | xargs -n 1 chrt -f -p $PRI_IRQ
    
    # Make linux wait longer before swapping memory
    echo $SWAPPINESS > /proc/sys/vm/swappiness
    echo "/proc/sys/vm/swappiness is set to $(cat /proc/sys/vm/swappiness)"
    Dette scriptet representerer ikke på noe vis noen fasit for optimal lyd, men inneholder det jeg har funnet som virker å være mest relevant og det er mer et slags utgangspunkt for videre sjekk og tuning av de viktigste tingene.
    Det ligger masse andre tweaks ute på nett, men flere av dem bærer preg av manglende forståelse og at de er samlet inn fra ulike kilder med litt andre hensikter enn mpd-avspilling. I tillegg har jeg utelatt mer "tvilsomme" ting som kanskje/kanskje ikke har noe å si, som da IMO vanligvis står best urørt.

    Et annet klassisk eksempel på noe som mer eller mindre alltid er nevnt, men som jeg ikke kan finne noe bruksområde for i mitt system er dette:
    Kode:
    Limits 
    -------
    Dette ser ikke ut til å være nødvendig, siden MPD-trådene ser ut til å få akkurat den prioriteten de er konfigurert med i /etc/mpd.conf når jeg sjekker med "ps -eLo pid,cls,rtprio,pri,nice,cmd | grep mpd"
    Dette står derfor kun her som en referanse. Forfatteren av rt patchen for mpd sier også at han ikke gjør noen sjekk mot limits.conf og mpd er ikke en gang medlem av grupppen audio, noe mange MPD-tweakere på nett ser ut til å overse helt.
    
    -> vi /etc/security/limits.conf
    -
    @audio - rtprio 99
    @audio - memlock unlimited
    @audio - nice -19
    -
    
    Hvis jeg aktiverer konfigurasjonen ovenfor må jeg melde mpd inn i audio-gruppen (grupper symboliseres med @) om det skal gi mening.
    -> adduser mpd audio
    Selve Debian-installasjonen er en helt minimal netinst, med noen få pakker ekstra installert for å kunne bruke systemet bedre.

    Jeg har også satt opp en versjon som inkluderer en minimal Debian-versjon av gnome-shell som fungerer flytende med mitt H77-baserte hovekort.
    GUIet hadde ikke en gang nettleser, terminal eller editor installert før jeg la dem til.
    Hovedhensikten med GUIet er rett og slett at man da kan kjøre Linux-klienten for Spotify direkte som på Windows og ikke minst ha en nettleser for surfing og nettstreaming, noe som jo kan gi vesentlig merverdi til maskinen avhengig av hvordan den kobles opp.

    Jeg kommer nok til å kjøre uten GUI selv, men skal ta noen uhøytidlige lyttetester. En kjapp "ps -ef | wc -l" indikerte at det dukket opp 28 nye prosesser med GUIet oppe kontra CLI alene.

    Som en kommentar til dette må jeg si at gnome-shell på Debian Wheezy ser ut til å bli virkelig bra. Grafikken de har valgt for Wheezy ser også meget stilren og profesjonell ut IMO.

    Jeg dokumenterer forøvrig hva jeg driver med underveis. Legger det opp på wikien min etterhvert, for enklere vedlikehold.
     
    Sist redigert:

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Trenger ikke å bruke RT-patchen:
    Du kan bruke:

    chrt -f -p xx `ps -eLo lwp,cmd | grep mpd | awk '{print $1}' | sed -n 2p`



    1 hovedprocess og 4 underprosesser, dvs 2p-5-p for underprosessene.

    2p er update database
    3p er player
    4p er decoder
    5p er output
     
    Sist redigert:

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    Takk skal du ha! Jeg fikk ikke med meg at thread PIDs ikke var med i outputen (lwp). Når dette ble fikset ble det straks mye enklere!

    Da burde en modifisering av scriptet egentlig gjøre sånn ca det samme som real time patchen til mpd (bortsett fra memlock) og jeg kan forhåpentligvis slippe denne avhengigheten av 3. part.

    Kode:
    #!/bin/bash
    SCALING_GOVERNOR="performance"
    USB_IRQ_THREAD="23-ehci_hcd"
    PRI_IRQ=99
    PRI_MPD_PLAYER=47
    PRI_MPD_DECODER=48
    PRI_MPD_OUTPUT=99
    SWAPPINESS=10
    
    
    # Changing the scaling_governor
    for CPU in {0..3}; do
        echo $SCALING_GOVERNOR > /sys/devices/system/cpu/cpu${CPU}/cpufreq/scaling_governor
        echo "scaling_governor is set to $(cat /sys/devices/system/cpu/cpu${CPU}/cpufreq/scaling_governor) for CPU${CPU}"
    done
    
    # Printing the value of nrpacks just for reference
    echo "snd-usb-audio nrpacks is $(cat /sys/module/snd_usb_audio/parameters/nrpacks)"
    
    # Changing the priority of the MPD threads
    MPD_THREADS=( $(ps -eLo lwp,cmd | awk '/mpd/ {print $1}') )
    #MPD_UPDATE=${MPD_THREADS[1]}
    MPD_PLAYER=${MPD_THREADS[2]}
    MPD_DECODER=${MPD_THREADS[3]}
    MPD_OUTPUT=${MPD_THREADS[4]}
    
    echo "Setting the priority of the mpd player thread to FIFO:$PRI_MPD_PLAYER"
    chrt -f -p $PRI_MPD_PLAYER $MPD_PLAYER
    
    echo "Setting the priority of the mpd decoder thread to FIFO:$PRI_MPD_DECODER"
    chrt -f -p $PRI_MPD_DECODER $MPD_DECODER
    
    echo "Setting the priority of the mpd output thread to FIFO:$PRI_MPD_OUTPUT"
    chrt -f -p $PRI_MPD_OUTPUT $MPD_OUTPUT
    
    # Changing the priority of the USB IRQ threads where the USB audio interface is located
    echo "Setting the priority of the USB IRQ threads [irq/${USB_IRQ_THREAD}] to FIFO:$PRI_IRQ"
    pgrep $USB_IRQ_THREAD | xargs -n 1 chrt -f -p $PRI_IRQ
    
    # Changing the priority of ksoftirqd
    echo "Setting the priority of the ksoftirqd threads to FIFO:$PRI_IRQ"
    pgrep ksoftirqd | xargs -n 1 chrt -f -p $PRI_IRQ
    
    # Make linux wait longer before swapping memory
    echo $SWAPPINESS > /proc/sys/vm/swappiness
    echo "/proc/sys/vm/swappiness is set to $(cat /proc/sys/vm/swappiness)"
     

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    Hmm, dårlig nytt angående ikke-patchet mpd.
    Fremgangsmåten som er forespeilet her hvor man antar at de ulike trådene har fast posisjon PID-messig er dessverre ikke pålitelig. Det viser seg nemlig at trådene ikke startes før ved behov. Rekkefølgen er _nesten_ pålitelig i form av at hovedprosessen og player alltid startes. Decoder startes også før Output når man bestemmer seg for å avspille noe første gang. Å sette prioritet ved oppstart av Linux fungerer derfor ikke. Man må ha et cron-script som gjør dette f.eks hvert 5. minutt for å ta høyde for at avspillingen kan starte på et tilfeldig tidspunkt en eller annen gang etter at mpd/maskinen startes opp igjen.

    Problemet jeg imidlertid så nå var at update-tråden ikke ble startet før jeg faktisk tok en oppdatering fra MPoD. Dette medførte da at update ble den siste tråden i rekkefølgen, noe som igjen gjorde at den fikk posisjonen output vanligvis har, og dermed fikk 99 i prioritet.

    Jeg ser per nå 3 forskjellige måter å omgå problemet på.
    1. Benytte patchet mpd
    2. Gi alle mpds tråder samme høye prioritet etter samme prinsipp og således bli uavhengig av rekkefølge. Dette kan nok potensielt lede til upålitelig oppførsel ved oppdatering og f.eks resampling, om dette også skal foregå med rt, spesielt om du ikke har dual core.

    Dvs noe sånt som det her (kun mpd som prosess holder som kjent ikke)
    Kode:
    ps -eLo lwp,cmd | awk '(/mpd/ && !/ps/) {print $1}' | xargs -n 1 chrt -f -p 80
    Her tok jeg prioritet på 80, ikke rt (99), for at ikke systemet skal konke helt under belastning fra mpd om dette noen gang skulle oppstå.

    3. Ikke endre prioritet på mpd på noe vis
     
    Sist redigert:
    O

    Oblivion

    Gjest
    Hmm, dårlig nytt angående ikke-patchet mpd.
    Fremgangsmåten som er forespeilet her hvor man antar at de ulike trådene har fast posisjon PID-messig er dessverre ikke pålitelig. Det viser seg nemlig at trådene ikke startes før ved behov. Rekkefølgen er _nesten_ pålitelig i form av at hovedprosessen og player alltid startes. Decoder startes også før Output når man bestemmer seg for å avspille noe første gang. Å sette prioritet ved oppstart av Linux fungerer derfor ikke. Man må ha et cron-script som gjør dette f.eks hvert 5. minutt for å ta høyde for at avspillingen kan starte på et tilfeldig tidspunkt en eller annen gang etter at mpd/maskinen startes opp igjen.

    Problemet jeg imidlertid så nå var at update-tråden ikke ble startet før jeg faktisk tok en oppdatering fra MPoD. Dette medførte da at update ble den siste tråden i rekkefølgen, noe som igjen gjorde at den fikk posisjonen output vanligvis har, og dermed fikk 99 i prioritet.

    Jeg ser per nå 3 forskjellige måter å omgå problemet på.
    1. Benytte patchet mpd
    2. Gi alle mpds tråder samme høye prioritet etter samme prinsipp og således bli uavhengig av rekkefølge. Dette kan nok potensielt lede til upålitelig oppførsel ved oppdatering og f.eks resampling, om dette også skal foregå med rt, spesielt om du ikke har dual core.

    Dvs noe sånt som det her (kun mpd som prosess holder som kjent ikke)
    Kode:
    ps -eLo lwp,cmd | awk '(/mpd/ && !/ps/) {print $1}' | xargs -n 1 chrt -f -p 80
    Her tok jeg prioritet på 80, ikke rt (99), for at ikke systemet skal konke helt under belastning fra mpd om dette noen gang skulle oppstå.

    3. Ikke endre prioritet på mpd på noe vis
    1. Vil tro patchet mpd er beste løsning hvis en lager et oppsett som skal kjøres uendret over lengre tid.
    2. Alternativt å finne en felles prioritet for alle mpd prosessene som er optimal.

    Det er USB og LAN jeg ville ha sett mest på da det er disse prossessene som bruker mest CPU tid..
    Jeg ser da bort fra resampling fordi resampling ikke er nødvendig eller ønskelig pga lydkvaliteten.
     
    Sist redigert:

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    @marsboer, veldig nice kode! Jeg har kommet litt inn i det, men de dere forskjellige syntaksene er ikke noe man får gjennom morsmelken for å si det sånn.

    Det er forsovet ikke noe problem å kjøre alt på samme prioritet vil jeg påstå. Det er ikke som om det ikke er CPU-kraft tilgjengelig liksom. Dessuten liker jeg å holde decoding og player ganske høyt i prioritet uansett, mens update er ikke så farlig. Men det har jo minimalt å si om man har høy prioritet også på update, da denne funksjonen ikke benyttes så ofte. Hos meg virker det som om alle prosessene kommer opp med en gang, og alltid i den riktige rekkefølgen. Jeg vet ikke om det er et eller annet i mpd.conf som trigger dette, men jeg kan jo kikke litt på det.
     

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    USB-hubens IRQ har jeg allerede høy prioritet på, men nettverksportens er jeg mer skeptisk til å endre. Det er ingen tvil om at denne opplever en del interrupts i mitt tilfelle siden jeg har alt lagret via NFS, noe man også ser i /proc/interrupts. På grunn av at mpd leser fra romslige buffere og ikke rett fra nettverksporten ved lydavspilling er jeg imidlertid noe skeptisk til at nettverksportens interrupts på noe vis er tidssensitivt, og at jeg ved å øke prioriteten her faktisk heller kan komme i veien for audio-delen som jeg antar er mer sensitiv for variasjoner rent kvalitetsmessig i enden.
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Jeg mente de forskjellige MPD-prosessene, men jeg er forsovet enig når du først misforsto meg. Nettverksporten er ikke en flaskehals. Du kan sikkert gi den en lav prioritet slik at den ihvertfall har høyere prioritet enn de vanlige bakgrunnsprosessene.
     
    O

    Oblivion

    Gjest
    USB-hubens IRQ har jeg allerede høy prioritet på, men nettverksportens er jeg mer skeptisk til å endre. Det er ingen tvil om at denne opplever en del interrupts i mitt tilfelle siden jeg har alt lagret via NFS, noe man også ser i /proc/interrupts. På grunn av at mpd leser fra romslige buffere og ikke rett fra nettverksporten ved lydavspilling er jeg imidlertid noe skeptisk til at nettverksportens interrupts på noe vis er tidssensitivt, og at jeg ved å øke prioriteten her faktisk heller kan komme i veien for audio-delen som jeg antar er mer sensitiv for variasjoner rent kvalitetsmessig i enden.
    Hvis lyd kvalitet kontra nettverks mønster kan sammenlignes mellom linux og OSX, og en kan sammenligne hvordan prosessene jobber....

    Hvis en har satt opp til at en skal buffre før avspilling - noe jeg opplever som optimalt, men krever gigabit nettverk og NAS som leverer mer enn 100MB/s på store fil størrelser - da bør nettverks prioritet være satt lavt.
    mpd og andre prossesser vil da uansett la nettverket få jobbe ferdig, og annen nettverks trafikk mens en spiller er ned prioritert.

    Hvis en "streamer" data fra NAS mens en spiller vil normalt nettverks data komme i små burst på 3 - 10MB/s med noen sekunders mellomrom..
    Hva nettverks prioriteten optimalt bør være i dette tilfellet vil garantert variere fra system til system..
    Og hva nettverks prioriteten optimalt bør være vil også garantert variere med hastighet på NAS og med hastighet på nettverket etc..
     
    Sist redigert:

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    Hvis en "streamer" data fra NAS mens en spiller vil normalt nettverks data komme i små burst på 3 - 10MB/s med noen sekunders mellomrom..
    Hva nettverks prioriteten optimalt bør være i dette tilfellet vil garantert variere fra system til system..
    Og hva nettverks prioriteten optimalt bør være vil også garantert variere med hastighet på NAS og med hastighet på nettverket etc..
    Her kommer det nok an på implementasjonen igjen. Dersom programmet som streamer (mpd i dette tilfellet) faktisk lar bufferet gå helt tomt før den "burster" inn nye data så vil det være en problematikk man muligens bør ta høyde for. Dersom det imidlertid fungerer slik at avspillerprogramvaren venter til bufferet bare er f.eks 50% tomt før det fylles på med data bør det ikke ha noen betydning med tanke på tidssensitivitet. 50% fullt er jo i praksis det samme som 100% fullt med tanke på tilgang på data for avspillerprogramvaren. Det kan imidlertid være at selve innhenting av data til bufferet påvirker lyden negativt som en følge av innhentingsprosessen i seg selv påvirker audioen som avspilles. Da kan det jo muligens være nyttig å enten redusere prioritet på nettverket eller kjøre 100% bufring. Sistnevnte bør jo være relativt idiotsikkert uansett, om enn ikke helt uten bieffekter rent praktisk.

    Når det gjelder nettverk og NAS-hastigheter så er ikke dette noe man trenger å bekymre seg om i marsboers residens :)
     
    O

    Oblivion

    Gjest
    Her kommer det nok an på implementasjonen igjen.
    Med gigabit nettverk og mpd spiller og NAS på samme switch er det sikkert kun de audiofile effektene en trenger å tenke på.
    Men brukes det et nettverk med streaming (andre kilder og andre mottagere) av video, musikk og en mengde mobiltelefoner som er nettilknyttet etc. kan det bety noe...
    Brukes det trådløst på mpd systemet så...

    Når det gjelder nettverk og NAS-hastigheter så er ikke dette noe man trenger å bekymre seg om i marsboers residens :)
    Regnet med det :)
     

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    @marsboer, veldig nice kode! Jeg har kommet litt inn i det, men de dere forskjellige syntaksene er ikke noe man får gjennom morsmelken for å si det sånn.
    Takk for det. awk er grisete og tilnærmet uforståelig syntaksmessig i begynnelsen, men det fine er at awk kan kombinere både awk, sed og grep kun med en passering over datasettet, og dette er vanligvis langt mer effektivt enn å pipe alle data gjennom flere nye prosesser med andre kommandoer. På store datasett med litt mer avanserte operasjoner kan man gjerne spare mange sekunder på å klundre alt inn i en awk-kommando i stedet for flere pipes med oppstart av både grep og sed prosesser.

    xargs er også meget nyttig å vite noe om. chrt klarer ikke å ta inn en liste med flere PIDs fra stdin (f.eks pipe fra pgrep). Den tankler kun én om gangen. Med xargs kan "konstruere" en chrt kommando basert på stdin, og be xargs sørge for å feede kun én og én linje inn i chrt (-n 1). Da får man én kommandolinje som kan håndtere et uvisst antall PIDs inn (0 -> uendelig) uten å feile eller lage tull. Den "enkle" veien, som lager mye mer kvalm om ting ikke blir helt som ventet, er jo å legge mange chrt kommandoer etterhverandre i et script. Hvis antallet plutselig er færre eller flere enn antatt så fungerer ikke scriptet som tiltenkt lenger.

    En annen "fancy" ting med xargs er at du kan utnytte flere CPU-kjerner uten at selve kommandoen støtter dette. Du kan nemlig be xargs om å alltid sørge for at X-antall av kommandoen kjører parallelt gitt at det er input til alle. Si at du f.eks har en liste med 100 flac sanger som skal dekodes. Da kan du rett og slett fore listen til xargs som igjen kjører flac dekoderen. Hvis du da legger til parameteren --max-procs=4 på xargs, vil xarg sørge for at det alltid kjøres 4 dekodingsprosesser samtidig så lenge det er input til alle. Helt genialt faktisk! Dette forutsetter at kommandoen du kjører er "safe" med tanke på å ikke forstyrre hverandre i form av identiske temp-filer eller lignende.

    Det er forsovet ikke noe problem å kjøre alt på samme prioritet vil jeg påstå. Det er ikke som om det ikke er CPU-kraft tilgjengelig liksom. Dessuten liker jeg å holde decoding og player ganske høyt i prioritet uansett, mens update er ikke så farlig. Men det har jo minimalt å si om man har høy prioritet også på update, da denne funksjonen ikke benyttes så ofte. Hos meg virker det som om alle prosessene kommer opp med en gang, og alltid i den riktige rekkefølgen. Jeg vet ikke om det er et eller annet i mpd.conf som trigger dette, men jeg kan jo kikke litt på det.
    Jeg tror forklaringen er enkel. Jeg mener mpd startet et automatisk scan ved oppstart når jeg prøvde min egen mpd installasjon på en eldre Ubuntu for et par år siden. I mpd-versjonen som følger med Wheezy er ikke dette lenger mulig. Faktisk kan ikke mpd selv starte en update i det hele tatt. Updates MÅ initialiseres fra klienten. I henhold til tidligere oppførsel ville det derfor være naturlig at alle trådene gikk allerede etter oppstart (med unntak av dekoder og output kanskje).

    For ordens skyld så har jeg endt opp med å kjøre Debian Wheezys mpd men med prioritet 80 på alle threads ihht til kommandoen ovenfor. Dette gjør at jeg kun kan basere meg på Wheezy pakker, uten å måtte ty til custom-versjoner som må vedlikeholdes manuelt på siden. DSD er ikke noe jeg trenger så jeg trenger strengt tatt ikke nyeste versjon, men versjon 0.17.1 kan evt hentes fra Debian Sid. Vel og merke så lenge man ikke har et inderlig ønske om en helt skrapet versjon med bare det mest nødvendige.
     
    Sist redigert:

    marsboer

    Hi-Fi freak
    Ble medlem
    04.04.2010
    Innlegg
    4.356
    Antall liker
    1.704
    Sted
    Phobos
    Jeg tok også en litt mer seriøs lyttesesjon i går. Jeg føler jeg har kommet veldig i mål per nå uten å ty til de nevrotiske tweakene hvor det er umulig å bli enig med seg selv.
    Jeg kjørte også en mer nøye sammenligning med og uten rt-kernelen, med identisk software, samme tweaks og threadirqs på begge. Kun bytte av kernel. Uansett om jeg gjerne skulle ønske at standard-kernelen låt like bra av langsiktige praktiske årsaker, så var min meget subjektive oppfatning hver eneste gang jeg byttet at det låt luftigere med bedre oppløsning og klangmessig innsikt med rt-kernelen, helt uten ulemper. Irriterende ulogisk, og ikke nødvendigvis en objektiv sannhet, men rt-kernelen forblir brukt fremover.

    I dag fikk jeg endelig selvklebende avstandsstykker til DC-kortet på K.I.S.S.S PSUen. Denne er nå montert i mpd-maskinen. Det var godt å bli kvitt vifteulyden fra den originale 300W SFX PSUen.
     

    nma

    Hi-Fi freak
    Ble medlem
    07.12.2003
    Innlegg
    4.724
    Antall liker
    535
    Torget vurderinger
    1
    Jeg digger at en skeptiker som deg hører forskjell på disse tingene. Gjør at jeg føler meg litt mindre gal.. ;)

    For ordens skyld: Med RT-kernel trenger du ikke spesifisere threadirqs, men det skader jo selvsagt ikke.

    Når det gjelder bufferstørrelsen, tror jeg MPD lar det nærmest gå tomt før det fylles opp. Har man et stort buffer vil man se høye CPU spikes, d.v.s opp mot rundt 20% i korte øyeblikk. Når det gjelder scanning, så vil MPD vil faktisk alltid starte automatisk scanning når den ikke finner databasen ved oppstart. Dette vet jeg 100% sikkert.
    Og hvis den finner databasen, er det vel update-funksjonen som laster denne inn i minnet uansett?

    Og BTW: er back to nrpacks=1. Det er såpass stor forskjell her at jeg bare MÅ ha det slik. Problemet med en litt mer aggressiv lyd, synes å være et annet sted. (pluss at lyttesesjonen i helga var egentlig ikke en lyttesesjon, men mer øl og høyt volum-sesjon)
     
  • Laster inn…

Diskusjonstråd Se tråd i gallerivisning

  • Laster inn…
Topp Bunn