Audio/Sound@Teams & Webex Client mit Fedora 34 & SOF

Mit Fedora 34 wechselt die Distribution von PulseAudio auf PipeWire. Damit sind bei mir insbesondere zwei Soundprobleme bei den GNU/Linux-Versionen der Konferenzsoftware aus den Häusern Microsoft und Cisco verbunden:

  1. Microsoft Teams: Es gibt überhaupt keinen Audio-Output/ Sound. Der Client zeigt in den Einstellung schlicht „Lautsprecher: keine“ / „Speakers: None“ an.
  2. Cisco Webex: Der gerade erschienene GNU/Linux-Client bringt nur völlig übersteuerten und viel zu lauten Sound zustande.

Zu diesen Problemen scheint es nur bei Notebooks zu kommen, die Sound Open Firmware (SOF) nutzen, wie etwa das Lenovo ThinkPad X1 Carbon Gen8/9* oder das Dell XPS 13 9310* (beides im Übrigen Laptops die ansonsten exzellente Unterstützung für GNU/Linux mitbringen).

Der bei mir funktionierende Workaround für beide Probleme ist die folgende Anpassung.

UPDATE: Scheint leider doch nur für Microsoft Teams sicher zu funktionieren…

Getestet mit:

  • Dell XPS 13 9310
  • Fedora 34
  • Kernel 5.11.21-300
  • alsa-sof-firmware-1.6.1-4
  • pipewire-0.3.28-1

