Skip to content

Unix & Linux

Beastie und Penguin. Ein Weblog für FreeBSD und Linux.

Menu
  • Startseite
  • FreeBSD
  • Linux
  • Windows
  • Anwendungen
  • Befehle
  • Shell
  • Web
  • Allgemein
  • Impressum
  • Meine 5 Unix-Regeln für das Leben!
Menu

jackd und USB-Audio ist manchmal nicht ganz einfach…

Posted on 19. Dezember 202419. Dezember 2024 by Robert Friemer

Ich weiß nicht, ob es meinen Lesern genauso geht wie mir, aber wenn man mehrere USB-Audio-Interfaces und USB-Webcams hat dann kann es sein, dass die Erkennung nicht immer richtig läuft.

Ich verwende ein Focusrite Scarlett 2i2 und eine Scarlett 18i20. Also letzteres bekomme ich nicht so zum Laufen, dass alles gut geht. Besonders die Audio-Ausgabe des Firefox ist blöd und wenn man dann Online-Sessions mit Nextcloud Talk machen möchte und Audio geht nicht, dann ist das eben blöd.

Also arbeite ich im Moment hauptsächlich mit dem 2i2, aber ich möchte gerne auf das 18i20 gehen.

Gut, aber wo war ich… hmmmmmm … ach ja.

Je nach dem ob das 18i20 eingesteckt wird oder nicht, kann es passieren, dass die Erkennung falsch ist und dann das 2i2 nicht mehr der Device /dev/dsp4, sondern /dev/dsp5 ist. Die ersten 4 dsp’s sind von der Grafikkarte (Nvidia Quaddro P2200).

Jetzt hatte ich vor einiger Zeit einen Beitrag im Internet gefunden, der ein ähnliches Problem mit der Erkennung der Webcam und der passenden Reihenfolge hatten und das in der Datei /etc/rc.conf ganz gut gelöst hatte. Der Code in der Datei /etc/rc.conf ist eigentlich nur eine extra Zeile und die Anpassung der Flags

In der Zeile, die mit webcamd_DEV beginnt, wird über mehrere Pipes der USB-Name, den die Webcam hat, gefiltert und dann in den Flags dem Dienst zugewiesen. So kann man die Webcam anschließen, wo man will, diese wird immer zuverlässig gefunden.

Das sollte doch auch bei den USB-Audio-Interfaces gehen, halt nur mir angepassten Befehlen und geschickten Pipes.

Nachdem nun ab FreeBSD 14.2 die USB-Audio Interfaces mit Namen erkannt werden, geht das mit folgender Konfiguration in der /etc/rc.conf-Datei für jackd ganz gut. Voraussetzung ist, dass der jackd nicht über den DBUS, sondern als eigener Dienst in der rc.conf eingerichtet und gestartet wird. Wer mehr darüber erfahren möchte, der sollte ich diesen Beitrag ansehen. Der ist super, nur bekomme ich damit die Konfiguration mit Firefox und allen Programmen und das Umschalten, im Moment noch nicht hin.

Aber nun zurück zu der dynamischen Zuweisung des dsp-Devices zu jackd.

Es geht hier um die vorletzte Zeile. Wichtig ist, dass man den passenden Namen weiß. Dann kann man mit den ersten beiden Befehle schon einmal den pcm-Device finden, mit dem die Karte im System erkannt und eingerichtet ist.

# cat /dev/sndstat | grep "Scarlett 2i2"
pcm4: <Focusrite Scarlett 2i2 USB> on uaudio0 (1p:3v/1r:2v) default

Nun kann man den String mit über awk trennen. Das Trennungszeichen ist der Doppelpunkt und wir holen das letzte Zeichen als substring raus.

Das Endergebnis ist, wenn man den kompletten Befehlssatz ausführt:

# cat /dev/sndstat | grep "Scarlett 2i2" | awk -F ":" '{print substr($1,4,1) }'
4

Nun ja, das ist echt nicht spannend, oder? Aber wenn wird nun die letzte Zeile in der /etc/rc.conf ansehen, dann können wir dort die Nummer des dsp-Devices mit diesem Platzhalter ersetzen und beim nächsten Aufruf wird hier die richtige Nummer eingesetzt.

Also in meinen ersten Tests hat die ganz gut funktioniert und kann bei dem Einen oder Anderen auch so klappen.

Nachtrag:

Wie ich gerade durch meinen eigene Blog gegangen bin, habe ich diesen Beitrag von mir selbst gefunden: USB-Audio-Interface & Headset

Tja, da muss ich noch einmal ansehen und ausprobieren. 😉 😀

Robert Friemer

Robert Friemer

Ich arbeite seit Windows for Workgroups 3.11, mit Linux seit Version 2.0 und mit FreeBSD seit Version 3.8. In der IT habe ich schon so einige Irrungen und Wirrungen kommen und gehen gesehen. Und ist seit einigen Jahren arbeite ich (fast) Windows-los. Der kleine Daemon ist für mich mittlerweile ein treuer und zuverlässiger Begleiter in der IT geworden.

More Posts - Website

Kategorien

  • Allgemein (20)
  • Anwendungen (17)
  • Befehle (26)
  • bhyve (8)
  • Firewall (11)
    • Ports (7)
  • FreeBSD (38)
  • Jails (4)
  • Linux (5)
  • Plasma (3)
  • Projekte (6)
  • Python (1)
  • Shell (15)
  • Sicherheit (11)
  • Web (8)
  • Windows (8)

Archiv

  • Juni 2025 (1)
  • Mai 2025 (2)
  • Januar 2025 (1)
  • Dezember 2024 (4)
  • November 2024 (1)
  • Oktober 2024 (3)
  • September 2024 (1)
  • Mai 2024 (1)
  • April 2024 (1)
  • März 2024 (2)
  • Januar 2023 (1)
  • Mai 2022 (1)
  • April 2022 (1)
  • März 2022 (2)
  • Mai 2021 (2)
  • November 2020 (1)
  • Oktober 2020 (1)
  • Juli 2020 (1)
  • Juni 2020 (5)
  • April 2020 (1)
  • Dezember 2018 (1)
  • September 2018 (1)
  • November 2017 (1)
  • August 2017 (1)
  • Juni 2017 (1)
  • Dezember 2016 (1)
  • Mai 2016 (3)
  • März 2016 (1)
  • Februar 2016 (1)
  • Januar 2016 (1)
  • Dezember 2015 (1)
  • Oktober 2015 (2)
  • September 2015 (1)
  • Juni 2015 (3)
  • Mai 2015 (2)

Suche

Robert Friemer

Schlagwörter

.pkgsave 22 25 53 80 110 123 143 443 465 576 993 995 1194 Falsches Keyboard-Layout Fehler Firewall FreeBSD FreeBSD 10 FreeBSD Backup grundsätzliche Ports keine Eingabe Keyboard Layout Login Mail NTP openVPN Plasma Plasma5 Port Ports Secure Shell Sicherheit SSH System wieder herstellen Tastatur Tastatur kaputt TCP UDP Unsichere Router USB-Audio Webserver absichern Webserver Sicherheit Zeit-Server
©2025 Unix & Linux | Built using WordPress and Responsive Blogily theme by Superb