LMS (Logitech Media Server) - Teknisk diskusjon

Diskusjonstråd Se tråd i gallerivisning

  • PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Veiledning fra post #3 tar utgangspunkt i installasjon på Raspberry Pi (RPi) med Raspberry Pi OS uten skjerm (headless). Men tråden er muligens best tjent med at vi samler teknisk LMS referanser for alle plattformer her?
    pi.jpg


    Men først et forsøk på å få med oss nysgjerrige som finner at alle fremmedordene er vanskelig få oversikt over.

    Hva er LMS - Logitech Media Server?
    LMS er en såkalt kjernetjener (core) med funksjoner som inngangsport (gateway) og sentral hub til å samle musikk fra ulike strømmetjenster på nett og egen musikksamling fra lokal NAS eller USB disk. Spillelister på LMS kan linke innhold fra alle kilder registrert på systemet og LMS vil sørge for synkronisert avspilling på flere samtidige klienter (multirom) om ønskelig.

    LMS kjernefunksjoner kan utvides i nesten det uendelige med det vi kaller plugginnmoduler (plugg fra nå av), - hvor mange allerede er aktivert ved standard installasjon. Tidal, Qobuz. Spotify Deezer, Napster m.flere er implementert med plugger som oppdateres uavhengig av LMS's kjernefunksjoner. Eksempel på en 'must have' plugg er Material Skin som er et moderne bruker grensesnitt for LMS.

    For haifai kronikere er det verd å merke seg at LMS strømmer bit-perfekt med noen få unntak hvor konvertering tar plass. Eks. vil Spotty plugg'n for Spotify konvertere til PCM 44,1/16 uavhengig av bitrate man velger. LMS kan også konfigureres til å resample til dedikerte klienter eller fra en bestemt type media, samt det finnes equalizer. Dog er ikke dette like enkelt å implementere som på Roon selv om det finnes plugg til å hjelpe med konfigurasjon. DSD-over-PCM (DoP) er tilgjengelig med en plugg.

    LMS kan ikke selv spille av musikk til en DAC. Om dette er det eneste du sitter igjen med eter lest avsnittene over har du likevel fanget det mest essensielle ;)

    Lytte til innhold fra LMS
    For å lage lyd kreves det en strømmeenhet med intern eller ekstern DAC. Buzz-ord er streamer, player, connector, end point, digital spiller og klient som alle beskriver den samme basisfunksjonen. På LMS systemet brukes Player.

    For å forstå hvordan streamere (klienter) kobler seg til LMS kan muligens en sammenligning med smarthøyttalere som kan strømme Spotify være en bra sammenligning. Måten det virker på er at høyttaleren har innebygget en såkalt connector som man fra Spotify app'n kan aktivere slik at connector'n selv bestiller en musikkstrøm med gitt adresse direkte fra server. Har man vært borti Google Cast er det samme prinsipp som gjelder her. (*1)

    Det er faktisk slik Logitech sine nå utgåtte enheter med display som f.eks Touch fungerer. Touch er egentlig 3 apparater i samme boks. En nettleser med berøringsskjerm til navigering, samt en connector til å håndtere datastrømmen og til slutt en DAC med audio og s/pdif utganger. (*2)
    touch.jpg

    Nå forstår man kanskje at LMS faktisk også er en web-server slik man kjenner fra å besøke Spotify på Internett. Det geniale med dette konseptet er at at man fra en kontrollflate som typisk vil være en smarttelefon eller nettbrett kan styre alle klienter uavhengig om de har egen skjerm eller ikke - dette skjer sentralt gjennom LMS. (*3)

    For bedre å illustrere kontrollerer jeg til daglig en RPi klient uten skjerm plassert bak stereobenken fra en Logitech Touch som nå kun har funksjon som fjernkontroll plassert ved lytteposisjon. Fra samme Touch eller telefonen kan jeg også velge slå av en klient på soverommet om kona glemmer slå den av.
    manage players.jpg


    Connector'n som er mest benyttet i LMS oppsett heter Squeezelite og omtales gjerne som en headless mediaspiller. Den finnes til de fleste dataplattformer inkl ikke mindre enn 3 versjoner for Linux avhenging av audio-ruting benyttet. Standard er ALSA som også Raspberry Pi OS installerer som standard ved headless installasjon.
    For Windows finner man den enklest i Microsoft Store under navnet Squeezelite-X som også har kontrollfunksjon.
    Liste over støttede plattformer: https://sourceforge.net/projects/lmsclients/files/squeezelite/

    LMS kan også nyttegjøre alle Google sine Cast enheter som strømmeenheter via en plugg som fungerer som gateway og tolk av protokoller. Dette inkluderer også Cast kompatible enheter som f.eks Telia TV-Box, Samsung Sound bar, NVIDIA Shield m.flere
    Plugg med navn AirPlay bridge får Apple enheter opp på LMS. Og pluggen UPnP/DLNA bridge vil håndtere generiske digitale spillere ofte brukt i forsterkere og blue-ray spillere. LMS kan også integrere og samordne innhold fra servere som publiserer sitt innhold over samme protokoll.

    Squeezelite og LMS kan, men må ikke installeres på samme maskin. Om man gjør det vil LMS likevel betjene alle andre klienter uten å egentlig favorisere den lokale som betjenes over lokal IP 127.0.0.1.


    *1: Mer presist kan eldre Slimdevicer 'påtvinges' en UDP strøm fra server på lokalt nettverk. Men for at datastrøm skal kunne passere brannmurer i Internettruter er det enklere om klienten selv bestiller data den ønsker. Derfor er det egentlig en fjernkontroll av klienten som utføres fra Cast og Spotify app hvor den sender adressen til valgt spilleliste med instruks om å laste ned.
    *2: piCorePlayer er en ferdig linux distribusjon ment for enkelt bygge streamer med skjerm med opsjon til og også kjøre LMS på samme maskin https://www.picoreplayer.org/
    *3: LMS benytter også en proprietær kommando-protokoll kalt CLI (Command Line Interface).
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Før vi starter med installasjon og konfigurasjon la meg raskt redegjøre for hvorfor jeg ikke fremmer ferdige distribusjoner. Personlig finner jeg at de ofte har en filosofi hvor funksjoner jeg ønsker kanskje ikke er med. Eller så kan det være motsatt at de kommer med alt for mye dill jeg ikke behøver. Og noen ganger dør prosjekter grunnet manglende tid og synkende interesse fra utvikler.

    Samt at med introduksjonen av Raspberry Pi OS har det aldri vært enklere å komme i gang med sin eget programvarekollasj på RPi. Både pga bedre OS men ikke minst pga brukermanualen er blitt bra https://www.raspberrypi.com/documen...ation.html#setting-up-a-headless-raspberry-pi

    Men ikke la mitt syn å dette stoppe diskusjon av andre distribusjoner i denne tråden da tekniske spørsmål ofte har samme løsning uavhengig av distro/system.
     
    Sist redigert:
    • Liker
    Reaksjoner: POB

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Installere LMS og Squeezelite

    Det er i dag blitt veldig enkelt å få LMS og Squeezelite opp å gå på Raspberry Pi OS da begge deler nå finnes i Debian pakkeformat klart for installasjon på RPi.

    Følg veileding på https://www.raspberrypi.com/software/ for å installere RPi OS til et microSD kort.
    Husk, ved installasjon av RPi OS å sette fast IP adresse (se post #10) og aktivere SSH ved å konfigurere filer på microSD kortet mens man enda har korter i sin datamaskin. https://www.raspberrypi.com/documen...ation.html#setting-up-a-headless-raspberry-pi

    Når man har fått RPi til å fungere som ønsket er det tid for å installere LMS og eller Squeezelite.

    Bash:
    sudo apt -f install squeezeboxserver -y
    
    sudo apt install squeezelite -y
    Etter installasjon kobler man seg til LMS med en nettleser ved å bruke IP adressen til din RPi + port nummer :9000 (*1)
    Eks:
    Om man har Material Skin pluggen legger man Material til adressen

    Squeezelite er en såkalt headless mediaspiller. Det vil si at kontrollflaten presenteres gjennom en webside levert av LMS core.

    Merk at Squeezelite vil koble seg til LMS automatisk og spille musikk. Men du vil ikke få lyd ut fra den før du forteller den hvor den skal sende lyden.
    Her bruker jeg SL_SOUNDCARD=hdmi:CARD=vc4hdmi,DEV=0 for å sende lyden via HDMI porten til TV'n og lydplanke'n vår.

    Bash:
    sudo nano /etc/default/squeezelite
    Kode:
    # Defaults for squeezelite initscript
    # sourced by /etc/init.d/squeezelite
    # installed at /etc/default/squeezelite by the maintainer scripts
    
    # The name for the squeezelite player:
    SL_NAME="$(hostname -s)"
    
    # ALSA output device:
    #SL_SOUNDCARD="default:CARD=Set"
    SL_SOUNDCARD=hdmi:CARD=vc4hdmi,DEV=0
    
    # Squeezebox server (Logitech Media Server):
    # Uncomment the next line if you want to point squeezelite at the IP address of
    # your squeezebox server. This is usually unnecessary as the server is
    
    # automatically discovered.
    #SB_SERVER_IP="192.168.x.y"
    
    # Additional options to pass to squeezelite:
    # Please do not include -z to make squeezelite daemonise itself.
    #SB_EXTRA_ARGS=""

    Behøver du liste over tilgjegelige lydporter på ditt system bruk
    Bash:
    sudo squeezelite -l
    Kode:
    Output devices: (standard RPi3+ uten USB DAC)
      null                           - Discard all samples (playback) or generate zero samples (capture)
      hw:CARD=Headphones,DEV=0       - bcm2835 Headphones, bcm2835 Headphones - Direct hardware device without any conversions
      plughw:CARD=Headphones,DEV=0   - bcm2835 Headphones, bcm2835 Headphones - Hardware device with all software conversions
      sysdefault:CARD=Headphones     - bcm2835 Headphones, bcm2835 Headphones - Default Audio Device
      dmix:CARD=Headphones,DEV=0     - bcm2835 Headphones, bcm2835 Headphones - Direct sample mixing device
      hw:CARD=vc4hdmi,DEV=0          - vc4-hdmi, MAI PCM i2s-hifi-0 - Direct hardware device without any conversions
      plughw:CARD=vc4hdmi,DEV=0      - vc4-hdmi, MAI PCM i2s-hifi-0 - Hardware device with all software conversions
      sysdefault:CARD=vc4hdmi        - vc4-hdmi, MAI PCM i2s-hifi-0 - Default Audio Device
      hdmi:CARD=vc4hdmi,DEV=0        - vc4-hdmi, MAI PCM i2s-hifi-0 - HDMI Audio Output
      dmix:CARD=vc4hdmi,DEV=0        - vc4-hdmi, MAI PCM i2s-hifi-0 - Direct sample mixing device
    Merk at uten sudo (midlertidig admin rettigheter) vil squeezelite -l på RPi OS kun retunere.
    Output devices:
    null - Discard all samples (playback) or generate zero samples (capture)



    *1: Se post #8 lenger nede om tips til å finne enheter på nettverket
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Hvordan installere plugginnmoduler på LMS

    Med standard brukerflate til LMS som man får opp ved å skrive inn http://[IP adresse til RPi]:9000 i en nettleser får man tilgang til innstillinger ved å trykke knappen Setting helt nede i høyre hjørne. Velg deretter fanen Plugins.
    settings.PNG
    -
    fane.PNG


    Jeg vil anbefale at man etter ha konfigurert sti til musikksamlingen sin og skanning er ferdig at man starter med å installere Material Skin som første plugg. Dette fordi den har en utmerket brukermanual til hjelp videre https://cdn.statically.io/gh/d6jg/material-documentation/master/html/GettingStarted.html


    Plugger jeg selv benytter:

    Material Skin
    Music and Artist Information
    Don't Stop The Music (merk at denne konfigureres for den enkelte player)
    Online Music Library Integration
    Save Playlist
    Spotty
    Chromecast bridge
    Radio Paradise (lossless FLAC musikk-radio - krever registrering https://radioparadise.com)
    Random Mix
    Community Firmware for Touch/Radio/Controller
     
    Sist redigert:
    • Liker
    Reaksjoner: POB

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Konfigurere headless RPi OS (ikke relatert til LMS) er PuTTY en poulær telnet klient. https://putty.org/

    Klippe og lime linux kommandoer og konfigurasjonstrenger over en terminalkobling er veldig nyttig, men er ikke veldig intuetivt:
    Kopiere fra PuTTY: Merk tekst med mus og trykk Enter
    Lime inn til PuTTY: Plasser markør med piltastene og trykk Høyre Musetast
     
    Sist redigert:
    • Liker
    Reaksjoner: POB

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Gjør USB disk på RPI/LMS server til en nettverksdisk

    Kobler man en USB harddisk med sin egen musikksamling direkte til RPi som kjører LMS vil det være greit å slippe koble fra/til USB kabel når man behøver fylle på med ny musikk. Til å løse dette er Windows sin fildelingsporokoll trolig den mest utbrette. Samba kalles Linux prosjektet som har klonet slik funksjon.

    For å installere kjør
    Bash:
    sudo apt update
    sudo install samba samba-common-bin
    Opprett et Samba passord.
    Først oppretter vi en lokal bruker på RPi. Bruk gjerne samme brukernavn som du bruker på PC'n din.
    Så lager vi et passord for nettverkspålogging.
    Bash:
    sudo adduser bob
    
    sudo smbpasswd -a bob
    La oss finne stien til disken eller musikkkatalogen du ønsker dele på nettverket.
    Bash:
    ls -l /mnt/usb
    Kode:
    pi@LMS:/etc/samba $ ls -l /mnt/usb
    totalt 12
    drwxrwxrwx 1 root root    0 juni   7  2019 '$RECYCLE.BIN'
    drwxrwxrwx 1 root root 4096 aug.   5  2020  4TB
    drwxrwxrwx 1 root root 4096 nov.  29  2016  Seagate
    drwxrwxrwx 1 root root 4096 jan.   5  2017 'System Volume Information'
    Dette skal liste alle USB disker på systemet. Bruk ls -l /mnt/usb/DiskNavn for å navigere fram til mappen du vil dele. Man kan dele hele disken om man ønker. Hos meg er stien /mnt/sub/4TB hvor 4TB da er navnet på partisjonen på USB disken hvor musikkfilene mine er plassert.

    Enkel konfigurering av Samba på RPi OS
    Bash:
    sudo nano /etc/samba/smb.conf
    Kode:
    #======================= Global Settings =======================
    
    [4TB]
       path = /mnt/usb/4TB/
       guest ok = no
       browseable = yes
       read only = no
       valid users = bob
       create mask = 0644
       directory mask = 0755
       public = yes
    
    [global]
    ## Browsing/Identification ###
    # Change this to the workgroup/NT-domain name your Samba server will part of
       workgroup = LOKAL
       netbios name = LMS
    Etter man har utført endringer på smb.conf må samba servicen startes på nytt
    Bash:
    sudo service smbd restart

    Hvordan koble til den delte disken er litt forskjellig avhening av opperativsystem.
    For Windows åpner man Filutforsker. I adressefeltet skriver man inn IP adressen til sin RPi med to bakvente skråstreker
    eksempel: \\192.168.1.25


    Tips: For å sikre mot data med uhell blir slettet bruker jeg dele ut den sammen katalogen med ulike navn og rettigheter. Hvor den som er synlig for nettet kun har lesetilgang.

    Kode:
    [flac]
       path = /mnt/usb/4TB/flac
       guest ok = yes
       browseable = yes
       read only = yes
       public = yes
     
    Sist redigert:
    • Liker
    Reaksjoner: POB

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Squeezelite vil med standardinnstilling ikke strømme bit-perfekt.

    Volumkontroll og fade inn/ut må deaktiveres. Dette gjøres for den enkelte spiller. Hos meg er den deaktivert på hovedanlegget. Men for komfort er den aktiv på spillere plassert i andre rom.
     
    • Liker
    Reaksjoner: POB

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Hvordan finne enheter på nettverket man ikke husker eller vet IP adressen til:

    Det er flere metoder man kan benytte for å finne en enhet på nettet.

    Forsøk først ping minRPi.local hvor minRPi er navnet på nettverksenheten. Kjenner man ikke navnet les videre.

    Har man tilgang til lokal ruter finner man normalt enheten med navn i listen over enheter tilkoblet nettet. Eller man finner DHCP adresse tildelt enheten i DHCP loggen.

    Om man ikke husker adressen til sin ruter finner man den under IP innstillinger på sin datamaskin vanligvis som adressen til GateWay. Våger man seg på å åpne ledertekstvindu (CMD/Terminal) er kommandoen ipconfig på Windows og ip route for linux og os-x.


    Et populært program på linux (trolig også os-x) man kan pinge subnettet med er nmap fra et ledertekstvindu (CMD/Terminal).
    nmap -sn 192.168.1.0/24 - husk å bruke riktig adresse for ditt nettverk.
    Resultatet er en liste med aktive enhet på nettet.
    Slik det ser ut finnes det ikke pakke for RPi OS til dette programmet sudo apt info nmap finner ingen adresse.


    En lignende metode som virker på Windows og Linux er å åpne et ledertekstvindu (CMD/Terminal)
    Ping nettverket med multicast adressen ping 224.0.0.1 .
    Deretter sjekker man arp tabellen med arp -a .
    RPi3+ sitt LAN nettverkskort (kabel) vil ha MAC adresse som starter med B8:27:EB:xx:xx:xx​
    Er man helt i blinde er følgende en effektiv metode
    1. Slette den lokale arp tabellen med arp -d * (krever admin rettigheter på W10 se tip nederst).
    2. Ta så strømmen av enheter man søker finne IP adressen til
    3. ping 224.0.0.1 .
    4. Sjekk arp tabellen med arp -a . Linux er lettere å lese resultat ved ikke bruke -a
    5. Deretter sett strøm på den ukjente enheten og la den gjøre ferdig oppstart for så repetere ping/arp fra punkt 3 og 4. Det skal da kommet en ny enhet i listen som trolig er din ukjente enhet.

    Tip: enkel metode til å få admin rettigheter i ledertekstvindu på Windows er å høyreklikke Windows-knappen og velge Windows Powershell (Admin)
     
    Sist redigert:
    • Liker
    Reaksjoner: POB

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    LMS vs squeezeboxserver - Forvirret?

    Logitech Media Server is the new name for Squeezebox Server, starting with version 7.7. Before it was known as Squeezebox Server (version 7.4 to 7.6) and SlimServer (before 7.4)
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Unngå IP konflikt

    IP konflikt er når to enheter på nettet får samme IP adresse. Det som skjer er at man får masse pakketap som oppleves som tregt og hakket datakommunikasjon. Hvor den minst aktive enheten oftest faller helt av nettet uten at det løser problemet for den som noen ganger med litt flaks evner holde seg aktiv.

    Når man skal sette fast IP på sin nye RPi er det derfor lurt først å pinge nettverket for å se hvilke adresser som er aktive.
    Dette virker på både Windows og Linux fra et terminal/CMD vindu.
    ping 224.0.0.1 dette er en multicast adresse
    Deretter les arp tabellen med
    arp -a på linux utelat-a gjør listen enklere å lese

    I et typisk hjemmenettverk er det hjemmesentralen som deler ut IP adresser til klientene. Protokollen kalles DHCP og en bedre konfigurasjon vil segmentere adresseområdet til et begrenset adresseområde. F.eks. er standard for Telia sin hjemmesentral i 2022 at den deler ut adresser mellom 192.168.0.33 til 192.168.0.199. Det betyr at man kan velge en fast IP adresse i området 2-32 og 200-254 uten fare for at det plutselig deles ut en likedan adresse.

    Dessverre er det ikke alle rutere sin DHCP tjener som standard begrenser seg og deler gjerne ut alle adressene fra 2-254. 1 er normalt forbeholde til ruteren selv.

    Den optimale metoden er å konfigurere DHCP server til å dele ute en fast IP adresse bundet til MAC adressen på nettverkskortet på din RPi. Det forenkler konfigurasjon på RPi samt endringer man senere ønsker utføre på nettverket. Men det er ikke alle hjemmesentraler som lar brukere gjøre slike avanserte innstillinger.

    Telia sin hjemmesentral fra 2022 er en av dem som tillater dette via
    Nettverksinnstillinger -> Hjemmesentral -> Andre innstillinger
    statiskip.PNG



    Får man ikke sikret DHCP innstilling på sitt eget nett velg gjerne en veldig høy adresse da serveren likevel ofte praktiserer å dele ut adresser innenfor et begrenset område så lenge den har ledige adresser.
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Den største lydforbedring jeg har fått til med konfigurasjon av LMS innstillinger var ved å skanne og tagge mitt lokale flac-arkiv med loadgain https://github.com/Moonbase59/loudgain

    For deretter fra LMS aktivere Volume Adjustment/Replay Gain = Smart Gain på de enkelte spillerne på nettet.

    Diskusjonen tok plass her https://www.hifisentralen.no/forumet/threads/less-loss-med-sox-volume-kontrol-ikke-egentlig.101615/

    Dette var en av disse aha-opplevelsene hvor kona spør om gubben har gjort noe med stereoen uten at vi egenltig klarte definere hva som var anderledes annet at det oppleves ha mer ro i lydbildet/kroppen over lenger tids lytting.


    TIP: Om man av ulike årsaker mangler mulighet til å bruke Smart Gain kan lignende effekt oppnåes med å redusere det digitale signalet med -6.02 dB. Grunnen til akkurat dette tallet er at det flytter date en bit uten avrundingsfeil. Dette kan også implementere statisk på LMS. (se post #21)
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Spottify

    Pluggen for Spottify kalles Spotti og vil for enkelte systen kreve et par støtteplugger.
    Denne pluggen er litt spesiell ved at den foruten å ta funksjon som gateway også gjør konvertering av audiodata til 16 bit PCM 44,1 KHz.

    Dette er hva Spottify selv sier de gjøre med sitt musikkbibliotek.
    Audio file formats for Spotify
    Deliver your audio files to us in FLAC or WAV format (we highly recommend FLAC).
    When we get your audio files, we do the following:
    • Check they aren’t corrupt and the format container is known
    • Transcode the file into different delivery formats for our audio quality options:
      • Ogg/Vorbis (96, 160, 320 kbps)
      • AAC (128, 256 kbps)
      • HE-AACv2 (24kbps)
    • Calculate the loudness of the whole release and individual tracks using the ITU 1770 standard
    We also encrypt the audio files before they’re delivered to the platform.
    Det siste punktet er nok årsak til at Spotty gjør resampling av audiodata da dekryptering vil kreve at Spottify sin egen connector finnes på Player siden. Basert på at vi i pluggen kan velge 96, 160, 320 kbps får vi anta at det er Ogg/Vorbis LMS henter ned

    Spotty må manuelt aktiveres for den enkelte Player. Med Material Skin ta en titt under Extra player settings
    settingsplayer.jpg


    Spottify app på Android lister følgende kompatible 'connetorer' her i hjemmet hvor flere av dem er publisert via LMS.
    spotlist.jpg
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Styre LMS fra smart-TV'n

    Siden styreflaten egentlig er en webside vil de fleste fjernsyn med innebygget nettleser fungere til å kontrollere LMS.

    Vårt LG TV - C1 anno 2022 ser ut til å fungere perfekt med Material Skin sin HTML5 koding.
    Om det ikke virker på ditt TV forsøk om den klarer den eldre standardsiden på port [IP]:9000/default/
     
    Sist redigert:

    POB

    Hi-Fi freak
    Ble medlem
    26.09.2003
    Innlegg
    3.031
    Antall liker
    3.082
    Sted
    Kulturhovedstaden
    Torget vurderinger
    32
    Litt av en jobb du har lagt ned her (y) (y) .
    Har testet ut Material Skin etter tips fra deg i en annen tråd og det fungerer tålelig greit.
    Bruker det på et nettbrett og det er nok litt sirup både på nettbrettet og fra pc. Men bra oppslag på artist og albuminfo.

    Bruker ellers Orange Squeeze på nettbrett til å styre LMS med eget arkiv og Qobuz fra server og piCorePlayer på en RPI.
    Fungerer raskt og er stabilt.
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Feilsøking - Får ikke tilgang til LMS sin brukerflate (webside)

    Kan være en switch eller wi-fi ruter som behøver en omstart. Men om resten av nettet virker være i orden forsøk logge på RPi med din favoritt Telnet klient. Jeg bruker PuTTY og WSL Debian.
    Bash:
    sudo service logitechmediaserver restart
    Bash:
    sudo service logitechmediaserver stop
    
    sudo service logitechmediaserver start
    
    service logitechmediaserver status
    Omstart av Squeezelite
    Bash:
    sudo service squeezelite restart
    Om det ikke virker sudo service squeezelite force-reload


    Tip: Om du ikke husker navnet på service forsøk: service --status-all.
    Tip: Se post #25 hvordan forenkle denne prosessen.
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Litt av en jobb du har lagt ned her (y) (y) .
    Har testet ut Material Skin etter tips fra deg i en annen tråd og det fungerer tålelig greit.
    Bruker det på et nettbrett og det er nok litt sirup både på nettbrettet og fra pc. Men bra oppslag på artist og albuminfo.

    Bruker ellers Orange Squeeze på nettbrett til å styre LMS med eget arkiv og Qobuz fra server og piCorePlayer på en RPI.
    Fungerer raskt og er stabilt.
    Takker POB

    Jeg har tidligere postet om sirup og det kommer en egen post i denne tråden som viser hvordan gi LMS prioritet på Linux OS.

    Jeg tror årsaken til at Orange Sq oppleves kvikkere er at den i større grad bruker CLI protokollen. Samt den forsøker ikke rekke over like mye som Material Skin.
     
    • Liker
    Reaksjoner: POB

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Raskere responsen på LMS sin web-brukerflate og bla i Music Folder

    OBS - Server Priority ser ut til å ha en bug i LMS 8.2.0 på RPi-OS hvor endring ikke tar effekt.

    Inntil fiks foreligger kan man manuelt endre prioritet
    MERK AT DENNE BLIR BORDE VED OMSTART AV LMS

    Bash:
    sudo renice -18 -u squeezeboxserver && htop
    Denne mod'n vil overleve omstart:

    Rediger oppstartsfilen logitechmediaserver.service
    Bash:
    sudo nano /lib/systemd/system/logitechmediaserver.service
    Legg til følgende to linjer.
    Kode:
    [Service]
    
    #-----------------------------------------------------------------------
    # Set start up parameters, essentially replicating the SysV init script.
    #-----------------------------------------------------------------------
    
    CPUSchedulingPolicy=fifo
    CPUSchedulingPriority=22
    systemctl må laste daemon og lms på nytt
    Bash:
    sudo systemctl daemon-reload && sudo systemctl restart logitechmediaserver && htop
    Merk at om du bruker desktopversjon vil du trolig måtte velge et lavere tall 1-99.

    Om du bruker Material Skin ser det ut som http://192.168.0.xxx:9000/Material i stedet for http://192.168.0.xxx:9000/Material/ - altså glemmer den siste skråstreken svarer server med 301 Moved Permanently før du får en redirect. For å spare disse millisekundene kan det være lurt å endre Server -> Interface til den foretrukne brukerflaten og åpne siden med
    interface.PNG

    Man kan alltid nå den gamle fra 'http://192.168.0.xxx:9000/default/'


    Om web-brukerflaten oppleves å være litt treg forsøk endre prioritet for LMS servicen.
    På linux er oppgaveprioritet 0 standard. Positiv tall gir lavere prioritet og negativ verdi høyere prioritet. Lyst å lære mer les om nice

    Sett Server settings -> Performanse = -20
    prioritet.PNG


    Performance -> Database Memory Config
    Jeg har min RPi3+ med 1GB minne satt til Maximum 2+ GB med ideen at OS selv tar kontroll på cashe ved behov.

    Se også på hvordan instillinger for bilde-cash er konfigurert. Mine er alle satt til default.

    For å se en oversikt over hva som foregår på din RPi bruk
    Bash:
    htop
     
    Sist redigert:

    coolbiz

    Hi-Fi freak
    Ble medlem
    31.03.2006
    Innlegg
    9.429
    Antall liker
    5.083
    Sted
    Sydvestlandet
    Torget vurderinger
    2
    Feilsøking - Får ikke tilgang til LMS sin brukerflate (webside)

    Kan være en switch eller wi-fi ruter som behøver en omstart. Men om resten av nettet virker være i orden forsøk logge på RPi med din favoritt Telnet klient. Jeg bruker PuTTY.
    Bash:
    sudo service logitechmediaserver restart
    Bash:
    sudo service logitechmediaserver stop
    
    sudo service logitechmediaserver start
    
    service logitechmediaserver status
    Omstart av Squeezelite
    Bash:
    sudo service squeezelite restart
    Om det ikke virker sudo service squeezelite force-reload


    Tip: Om du ikke husker navnet på service forsøk: service --status-all. På en minimalisitsk headless RPi-OS er listen relativ kort.
    Det finnes også en LMS restart-funksjon i Material Skin, om jeg ikke husker feil.
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Det finnes også en LMS restart-funksjon i Material Skin, om jeg ikke husker feil.
    Det er riktig. Den er nyttig om man opplever at strømmetjenester eller annet går i heng.

    3 prikker i høyre hjørne > Settings -> Server så klikker man de 3 prikkene igjen og får valg om å slå av eller omstart.

    Men når det tryner skikkelig får man ikke opp brukerflaten til å betjene denne omstarten og må innom maskinen LMS kjører på.
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Avansert bruk - LMS oppstart

    Vanlig musikkelskende brukere av LMS kan ignorere denne posten.

    På tidligere linux-systemer brukte LMS start/stop bli kjørt fra script /etc/init.d/logitechmediaserver. Scriptet finnes der fortsatt men er ikke lenger i bruk på RPi-OS.

    RPi-OS har man nå tatt i bruk systemd hvor oppstartsfilen er å finne i:
    /lib/systemd/system/logitechmediaserver.service

    logitechmediaserver.service gir en god pekepinn til hvilke filer LMS bruker til konfigurasjon
    # filename: /lib/systemd/system/logitechmediaserver.service
    #=======================================================================
    # Unit section
    #=======================================================================

    [Unit]

    Description=Logitech Media Server

    # Ensures LMS is shutdown before network. And that the network service
    # has at least been started.

    After=network.target

    # Make LMS wait for network-online.target (if it gets started).
    # See notes below.

    After=network-online.target

    #-----------------------------------------------------------------------
    # Some notes on networking targets:
    #-----------------------------------------------------------------------

    # We leave it to the user to specify 'Wants=network-online.target' if he
    # chooses, because it may not suit all users. But we specify
    # 'After=network-online.target' because the SysV init script has
    # essentially behaved that way by virtue of the 'Required-Start: $all'
    # stanza included within it.
    # This is also the approach taken in Debian's & Ubuntu's implementation
    # of 'rc.local.service'.
    #
    # On systemd >= 217, user might execute:
    # 'systemctl add-wants logitechmediaserver.service network-online.target'
    #
    # The effects of the 'After' and 'Wants' 'network-online' stanzas are
    # very system dependent. They may or may not ensure that LMS starts up
    # after network connections have been established, and they may or may
    # not cause a delay in LMS start up.
    #
    # 'After=network-online.target' schedules LMS to start after the network
    # is fully up, whatever that may mean. But it is only effective if the
    # 'network-online.target' is active and, even then, it is only effective
    # if the user's system has been, or can be, configured to wait
    # appropriately for network connections to be established before
    # reaching this target.
    #
    # 'Wants=network-online.target' would activate (pull in) that target.
    #

    #=======================================================================
    # Service section
    #=======================================================================

    [Service]

    #-----------------------------------------------------------------------
    # Set start up parameters, essentially replicating the SysV init script.
    #-----------------------------------------------------------------------

    # Use of '/etc/default/logitechmediaserver' to set start up parameters
    # is supported, for consistency with the init script.
    # But setting 'SLIMUSER' is not supported. This unit file will always
    # start LMS as user 'squeezeboxserver'.
    # The user may override that, the methods available depend on the
    # installed version of systemd.

    # Note one consequence of this approach: LMS can now see environment
    # variables that correspond to the start up parameters, should it choose
    # to look (it doesn't at present). This behaviour is an artefact of the
    # approach adopted by this unit file and may well change. It should not
    # be relied upon in any way.

    # Set PATH - same value as set by SysV init script.

    Environment="PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

    # Default run time settings. These are used as arguments to LMS when it
    # is launched.

    Environment="LOGDIR=/var/log/squeezeboxserver/"
    Environment="PREFSDIR=/var/lib/squeezeboxserver/prefs"
    Environment="CACHEDIR=/var/lib/squeezeboxserver/cache"
    Environment="CHARSET=utf8"

    # Supplementary run time settings may be defined in
    # '/etc/default/logitechmediaserver'. Entries made here would override
    # the defaults defined above.

    EnvironmentFile=-/etc/default/logitechmediaserver

    #
    # If you want to add additional options use
    # /usr/sbin/squeezeboxserver --help
    # for the supported options and place them into the file:
    # /etc/default/logitechmediaserver.
    # For example:
    # SLIMOPTIONS="--failsafe --nomysqueezebox"
    #

    #-----------------------------------------------------------------------
    # Set up user and logging.
    #-----------------------------------------------------------------------

    # Remark: User can't be parameterized in a unit file. We could choose to
    # run LMS as root, and pass the USER option to it. But that adds
    # unnecessary risk.

    User=squeezeboxserver

    # LMS will fail to start if a writeable log directory does not exist and
    # it cannot create it. This can easily happen where '/var/log' is
    # mounted on a temporary file system and requires root permissions to
    # create.
    # This stanza instructs systemd to create the standard directory
    # '/var/log/squeezeboxserver' if it does not exist, with appropriate
    # permissions and ownership.
    # The user may specify a different directory by setting the 'LOGDIR'
    # run time variable, but it is then his responsibility to ensure that
    # it exists and is writeable.
    # Note: Only effective in systemd >= 235. Earlier releases will see
    # harmless 'Unknown lvalue' messages logged.

    LogsDirectory=squeezeboxserver
    LogsDirectoryMode=0755

    #-----------------------------------------------------------------------
    # Execution start
    #-----------------------------------------------------------------------

    # We want LMS to handle SIGPIPE, as it can help terminate misbehaving
    # transcoder pipelines.

    IgnoreSIGPIPE=no

    # LMS is stable. So we don't want systemd to restart it if it fails.
    # That just obscures errors.

    Restart=no

    # We do not instruct LMS to daemonize with the '--daemon' option,
    # systemd prefers that we don't. We need 'Type=simple', or 'Type=exec'.

    # Type currently defaults to 'simple', but may usefully default to
    # 'exec' in future ('exec' available in systemd >= 240). So left unset.

    #Type=simple

    ExecStart=/usr/sbin/squeezeboxserver --prefsdir $PREFSDIR --logdir $LOGDIR --cachedir $CACHEDIR --charset $CHARSET $SLIMOPTIONS

    #-----------------------------------------------------------------------
    # Execution termination
    #-----------------------------------------------------------------------

    KillMode=control-group
    KillSignal=SIGTERM

    # Never send HUP, LMS uses this to reinitialize cache, etc.
    SendSIGHUP=no

    # Same timeout as SysV init script. We definitely want to send that
    # final SIGKILL.
    TimeoutStopSec=30
    SendSIGKILL=Yes

    #=======================================================================
    # Install section
    #=======================================================================

    [Install]
    # Directly equivalent to run levels 2,3,4.
    # Also run level 5, 'graphical.target', because that pulls in
    # 'multi-user.target'.

    WantedBy=multi-user.target

    Heller enn å bruke de gamle service-kommandoene burde vi strengt tatt bli vant til å bruke
    Bash:
    systemctl status logitechmediaserver
    sudo systemctl restart logitechmediaserver
    etc...
    Mer info om systemctl:
    https://www.linode.com/docs/guides/introduction-to-systemctl
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Transcoding - Oppsampling med SoX

    Plugg'n C-3PO Transcoding Helper ser ut til å være det nærmeste man kommer enkelt på LMS om man ønsker forsøke transkode sin musikk.

    Jeg har blanded erfaring med denne pluggen, men ser nå at den er kraftig oppdatert siden jeg brukte den sist.
    Det er noen globale innstillinger for Server setting. Resten konfigureres for den enkelte spiller.
    c3po.PNG


    En tanke man kan ha i hodet når man holder på med dette er at for hver transkoding en digital musikkfil gjennomgår tilføres støy i form av ditter samt avrundingsfeil om man konverterer 44,1 Khz til f.eks 192 Khz. Søk heller å konvertere til verdier som tar utgangspunkt i om mediet er 44,1 eller 48 Khz x 2, 4, 8 eller 16.

    Nå overdramatiserer jeg problemet, men man fjerner seg fra bit-perfekt for hver gang filen manipuleres. Det som kanskje bør være målet er nå å oppsample til samme som DAC'n vil gjøre internt slik at denne slipper utføre enda en trankoding.

    Jeg vil samtidig foreslå at man forsøker justere ned volume til ideelt -5,14 dB for å sikre mot 'inter samples over' for musikkfiler med 0 dBFS. Eller bedre -6,02 dB for 16-bit filer som da gir heltall uten avrundingsfeil. Og samtidig deaktiverer Replay Gain om den er aktiv fordi den i de fleste tilfeller gir små 32-bit FP feil. Joda, helt minimalt, men nå forsøker vi jo optimalisere så... ;)

    Oppsampler man til 24-bit og søker utføre volumejustering vil følgende verdier sikre at man ikke behøver mer enn 24-bit (*1)
    Kode:
    dB        [FACTOR]  Bit-depth
          0     1.0000     16
    -1.1596     0.8750     19
    -1.8032     0.8125     20
    -2.4981     0.7500     18
    -3.2538     0.6875     20
    -4.0825     0.6250     19
    -4.9971     0.5625     19
    -6.0206     0.5000     16
    Resampler man til 16-bit er det kun v FACTOR 0.5 -6,0206 som gjelder om man ikke ønsker 32-bit FP avrunding.

    Om en velger utføre volumjustering som beskrevet over må Volum kontroll for den aktuelle spilleren deaktiveres om det skal ha ønsket effekt. Extra player settings -> Audio
    volume.PNG



    *1: Jeg er ikke sikker på hvor C-3PO justerer volumen. Om den gjør det er før resampling er trolig mediet ditt fortsatt 16-bit. Verd å lese seg opp på ;)
     
    Sist redigert:

    bambadoo

    Æresmedlem
    Moderator
    Ble medlem
    11.10.2002
    Innlegg
    22.650
    Antall liker
    11.766
    Sted
    Lørenskog
    Torget vurderinger
    16
    Hvorfor ikke gjøre resamplingen direkte i squeezelite? (via SOX).

    EDIT: Du kommer kanskje til det etterhvert ;)
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Hvorfor ikke gjøre resamplingen direkte i squeezelite? (via SOX).
    Lydmessig skulle vel det bli det samme vil jeg tro.

    Jeg vet dog ikke om Squeezeligt kan velge transkode basert på filformat eller om det kun er oppstartskommandoen man har mulighet til å manipulere?

    Vedrørende implementering av SoX på Squeezeligt vet du om noen hjelpeprogrammer?
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Avansert bruk - Administrere headless RPi

    Vanlige musikkelskende brukere av LMS kan ignorere denne posten.

    OS-X brukere kan enkelt logge på RPi fra et terminalvindu med ssh brukernavn@adresse
    Første ssh innlogging krever at man godkjenner ssh sertifikat.
    Kode:
    ssh pi@192.168.0.2

    Windows brukere jobber nomalt via en telnetklient hvor PuTTY et populær valg. En bedre men dog mer plasskrevende og tyngre løsning er Linux på Windows (WSL).
    Med WSL opplever man som bruker at man kan starte og kjøre Linux som om det er et hvilket som helt annet program man har på PC'n. Foruten å testkjøre programmer lokalt uten fare for å stoppe musikken kan man nå også koble til RPi med ssh brukernavn@adresse
    Mer info her: https://docs.microsoft.com/en-us/windows/wsl/

    Åpne Windwos Power Shell (admin) ved å høyreklikke Windows knappen
    Liste Linux distribusjoner tilgjengelig
    Kode:
    wsl --list --online
    Siden RPi-OS bygger på Debian virker det lurt å installere et system med samme pakke og katalogstruktur. Det er mulig å ha flere Linux distribusjoner på PC'n.
    Kode:
    wsl --install -d Debian
    Tip: Man kan har flere terminalvinduer åpen samtidig med samme eller ulike brukere logget in på RPi.

    Tip: Generelt jobber dataprogrammer i den katalogen man har navigert til. Det kan derfor være lurt å navigere til sin hjemmekatalog før man kjører ukjente kommandoer. cd (change directory) uten sti er en snarvei til /home/[bruker]. Man kan se at man er i hjemmekatalogen med ~ tegnet pi@LMS:~ $.
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Avansert bruk - Administrere headless RPi - Alisases

    Vanlige musikkelskende brukere av LMS kan ignorere denne posten.

    Noen kjekke aliases til LMS server'n. Logg på RPi terminal og lim inn all 'bash'-teksten nedenfor inkludert linjeskift og trykk enter.
    Neste gang man logger på kan man bruke nedefor snarveier i stedet for å skrive
    systemctl [kommando] logitechmediaserver og sudo nano [lms oppstartsfil]

    lmsstatus
    (trykk 'q' for å avslutte)
    lmsrestart
    lmsstart

    lmsstop
    lmseditstart
    lmshelp
    (lister disse kommandoene)

    Virker på RPi-OS hvor LMS kjører under systemd
    Bash:
    cd && echo 'alias lmsrestart="sudo systemctl restart logitechmediaserver"
    alias lmsstatus="systemctl status logitechmediaserver"
    alias lmsstart="sudo systemctl start logitechmediaserver"
    alias lmsstop="sudo systemctl stop logitechmediaserver"
    alias lmseditstart="sudo nano /lib/systemd/system/logitechmediaserver.service"
    alias lmshelp="echo 'lmsstatus lmsrestart lmsstart lmsstop lmseditstart lmshelp'"' >> .bash_aliases
    Merk at disse snarveiene (aliases) ikke er globale og gjelder kun for bruker som er innlogget når kommandoene over kjøres.
    Man kan legge til flere alias ved å redigere' .bash_aliases' (denne skjulte filen finnes normalt ikke på RPi-OS)


    Eldre installsjoner som bruker initd bruk denne
    Bash:
    cd && echo 'alias lmsrestart="sudo service logitechmediaserver restart"
    alias lmsstatus="service logitechmediaserver status"
    alias lmsstart="sudo service logitechmediaserver start"
    alias lmsstop="sudo service logitechmediaserver stop"
    alias lmseditstart="sudo nano /etc/init.d/logitechmediaserver"
    alias lmshelp="echo 'lmsstatus lmsrestart lmsstart lmsstop lmseditstart lmshelp'"' >> .bash_aliases

    Om du ikke vet om LMS kjører med initd eller systemd kjør service status
    Bash:
    service logitechmediaserver status
    Om Loaded lister 'logitechmediaserver.service' kjører LMS med systemd
    ● logitechmediaserver.service - Logitech Media Server
    Loaded: loaded (/lib/systemd/system/logitechmediaserver.service...
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    RPi3+ med HiFi Berry DAC+ DSP tenkt innbygget i en av våre Huldra 10
    Med denne heller upresise strømmåleren peaker forbruket under oppstart på 600 mA.

    strøm.jpg
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    I forbindelse med at jeg nullstiller og "bygger" på nytt HiFi Berry komboen min høster jeg litt erfaring som enda ikke har rukket skli av teflonhjernen.

    💡 Oppstartsalternativer inkl WiFi innstillinger og bruker/passord må lagres FØR man man klikker WRITE.

    rpi select.PNG
    rpi config.PNG
    rpi select2.PNG


    Etter at man gjør som meg og lagrer etter at kortet er ferdig klapper man seg på skulderen og sier bra gjort 🏆

    Første oppstart tok det 90 sekunder før den dukket opp i listen over wi-fi nettverksenheter på ruteren min som.


    Jeg har valgt å bruke RPi-OS Lite 32-bit på alle LMS enheter. Men førstegangsbrukere av Linux kommer trolig raskere i gang om de velger full versjon da man lettere kan håndterer USB disker og deling av filer med Samba. Ja, til og med LMS kan installeres via grafisk brukergrensesnitt ;)
    os.PNG
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Hvilken versjon av LMS skal jeg velge?

    Om det ikke er listet funksjonaitet du behøver i endring og feilrettingslisten (changelog) vil jeg råde til å velge den offisielle versjonen.
    Grunnen er at betaversjonene i nightly katalogen oppdateres i perioder ganske ofte. I seg selv ubetydelig problem bortsett fra om man har en full 4TB disk koblet til LMS og endringerne krever ny skanning av biblioteket. dette fra personlig erfaring.

    Eksempel på endring hvor 8.3.x beta er beste valg er om man har Tidal hvor støte for replay gain ikke finnes i nåværende offisiell versjon. Eller om LMS skal kjøre på MacOS da Apple fjernet Perl motoren må LMS nå selv installere nødvendig biblioteker.

    Denne siden lister endringer og feilretting fra og med versjon 8.0.0
    http://htmlpreview.github.io/?https://github.com/Logitech/slimserver/blob/public/8.3/Changelog8.html

    LMS har lang historie med sine røtter tilbake til år 2000 som offesielt produkt til Logitech Inc i 2006 kjøpte opp Slim Devices Inc og satt sitt navn på produktene. Etter Logitech gav opp selge playere fortsatte likevel utvikling av selve serverkoden som allerede var open sourche. En periode forsøkte enkelte gjøre LMS til 'master off all media streaming services'. Først med bilder og siden video. Fra 8.3.0 beta er det bestemt å gjøre LMS til dedikert audio server.

    Gjeldene offisiell versjon når dette skives er fortsatt 8.2.0
    men det finnes en 8.2.1 i beta hvor 64-bit Perl virker være den viktigste endringen.

    Domenene slimdevices.com og mysqueezebox.com er fortsatt registrert på Logitech Inc. SA.
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Fjernstyre RPi-OS Full med grafisk brukerflate fra Windows

    På RPi-OS fra remote SSH terminal kjør
    Bash:
    suso apt install xrdp
    eller fra RPi-OS desktop velg pakker som avbildet
    rdpdesktop.PNG


    Klikk Start -> Windows Tilbehør -> Tilkobling til eksternt skrivebord
    Bruk Vis alternativer nede i venstre hjørne og sett en skjermstørrelse som ikke kneler RPi.
    rdp2.PNG
    rdp3.PNG

    For deretter når sesjonen er aktiv bruk Zoom til å endre størrelse på vindu (klikk oppe i venstre hjørne på aktivt vindu).
    rdp4.jpg


    Ferdig snakka! - Lykke til!

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    <i>RealVNC klienten fikk jeg ikke til å virke. Vet ikke om den må ha brukerkonto? I vertfall er en timeout feilmelding for dårlig til bry seg bale videre med denne programpakken som mest søker betalende kunder.</i>


    Ønsker man nyttegjøre en gammel traver som TightVNC klient vil den feile med "No matching security types".
    Følgende endringer på RPi-OS via terminal eller desktop får liv i sakene men frarådes om man planlegger fjernstyre fra utsiden av eget nettverk.
    Bash:
    sudo nano /root/.vnc/config.d/vncserver-x11
    Legg til følgende tre linjer:
    Authentication=VncAuth
    Encryption=AlwaysOff
    Password=
    Sett passord:
    Bash:
    sudo vncpasswd -service
    Sjekk at passord ble oppdatert
    Bash:
    sudo cat /root/.vnc/config.d/vncserver-x11
    Restart sevice:
    Bash:
    sudo service vncserver-x11-serviced restart
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Ref post #26 viser den strømforbruk med HiFi Berry DAC+ med DSP chip ombord.

    En plain RPi3 som kun snurrer LMS service trekker langt mindre med sine 729 mW målt gjennomsnitt gjennom en klokketime i idle mode hvor den klokker ned CPU til 600MHz.

    Om vi legger til et tap på 20% i strømforsyningen + en klokketime med dobbelt forbruk som trolig gir oss mer enn 8 timer med musikk gir det oss et dagsforbruk på 2,187 Watt x 365 dager ≈ 0,8 KW i året. Altså ingen grunn til å slå av RPi server når den ikke er i bruk.
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    I forsøk på å få litt kjøtt på bena vedrørende konfigurasjon av oppsampling snurrer noe tanker i hodet.
    Designeren av C-3PO pluggen har som filosofi å gjøre cpu arbeid så lett som mulig på player. Dette slik jeg tolker det for å unngå generere støy med strømpeaker, samt sikre gjevn datastrøm hvor cpu ikke behøver gjøre annet enn å flytte data FIFO. Dette på bekostning av betydelig økning av data over nettverket.
    Mens jeg forstår tankesettet er jeg ikke så sikker på viktig dette er med USB DAC gitt musikkdata da klokkes gjennom enda to asynkrone buffere via en dataprotokoll.

    Men så fikk jeg det for meg at kanskje bør jeg teste litt hvilken reel båndbredde kan man få ut av nettverkskomponentene i mine gamle RPi3B før man bestemmer seg for oppsampling på server eller klient. Gitt nettverkskortene henger på et USB2 chipset er det et teoretisk maksverdi her på 480MHz om nettverkskortet var alene på en ideel USB2 bus, — noe som neppe er tilfelle. Samt jeg har en USB disk på samme bus.

    Først la oss se på tall for forventet datatrafikk
    Tabellen viser størrelse for PCM rådata, samt nødvendig kapasitet med estimert 2,8% overhead for TCP over IP. Om man skulle vurdere lagre ferdig oppsamplet medie viser kolonnen lengst til høyre hvor mye diskplass en sang på 3:30 minutter behøver.
    Kode:
     format       RAW     2,8%     filstørrelse
    rate/bit     kbps     Mbps     3:30 min sang
     44,1/16     1411,2   1,4508    37.044 MB
     44,1/24     2116,8   2,1761    55.566 MB
     88,2/24     4233,6   4,3522   111.132 MB
    176,4/24     8467,2   8,7043   222.264 MB
    352,8/24    16934,4  17,4086   444.528 MB
    705,6/24    33868,8  34,8172   889.056 MB

    Teste nettverkshastighet mellom LMS server og Squeezelite Player *

    Bash:
    sudo apt install iperf
    Mitt første møte med iperf viser som forventet at størrelse på pakker påvirker pakketap likt som hastighet. Mer overraskende ser det ikke ut som testen bli påvirket om LMS server samtidig strømmer flac media fra lokal USB disk ut til en Touch player :)

    Denne artikkel ble lagt til grunn for å eksprementere med -l (buffer) -w (window size) https://access.redhat.com/solutions/29455
    Jeg lærte etter vært at iperf benytter k for 1000 og K for 1024. Og internt vil den alltid tenke K. Defor man får feilelding om man skriver 352k men ok med 352K. Great feature not! 🤪

    På LMS server RPI3B med kablet LAN starter jeg iperf som service
    -u her betyr vi tester med UDP som iperf benytter til å teste pakketap.
    Bash:
    iperf -s -u -l 128K -w 352K -i 1
    På Player RPi3B 2,4GHz WiFi kjører jeg den som klient
    Bash:
    iperf -c 192.168.10.253 -u -t 60 -b 100M -i 1 -w 352
    Jeg lærer at båndbredden her først begrenset til 100Mbits i testen kommer tilbake rundt 38Mbps for min RPi3B.

    Men LMS bruker TCP til overføring av musikkdata så la oss teste ren hastighet.
    Server:
    Bash:
    iperf -s -l 128K -w 352K -i 1
    Klient: -d (dual) her testes både mottak og sending
    Bash:
    iperf -c 192.168.10.253 -d -t 6 -b 100M -i 1 -w 352K
    Båndbredde kommer inn rundt 38 Mbps med ethernett kablet server og trådløs 2.4Ghz klient i et WiFi6 mesh-nett
    Se tabellen lenger oppe for å sette dette i perspektiv. Vi ser at vi beveger oss i grenseland her om man skulle finne på forsøke 705,6/24 over WiFi.

    Bedre blir det heldigvis når man også plugger inn ethernett kabelen på Player siden
    Båndbredde med kablet nett kommer inn rundt 93,3 Mbps, samme RPi maskin brukt som over


    En observasjon som kan tale for å kjøre Squeezelite og LMS på samme maskin
    Bash:
    iperf -c 127.0.0.1 -t 6 -b 10000M -w 352K -i 1
    1,41 Gbps med TCP trafikk begge veier over lokal port. Øker til 1,9Gbps med trafikk en vei.
    UDP klarer den 590 Mbps hvor test begge veier rapporterer 'packets out of order'.


    Jeg er mest intressert i tema resampling på LMS for å nyttegjøre equalizer heller enn selve oppsamling. Men når man likevel kødder det til så er tanken å unngå ny transkoding i DAC.


    (*) NB: Test er utført med 2 stk RPi3B som server og player. Nettverkskort er forskjellig på ulike RPi modeller og blir bedre for hver modell hvor RPi4B ikke lenger deler bus med USB porten hvor man har diskene montert. Her ble jeg derfor veldig overrasket av at testen ikke ser ut til å bli påvirker om man faktisk streamer flac fra USB disk samtidig.
    Enhetene er koblet til en GS108Ev3 - 8-Port Gigabit Ethernet Smart Managed Plus Switch og WiFi6 er levert av ASUS ZenWiFi AX8
     
    Sist redigert:

    ketilb

    Hi-Fi entusiast
    Ble medlem
    13.10.2009
    Innlegg
    485
    Antall liker
    136
    Sted
    Sør-Helgeland
    Torget vurderinger
    15
    Opplever du med RPi OS, at strømbrudd krøpler LMS, så serveren ikke fungerer etterpå?


    Jeg har piCorePlayer/LMS på en RPi 4B, og LMS får ‘blackout’ når strømmen i huset går, eneste utvei er da av- og gjeninstallajson av LMS.

    Musikken ligger på ekstern USB harddisk. Jeg er mac-bruker, så filerne er AIFF og disken er HFS+ formattert. Harddisken er USB 3.0, så den er tilkoplet tilsvarende inngang på RPi.

    piCorePlayer har en notits om at LMS som server database applikasjon må lukkes ned på ordentlig vis (via ‘Shutdown’, og ikke bare dra ut støpslet), så problematikken er kjent, antar jeg.


    Delvis inspirert av denne tråd (og fordi jeg lenge har vært irritert over problemet) har jeg i dag prøvet med Raspberry Pi OS Lite (64-bit). Har ikke skjerm og tastatur, men Raspberry Pi Imager kan sette opp wifi og ssh når diskbildet brennes til SD-kortet (som du nevner i innlegg #3). Øvrige installasjoner og tilpasninger er foregått via shh i Terminal-appen på min mac.

    piCorePlayer/Squeezelite agerer (fortsatt) streamer på husets andre RPi (3B+), og jeg kontrollerer avspillng via iPeng appen på min iPhone. Dette fungerte fint med pCP/LMS, og fungerer også med RPi OS/LMS.


    Men.. Strømbrudd krøpler fortsatt serveren. Den eksterne harddisk er konfigurert som auto-mount ved hjelp av fstab. Ved Reboot fungerer auto-mount, men ikke ved strømbrudd.

    Så vidt jeg kan lese meg frem til, så kan auto-mount settes opp på 3 alternative måter - fstab, autofs og usbmount. Alle steder nevnes dog, at harddisken bør un-mountes korrekt for å unngå korrupte filer, og jeg antar det er her problemet oppstår ved strømbrudd. Ingen av alternativene synes dog å angi en måte å unngå problematikken på, så her er deg lurer på, om du har noe bud på en løsning?

    Synes det er litt rart, at det omtrent ingenting står på nettet om problematikken, er det bare jeg som har problemet?
     

    bambadoo

    Æresmedlem
    Moderator
    Ble medlem
    11.10.2002
    Innlegg
    22.650
    Antall liker
    11.766
    Sted
    Lørenskog
    Torget vurderinger
    16
    Aldri opplevd dette. Min LMS innstallasjon er på en virtuell linux server. Har ellers 3 stk rpi rundt omkring i huset og squeezelite klienter på hhv. mac og android telefon. Alt har virket upåklagelig og superstabilt i mange år. Strømbrudd og slikt har aldri skapt problem.
     

    ketilb

    Hi-Fi entusiast
    Ble medlem
    13.10.2009
    Innlegg
    485
    Antall liker
    136
    Sted
    Sør-Helgeland
    Torget vurderinger
    15
    Etter å ha jobbet litt mer med saken, ser det ut til at harddisken ikke mountes etter strømbrudd, og forøvrig heller ikke etter ‘sudo halt’, den må mountes manuelt.

    Da får jeg vel teste ut hhv. autofs og usbmount, kanskje auto-mount fungerer bedre der. Ellers får jeg leve med å mounte manuelt, når behovet en sjelden gang oppstår. Er jo raskt gjort, og i hvert fald raskere enn å av- og gjeninstallere LMS på pCP.

    Med en USB Tester målte jeg maks-trekk fra harddisken på 750 mA under oppstart. Jeg har bare den ene tilkoplet, og RPi 4B takler 1200 mA (for alle 4 porter samlet), så dette er uproblematisk. Litt kuriøst er det, at det fortsatt står 5V spenning på usb-portene, når RPi er stengt ned, helt inn til støpslet dras ut.
     

    bambadoo

    Æresmedlem
    Moderator
    Ble medlem
    11.10.2002
    Innlegg
    22.650
    Antall liker
    11.766
    Sted
    Lørenskog
    Torget vurderinger
    16
    Kanskje det holder å legge inn en "delay" i fstab?
     

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Ikke problem med krøpling av server her @ketilb. Men har slitt med det tidligere på x86 plattform. Under ser du hvordan jeg har min USB disk montert.
    Nøkkelen jeg fant for at server ikke skal gå i heng var ,nofails. Da gidder ikke kernel vente på at disken blir klar når systemet fyrer opp.
    Man kan da manuelt kjøre mount -a etterpå og fstab blir lest inn. Det skal være mulig sette en timeout også, men jeg har ikke lykkes få det til å virke.

    noatime sikrer at katalogen på USB disken ikke blir skrevet til hver gang det leses eller skrives til disken. Som selvsagt øker problematikken ved en uheldig avsluttning.

    PARTUUID=f8fa7cf2-46a4-4e18-8b2d-cd7cad7bcba2 /mnt/usb/ ntfs defaults,noatime,nofail 0 0
    Mener huske det er den siste nullen som forteller om disken din skal skannes med fsck ved oppstart. Om du setter den til 2 vil den teste om siste avsluttning skadet disken din. Jeg brukte ha den på den gang 500 GB var regnet som digert ;)

    Forresten ble jeg såpass frustrert med diskmount at jeg endte med å lage et skript for å lette oppgaven. Børstet støv av det og polert litt etter jeg startet denne tråden.
    Bash:
    wget 'https://github.com/StillNotWorking/LMS-helper-script/raw/main/mountdrive-0.0.3_all.deb'
    sudo apt install ./mountdrive-0.0.3_all.deb
    For å kjøre skriptet. Merk at det gjør ingen endringer før bruker velger partisjon fra liste og svarer ja/nei. Ctrl+C vil avbryte.
    Bash:
    sudo mountdrive
    Skriptet oppdaterer /etc/fstab med filformat og PARTUUID eller UUID den klarer lese av disken. Har man allerede laget et mount point i fstab bør dette slettes først da skriptet ikke lister opp allerede brukte (PART)UUID den leser av fstab.

    Ikke nødvendig å slette selve folderen til moint point som blir opprettet i /mnt/. Mulig man må endre rettigheter på dette moint point som standard tildeles root.
    /media/ er forbeholdt auto mount rutiner. Som jeg forresten holder på å forsøke finne ut av for RPi-OS Lite. Auto mount fungerer fint på Full versjonen, og Lite ser ut til å ha det meste på plass allerede. Så jeg spekulerer i om det kun mangler å få startet et daemon.

    mountdriveer aldri testet med HFS+ så kunne vært artig å høre om den evner finne ut av det ;)
     
    Sist redigert:

    PeriodeLytter

    Hi-Fi freak
    Ble medlem
    26.02.2013
    Innlegg
    3.650
    Antall liker
    3.360
    Litt kuriøst er det, at det fortsatt står 5V spenning på usb-portene, når RPi er stengt ned, helt inn til støpslet dras ut.
    Morsomt at du nevner. For å legge til den kurositeten deltok jeg i diskusjon med hun som i sin tid var delansvarlig for hvordan de aller første RPi kortene delte USB power og main power. Hun hadde følere ute for å høre hva brukerne tenkte om ulike design — inklusiv hvilke kontakter som burde benyttes. Her hadde de allerede bestemt å bruke standard USB ladere med ditto problemer mange senere skulle opplevde med periodiske feil grunnet manglende strøm ;)

    Argumentet som jeg la til grunn var hvordan Linksys sin NAS server NSLU2 https://en.wikipedia.org/wiki/NSLU2 hadde ekstern PSU koblet til samme 5V bus'n som USB porten var koblet til — her uten beskyttelse.
    Årsaken til dette designet var trolig at USB diskene på den tiden brukte fryktelig lang tid på å spinne opp og boote. Ved å sikre at USB porten hadde strøm fra get-go var sjansen større for at kernel ville se en disk når den var klar til å mounte. Samt dette gjorde det mulig å boote 3.part OS fra USB minnepenn.

    RPi sin strømforsyning lokalt på kortet i dag blitt lagt mer rafinert :)
     
    Sist redigert:

    ketilb

    Hi-Fi entusiast
    Ble medlem
    13.10.2009
    Innlegg
    485
    Antall liker
    136
    Sted
    Sør-Helgeland
    Torget vurderinger
    15
    Jeg har tatt utgangspunkt i dette link og tilpasset linjen i fstab så den ser sånn her ut hos meg:

    UUID= 157949fd-3ee5-329b-a5f4-a6b4cf627968 /media/usb hfsplus auto,nofail,noatime,users,rw,uid=pi4,gid=pi4 0 0

    Fordi ovenstående link er myntet på et usb-flashdrive, ikke et 2TB usb-harddrive som jeg bruker, har jeg også testet en annen linje (fra et annet link):

    UUID= 157949fd-3ee5-329b-a5f4-a6b4cf627968 /media/usb hfsplus defaults,auto,users,rw,nofail 0 0

    I begge tilfeller er det nødvendig å mounte manuelt ved strømbrudd/sudo halt. Har prøvd å endre <fsck> fra 0 til 2 (1 er reservert for root), uten å bemerke noen forskjell.

    Lurer på om jeg kanskje har vært for rask til å mounte manuelt, og burde ha ventet en stund for å se om disken auto-mounter over tid (1-2 minutter for eksempel).

    RPi booter jo som den skal, og LMS starter også, det er bare disken som ikke mounter, og da forsvinner den også fra folder-oversikten i LMS (Media Folders). I samme øyeblikk jeg mounter, dukker den opp der igjen, og LMS fungerer som vanlig. Rare greier, men i det minste er det enkelt å kjøre mount -a manuelt, tar bare et øyblikk.

    Skal se på scriptet ditt, kanskje jeg får det til. Deretter skal jeg se om får til å slå av HDMI, bluetooth, Audio Out, og kanskje også USB-spenningen (har en lineær, regulert psu liggende, som kunne føde USB-disken). Denne RPi 4B skal jo utelukkende fungerer som LMS server, så greit å forsøke å tilpasse den til formålet.

    Et lite spørsmål.. Er det en årsak til at du har valgt RPi-OS Lite i 32-bit utgaven , ikke 64-bit?
     
  • Laster inn…

Diskusjonstråd Se tråd i gallerivisning

  • Laster inn…
Topp Bunn