Kann FreeBSD Heimkino-(Sound)?

win2bsd

Well-Known Member
Moin!

Leider macht meine Atmos-Vorstufe Probleme bzw. hat wohl einen Defekt. Die ist sehr wichtig fuer mich, aber 0% fuer ihre Atmos faehigkeit.:ugly:
Den Kauf haette ich mir aus heutiger Sicht sparen koennen, habe den Aufwand fuer die 4 Deckenlautsprecher bisher noch nicht bedient.

Aus diesem Grund dachte ich mir ich gehe mal langsamer vor und hoere auch weiterhin Filme nur per 5.1. Mir waere ein USB-Audiogeraet sehr genehm. Kein kompatibles gefunden oder bin zu bloed es einzurichten. Zwei optisch leicht unterschiedliche Geraete bieten nur 4 statt 6 oder 8 Kanaele. (<vendor 0x0d8c USB Sound Device>)
Eine "SB Live!" (SB0060, CT4830) habe ich auch nicht zur analogen multichannel-Ausgabe bekommen.

Ein Test mit einem Mainboard (der alte home server) welches 6 analogen audio-Anschluessen war erfolgreich, die Grafikleistung koennte aber unzureichend fuer 4K sein. Ist nicht so wichtig, das meiste ist 2K und reicht mir auch. Wuerde aber gern etwas frischeres mit mehr Luftraum einsetzen.
Auch wenn ich mit FreeBSD keine Atmos-Vorstufe ersetzen kann, gefaellt mir der Gedanke weniger Geraete einzusetzen.

Es gibt hier ja einige aeltere Beitraege zum Thema. Wer nutzt FreeBSD aktuell als HTPC bzw. analoge audio-Ausgaenge fuer den "konservativen" Heimkino-sound?
 
FreeBSD 15.0 habe ich noch nicht getestet und es wäre aufgrund der großen Änderungen an OSS auf jeden Fall einen Versuch wert, aber in 14.3 funktionierte Passthrough von Atmos und DTS:x nicht. Der HDMI-Ausgang wurde zwar erkannt und ließ sich auch als Audiogerät auswählen, aber am Fernseher kam nichts an, was der verstanden hätte. Da man in so Unterhaltungselektronik ja nicht reinschauen kann, konnte ich das nicht sinnvoll debuggen. Klassisch per S/PDIF funktionierte es, aber das für mehr als AC3 nicht genug Bandbreite und ist damit witzlos.

Generische uaudio2-Geräte sollten eigentlich für analoges Surround funktionieren. In der Praxis hängt das allerdings sehr an der (Un)fähigkeit des Herstellers und der Firmware. Konkret empfehlen kann ich das nichts, aber vielleicht hat jemand anders Erfahrungen mit einem funktionierendem Gerät.
 
Danke Yamagi fuers feedback.
Es geht mir nun um den Wechsel von Passthrough auf Ausgabe ueber die analogen Klinkeanschluesse.(Siehe meine Frage). Ich wollte definitiv auf Atmos gehen, daher ja die Vorstufe. War also also Zukunftsinvenstition gedacht, die nun dahin ist. Kann mir also ein Leben weiterhin ohne Atmos vorstellen, aber nicht ohne 5.1/7.1 surround sound.
Da ein Test (FreeBSD 15, nur shell mit mpv) mit meinem alten board (Anno 2010, 6x Miniklinke) gut funktionierte, will ich es mal mit dieser Loesung versuchen.

USB waere super, schoen unabhaenigg vom mainboard.
 
FreeBSD spielt unter den hier aktiven Nutzern als HTPC wohl keine Rolle. Finde den Einsatz dennoch als spannend, wenn der kleine home server so oder so laeuft, warum nicht auch etwas Heimkino hier und da.

Es macht fuer mich bisher den Eindruck nur mit onboard-sound und dem snd_hda-Treiber 2k/4k Filme in 5.1/7.1 schauen zu koennen. Verstehe die Frage ob es eine "snd_hda-Karte" gibt die hier mal gestellt wurde.

Ich habe nun drei USB-Soundkarten getestet, zwei davon nutzen die gleich hardware. Die dinger laufen mit uaudio nur auf bis zu 4 Kanaelen. Eine Aureon 7.1 Space kann mit dem snd_envy24ht-Treiber nur 2 Kanaele.(?)

CSL USB 7.1 und Startech USB 7.1 geicher Vendor
(Aureon 7.1 USB ist hier nicht aufgefuehrt, Resultat aber das gleiche.)
Code:
uaudio0: <vendor 0x0d8c USB Sound Device, class 0/0, rev 1.10/0.10, addr 12>

