Skip to content

Unix & Linux

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

Menu
  • Impressum
  • Meine 5 Unix-Regeln für das Leben!
Menu

jackd und USB-Audio ist manchmal nicht ganz einfach…

Posted on 19. December 202419. December 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

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 (15)
  • Befehle (23)
  • bhyve (7)
  • Firewall (10)
    • Ports (7)
  • FreeBSD (35)
  • Jails (3)
  • Linux (4)
  • Plasma (2)
  • Projekte (6)
  • Python (1)
  • Shell (15)
  • Sicherheit (10)
  • Web (8)
  • Windows (8)

Archiv

  • January 2025 (1)
  • December 2024 (4)
  • November 2024 (1)
  • October 2024 (3)
  • September 2024 (1)
  • May 2024 (1)
  • April 2024 (1)
  • March 2024 (2)
  • January 2023 (1)
  • May 2022 (1)
  • April 2022 (1)
  • March 2022 (2)
  • May 2021 (2)
  • November 2020 (1)
  • October 2020 (1)
  • July 2020 (1)
  • June 2020 (5)
  • April 2020 (1)
  • December 2018 (1)
  • September 2018 (1)
  • November 2017 (1)
  • August 2017 (1)
  • June 2017 (1)
  • December 2016 (1)
  • May 2016 (3)
  • March 2016 (1)
  • February 2016 (1)
  • January 2016 (1)
  • December 2015 (1)
  • October 2015 (2)
  • September 2015 (1)
  • June 2015 (3)
  • May 2015 (2)

Suche

Robert Friemer

Tags

.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