In der Config-Datei „/usr/share/pipewire/media-session.d/alsa-monitor.conf“ einfach direkt unterhalb der Zeile „rules = [“ folgende Regel einfügen:

{
    matches = [
        {
            node.name = "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink"
        }
    ]
    actions = {
        update-props = {
            node.pause-on-idle      = false
            audio.format           = "S16LE"
        }
    }
}

Hiermit wird das Standard-Sample-Format von PipeWire (s24-32le) auf das Standard-Format von PulseAudio (s16le) geändert.

Nach einem Neustart sollte bei Microsoft Teams die vorhandenen Audiogeräte wieder angezeigt werden und die Soundausgabe des Webex Clienst nicht mehr so laut und übersteuert klingen.

Weiterführende Quellen:

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.

GNU/Linux@Dell Latitude 7490: Scrollen mit mittlerer TrackStick-Taste

Im Gegensatz zu den TrackPoints bei Lenovo Notebooks kann der TrackStick des Dell Latitude 7490 nicht ohne Anpassungen in Kombination mit der mittleren TrackStick-Taste zum Scrollen benutzt werden. Es gibt aber sowohl für X11 als auch Wayland eine Möglichkeit, dem Latitutde middle-button-scroll beizubringen. Bei mir funktioniert beides unter Fedora 29.

Unter X11

Wer noch X11 nutzt, hat es am Einfachsten. Hier muss nur eine Konfiguration für libinput erstellt werden. Also einfach den folgenden Inhalt kopieren und als Datei unter „/etc/X11/xorg.conf.d/40-libinput-trackpoint.conf“ oder „/usr/share/X11/xorg.conf.d/40-libinput-trackpoint.conf“ speichern.

Datei „40-libinput-trackpoint.conf“

Section "InputClass"
        Identifier "Trackpoint Scroll"          
        MatchIsPointer "on"                    
        MatchDevicePath "/dev/input/event*"  
        Option "ScrollMethod" "button"
        Option "ScrollButton" "2"
        Driver "libinput"                          
EndSection

Wer statt libinput lieber evdev nutzen möchte, findet bei Francesco Provino eine alternative Konfiguration.

Credit/Quelle: askubuntu.com


Unter Wayland

Unter Wayland ist eine einfache Anassung per libinput Konfiguration nicht möglich. PeterCyx hat aber eine (vielleicht nicht unbedingt schönen, aber funktionierenden) Workaround gefunden. Dafür den folgenden Inhalt als Datei unter „/usr/lib/hook/hook.c“ speichern.

Datei „hook.c“

#define _GNU_SOURCE
#include <dlfcn.h>
#include <libinput.h>

typedef const char* (*orig_get_name_t)(struct libinput_device *device);

const char* libinput_device_get_name(struct libinput_device *device) {
  set_scroll_emulation(device); // Inject the code to set scrolling emulation
  orig_get_name_t orig_get_name;
  orig_get_name = (orig_get_name_t) dlsym(RTLD_NEXT, "libinput_device_get_name");
  return orig_get_name(device);
}

void set_scroll_emulation(struct libinput_device *device) {
  libinput_device_config_middle_emulation_set_enabled(device, LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED);
  libinput_device_config_scroll_set_method(device, LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN);
  libinput_device_config_scroll_set_button(device, 2);
}

Als nächstes müssen die zum Kompilieren noch fehlenden Dateien nachinstallierte werden. Anschließend den Kompilierbefehl ausführen.

sudo dnf install libinput-devel libudev-devel
sudo gcc -shared -ldl -linput -fPIC hook.c -o hook.so

Jetzt noch den folgenden Inhalt zum Einbinden der Library in der Datei „/etc/profile.d/libinput.sh“ speichern.

Datei „libinput.sh“

export LD_PRELOAD="$LD_PRELOAD /usr/lib/hook/hook.so"

Nach einem Neustart sollte jetzt das Scrollen mittels mittlerem TrackStick-Button problemlos funktionieren.

Credit/Quelle: PeterCyx

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.

Fedora 23@Dell XPS 13 9350: Was geht?

Die folgenden Ausführungen beziehen sich auf:

  • Dell XPS 13 9350* 8GB / 256GB SSD mit BIOS Version 1.1.7
  • Fedora 23 mit Kernel 4.2.3.300 bzw. 4.4.0-0.rc5 (nur WLan)

Out of the Box (nachdem man die Installationsprobleme ausgeräumt hat)  sieht es wie folgt mit der Funktionsfähigkeit aus:

 Funktion  Stand der Dinge
Touchpad TapToClick und TwoFingerScroll funktionieren problemlos. Bei Nutzung des Synaptics Treibers leider keine Handballenerkennung/ palm detection. Soll mit libinput funktionieren (noch nicht getestet). In sehr seltenen Fällen wird das Anheben des Fingers nicht registriert und stattdessen Text markiert.
Tastatur In sehr seltenen Fällen kommt es immer noch vor, dass vereinzelt ein Buchstabe doppelt ausgegeben wird.
USB-C -> HDMI Externer FullHD Monitor funktioniert mit Leicke USB-C auf HDMI Adapter problemlos.
USB-C -> USB-A Festplatte oder USB-Stick über USB-C auf USB-A Adapter werden nicht erkannt. Anstecken löst kein UDEV Event aus.
SD-Kartenleser Funktioniert problemlos.
Kamera Nicht getestet, sondern im EFI/BIOS gleich deaktiviert.
Audio Soundausgabe funktioniert auf Anhieb ohne lästige Neustarts obwohl vorher Windows lief.
Mikrofon funktioniert.
WLan Funktioniert nur nach Treiberdownload und Installation von Kernel 4.4.
Bluetooth Firmware Datei BCM-0a5c-6412.hcd fehlt und muss erst heruntergeladen werden.
Standby Standby beim Schließen des Notebookdeckels funktioniert. Es treten allerdings ein paar ata_scsi Error auf.
Shortcuts Stand der Dinge
Bildschirmhelligkeit F11/F12 und einstellen der Helligkeit über Menü funktionieren nur mit Kernel cmdline-Parametern „acpi_osi=Linux i915.preliminary_hw_support=1“.
Keyboard Backlight F10 funktioniert. Helligkeit kann auch in drei Schritten (0: AUS, 1: gedimmt, 2: hell) über „/sys/class/leds/dell::kdb_backlight/brightness“ gesteuert werden.
Multimedia F4/F5/F6 funktionieren wenn bspw. Rhythmbox läuft.
Lautstärke F1/F2/F3 funktionieren.
Fn-Lock Fn+Esc schaltet FN-Lock an/aus.
Suche F9 ruft die Suche von Gnome 3 auf.
Flugmodus Fn+“Druck“ liefert erstmal nur „dell_wmi: Unknown key 153 pressed“.
Externer Bildschirm F8 ohne Funktion.
--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.