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*.

Fedora 23@Dell XPS 13 9350 – Teil 2: WLan & Bluetooth

Leider hat Dell es auch mit der neuen Iteration des XPS 13 nicht hinbekommen, von umgelabelten Broadcom WLan-Karten (im Fall des XPS 13 9350 eine Broadcom 4350) auf voll Linux kompatible Intel Karten umzusteigen.

Wer möchte, kann natürlich immer noch die M.2 Broadcom Karte einfach gegen eine Intel 7260 oder Intel 7265 austauschen. Für den Anfang kann man aber auch erstmal die Broadcom 4350 zum Laufen bekommen. Diese wird ab Kernel 4.4 unterstütz, so dass es noch etwas zu tun gibt.

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
  1. Zunächst kümmern wir uns um eine der Error-Meldungen in dmesg. Sie betrifft die Bluetooth Einheit der Broadcom Karte. Dafür einfach die fehlende Datei BCM-0a5c-6412.hcd herunterladen und nach „/lib/firmware/brcm/“ kopieren. Nach einem Neustart kann problemlos eine Maus u.a. per Bluetooth angeschlossen werden.
  2. Jetzt holen wir uns den Treiber für den Broadcom 4350 WLan Teil: brcmfmac4350-pcie.bin und kopieren ihn ebenfalls nach „/lib/firmware/brcm/“.
  3. Ich habe mich jetzt für die einfachste Variante entschieden und einfach Kernel 4.4.0-0.rc5 installiert (EDIT: alte Links gehen nicht mehr. Link auf alternative Kernel-Version mit Dank an Frank für seinen entsprechenden Kommentar). Dafür einfach die drei Dateien kernel-4.4.0-0.rc5.git1.2.fc24.x86_64.rpm, kernel-core-4.4.0-0.rc5.git1.2.fc24.x86_64.rpm und kernel-modules-4.4.0-0.rc5.git1.2.fc24.x86_64.rpm herunterladen. Diese dann mittels „rpm -ivh kernel-4.4.0-0.rc5.git1.2.fc24.x86_64.rpm kernel-core-4.4.0-0.rc5.git1.2.fc24.x86_64.rpm kernel-modules-4.4.0-0.rc5.git1.2.fc24.x86_64.rpm“ installieren.
  4. Jetzt noch die grub.cfg updaten (dabei den Eintrag von „acpi_osi=Linux i915.preliminary_hw_support=1“ für die Helligkeitssteuerung in „/etc/default/grub“ nicht vergessen): „grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg“. Nach dem Neustart sollte WLan dann endlich funktionieren.

 

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