pcm0: <vendor 0x0d8c USB Sound Device> on uaudio0 (1p:0v/1r:0v)
    snddev flags=0x33b8<BUSY,MPSAFE,REGISTERED,VPC,EQ,EQ_ENABLED,PVCHANS,RVCHANS>
    [dsp6.play.0]: spd 48000, fmt 0x00500010/0x00400010, flags 0x00000000, 0x00000071
        interrupts 0, underruns 0, feed 0, ready 0
        [b:3072/1536/2|bs:32720/4090/8]
        channel flags=0x0
        {userland} -> feeder_root(0x00500010) -> feeder_matrix(7.1 -> 4.0) -> feeder_volume(0x00400010) -> feeder_eq(0x00400010) -> {hardware}
    [dsp6.record.0]: spd 48000, fmt 0x00200010, flags 0x00000000, 0x00000021
        interrupts 0, overruns 0, feed 0, hfree 1536, sfree 32768
        [b:1536/768/2|bs:32768/256/128]
        channel flags=0x0
        {hardware} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> {userland}

Terratec Aureon 7.1 Space (Der Treiber kann nur Stereo?)
Code:
uaudio0: <vendor 0x0ccd Aureon 7.1 USB, class 0/0, rev 1.10/0.10, addr 7>

pcm0: <Envy24HT audio (Terratec Aureon 7.1 Space)> port 0xe080:32,0xe000:128 irq 19 on pci4 (1p:0v/5r:0v) default
    snddev flags=0x33bc<SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC,EQ,EQ_ENABLED,PVCHANS,RVCHANS>
    [dsp0.play.0]: spd 48000, fmt 0x08800010/0x00200010, flags 0x00000000, 0x00000071
        interrupts 0, underruns 0, feed 0, ready 0
        [b:16384/1024/16|bs:32768/4096/8]
        channel flags=0x0
        {userland} -> feeder_root(0x08800010) -> feeder_matrix(7.1 -> 2.0) -> feeder_volume(0x00200010) -> feeder_eq(0x00200010) -> {hardware}
    [dsp0.record.0]: spd 48000, fmt 0x00200010, flags 0x00000000, 0x00000021
        interrupts 0, overruns 0, feed 0, hfree 16384, sfree 32768
        [b:16384/256/64|bs:32768/256/128]
        channel flags=0x0
        {hardware} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> {userland}
    [dsp0.record.1]: spd 48000, fmt 0x00200010, flags 0x00000000, 0x00000021
        interrupts 0, overruns 0, feed 0, hfree 16384, sfree 32768
        [b:16384/256/64|bs:32768/256/128]
        channel flags=0x0
        {hardware} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> {userland}
    [dsp0.record.2]: spd 48000, fmt 0x00200010, flags 0x00000000, 0x00000021
        interrupts 0, overruns 0, feed 0, hfree 16384, sfree 32768
        [b:16384/256/64|bs:32768/256/128]
        channel flags=0x0
        {hardware} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> {userland}
    [dsp0.record.3]: spd 48000, fmt 0x00200010, flags 0x00000000, 0x00000021
        interrupts 0, overruns 0, feed 0, hfree 16384, sfree 32768
        [b:16384/256/64|bs:32768/256/128]
        channel flags=0x0
        {hardware} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> {userland}
    [dsp0.record.4]: spd 48000, fmt 0x00200010, flags 0x00000000, 0x00000021
        interrupts 0, overruns 0, feed 0, hfree 16384, sfree 32768
        [b:16384/256/64|bs:32768/256/128]
        channel flags=0x0
        {hardware} -> feeder_root(0x00200010) -> feeder_volume(0x00200010) -> {userland}




Schade wenn man wirklich aufs mainboard angewiesen ist, geht das mal hops muss man ggf. CPU und RAM auch gleich erneuern. Aber dennoch cool das es geht! Es gibt sogar HDMI eARC splitter die Audio extrahieren und dann per SPDIF weitergeben sollen. Wenn man einen SPDIF-Eingang unter FreeBSD nutzen koennte wuerde man so den content-streamer (Netflix und Co.) multi channel sound entnehmen koennen. Das teste ich ggf. mal.
 
Ein gangbarer Weg sich vom Mainboard unabhaengig zu machen ist ueber einen HDMI LPCM Audio extractor. Habe mit einem "Roline HDMI 4K2K LPCM 7.1 Extractor" sauberen konservativen Heimkinoton bis zu 7.1 Kanaelen an entsprechenden Miniklinkeanschluessen. Sehr wahrscheinlich ist das treiberabhaengig. Das aktuelle System wird mit einem intel i5 4690 betrieben an dem der extractor am onboard HDMI-Anschluss macht was er soll. Fuer 4K Video ist er etwas zu schwach.
Es gab ein Problem beim erneuten Abspielen von video files, video stream lief nicht an - gestartet und eingefroren, welches mit dem Eintrag "compat.linuxkpi.i915_disable_power_well=0" in der
loader.conf behoben wurde.

Der Hauptgrund fuer eine Heimkinovorstufe ist somit fuer mich geloest. Mit mpv, mplayer und ffmpeg kann man stereo files auf alle bis zu 7.1 Kanaele aufteilen, habe ich oft mit der Vorstufe gemacht um den Schalldruck weiter zu erhoehen. :ugly:

Side note:
Ich brauche 7.1 sound.^^ Habe wohl unterschaetzt wie grosz das Klangbild vertieft werden kann wenn sich in den audio tracks Muehe mit 7.1 gegeben wird.

Cool waere noch:
  • audio von einer eARC-HDMI Verbindung hoerbar machen
  • Bluetooth audio streaming
  • Atmos (Doch das geht, wenn Dolby will^^) ;]

Das erreichte hat nicht so viel mit FreeBSD zu tun. Das es mit FreeBSD moeglich ist, erfreut mich dennoch. :cool:
 
Guten Abend.

Mit einem eARC Audio Extractor ("HDmatters") klappt die eARC in Stereo.

HDMI-eARC-Quelle -> HDmatters 3.5 Klinke out -> HTPC line in -> input-Signal umleiten (cat /dev/dspX > /dev/dspY)

Es sind auch HDMI, TOSLINK und RCA fuer eine potentielle Mehrkanalaudio-Ausgabe vorhanden, sehe noch nicht wie ich ein moeglches surround sound-Signal abgreifen kann.
 
Code:
 Multichannel Audio
     Multichannel audio, popularly referred to as "surround sound" is
     supported and enabled by default.  The FreeBSD multichannel matrix
     processor supports up to 18 interleaved channels, but the limit is
     currently set to 8 channels (as commonly used for 7.1 surround sound).
     The internal matrix mapping can handle reduction, expansion or re-routing
     of channels.  This provides a base interface for related multichannel
     ioctl() support.  Multichannel audio works both with and without VCHANs.

     Most bridge device drivers are still missing multichannel matrixing
     support, but in most cases this should be trivial to implement.  Use the
     dev.pcm.%d.[play|rec].vchanformat sysctl(8) to adjust the number of
     channels used.  The current multichannel interleaved structure and
     arrangement was implemented by inspecting various popular UNIX
     applications.  There were no single standard, so much care has been taken
     to try to satisfy each possible scenario, despite the fact that each
     application has its own conflicting standard.
sysctl dev.pcm.%d.[play|rec].vchanformat ist hier vermutlich, was Dir noch fehlt.

Schau ausserdem mal, was cat /dev/sndstat ausgibt, damit du dem sysctl Befehl auch die richtige ID usw. mitgeben kannst. (%d und play|rec muss dann entsprechend ersetzt werden)
 
Hi. Danke fuers feedback midnight!

Davor muss der Signalweg klar sein, das meinte ich mit der Unklarheit beim Abreifen des Signals. Onboard habe ich noch keinen input fuer digital audio auf herkoemmlichen mainboards gesehen. An einer USB-soundcard die hier liegt sind zwei TOSLINK, je einer fuer input und output. Koennte wiederum auch mit einem Umleiten zum PCM-dev des HDMI-Ausgangs was sinnvolles rausfallen, werde ich bei Zeiten wohl mal testen. Streaming ist bei mir aber gering priorisiert, ich mag aus gewissen Gruenden Datentaeger.

Sollten bei digital audio die Kanaele nicht egal sein? Ich will ja "nur" den audio bitstream an HDMI weiterleiten, damit der LPCM extractor die Kanaele auf die analogen Ausgaenge verteilt, so wie auch beim DVD/BR schauen.

Vor dem Wunsch mutlichannel-audio von streaming-Anbietern zu hoeren kommt dann noch audio per Bluetooth auf die Ohren zu bringen. Das hatte ich oft mit meiner alten Vorstufe genutzt. So wie es aussieht geht das mit entsprechendem USB-Bluetooth-dongle (Stichwort PS4/5) unter FreeBSD auch problemfrei.
 
Haluziniert hier ein LLM gerade oder ist mit einer intel i5 12400T wirklich schon ein /dev/pcmX fuer den HDMI des iGPU zu sehen?
"pcmX: <Intel Alderlake (HDMI/DP 8ch)> (play)"

Eine G13 CPU macht as unter FreeBSD 15.0 hier noch nicht. ist aber auch ein UHD 770 iGPU glaube ich.

Der Hintergrund:
Bin doch ungeduldig und will von der alten i5-4660 auf 12400T aufruesten. Habe aber das Luftschloss "Es wird alles wie vorher funktionieren" noch nicht gebaut.^^
Hat jemand eine Alder-Lake CPU mit 730 UHD?
 
Zurück
Oben