Getting Garuda Dr460nized KDE to run on Surface Pro 5

Hello,

First I want to say how much I love Garuda Linux. I have always preferred Arch distros, but Garuda runs so well, and performs great on all my systems. With that in mind I have one system I cant get to completely work.

That is my Surface Pro 5. Garuda in general runs great in laptop mode, however unfortunately I cant seem to work out how to get the touchscreen to work.

I have tried:

  • Running in Xorg
    *Loading the hid_multitouch module in rc.local (and it is running)
  • Running in in Wayland (Currently on that trying, touchscreen shows no device)
  • I have tried installing libwacom.surface
  • I have looked at xinput -list and it shows no touchscreen
  • I have looked at libwacom-list-local-devices and it shows no known devices
    *I have tried to run iptsd /dev/hidraw0 and it reports no display config (this may be something and I am trying to determine what values I may need an where (also not as versed in Wayland as I am Xorg so may switch back) ---- Also got /dev/hidraw0 from dmesg output.

I have tried other distros (Endeavor most recently) and most of them work as soon as I install and boot the surface kernel. But I really only want this on Garuda since it is far superior :smiley:

I have also explored udev rules making sure something wasnt getting blacklisted (not that it would with out me doing it).

I have also searched the forums here and on the Arch wiki and tried everything I can find in both locations to no avail.

At this point I am a bit lost as to why I cant get this to work. And why from a Garuda standpoint it seems at least at some level there is no touchscreen.

Again Garuda runs great on this tablet, just only as a laptop with the keyboard/touchpad cover installed, really would love touchscreen

I am running the latest "Raptor" 230305 updated to today (10 March 2023)

If anyone has any advise or pointers on how to get the touchscreen to show (in either Xorg or Wayland) I would be eternally grateful. Also let me know if there is a guide on what to possibly configure in either Wayland or Xorg if that is my issue.

Thanks in advance and below is the output of garuda-inxi:

╭─[email protected] in ~
╰─λ garuda-inxi
System:
Kernel: 6.2.2-arch1-2-surface arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-surface
root=UUID=0f78d28a-4e79-4784-850c-353f43d5ae4c rw [email protected]
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
resume=UUID=30a3cc19-8c96-4a63-851b-18c781c41aba loglevel=3
Desktop: KDE Plasma v: 5.27.2 tk: Qt v: 5.15.8 wm: kwin_wayland vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Laptop System: Microsoft product: Surface Pro
v: 124000000000000000000000D:0B:09F:5C:09P:38S:01E:0
serial: <superuser required> Chassis: type: 9 serial: <superuser required>
Mobo: Microsoft model: Surface Pro serial: <superuser required>
UEFI: Microsoft v: 238.167.768 date: 05.07.2014
Battery:
ID-1: BAT1 charge: 35.0 Wh (100.0%) condition: 35.0/45.0 Wh (77.9%)
volts: 8.6 min: 7.6 model: SMP M1009169 type: Li-ion serial: <filter>
status: full cycles: 93
CPU:
Info: model: Intel Core i5-7300U bits: 64 type: MT MCP arch: Amber/Kaby Lake
note: check gen: core 7 level: v3 note: check built: 2017
process: Intel 14nm family: 6 model-id: 0x8E (142) stepping: 9
microcode: 0xF0
Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
L3: 3 MiB desc: 1x3 MiB
Speed (MHz): avg: 699 high: 700 min/max: 400/3500 scaling:
driver: intel_pstate governor: powersave cores: 1: 700 2: 699 3: 700 4: 700
bogomips: 21607
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel HD Graphics 620 vendor: Microsoft driver: i915 v: kernel
arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports: active: eDP-1
empty: DP-1, DP-2, HDMI-A-1, HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:5916
class-ID: 0300
Display: wayland server: X.org v: 1.21.1.7 with: Xwayland v: 22.1.8
compositor: kwin_wayland driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0
Monitor-1: eDP-1 res: 2027x1351 size: N/A modes: N/A
API: OpenGL v: 4.6 Mesa 22.3.6 renderer: Mesa Intel HD Graphics 620 (KBL
GT2) direct-render: Yes
Audio:
Device-1: Intel Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging
Unit driver: ipu3-imgu alternate: ipu3_imgu bus-ID: 00:05.0
chip-ID: 8086:1919 class-ID: 0480
Device-2: Intel CSI-2 Host driver: ipu3-cio2 alternate: ipu3_cio2
bus-ID: 00:14.3 chip-ID: 8086:9d32 class-ID: 0480
Device-3: Intel Sunrise Point-LP HD Audio driver: snd_hda_intel v: kernel
alternate: snd_soc_skl,snd_soc_avs bus-ID: 00:1f.3 chip-ID: 8086:9d71
class-ID: 0403
Sound API: ALSA v: k6.2.2-arch1-2-surface running: yes
Sound Interface: sndio v: N/A running: no
Sound Server-1: PulseAudio v: 16.1 running: no
Sound Server-2: PipeWire v: 0.3.66 running: yes
Network:
Device-1: Marvell 88W8897 [AVASTAR] 802.11ac Wireless driver: mwifiex_pcie
v: 1.0 pcie: gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 01:00.0
chip-ID: 11ab:2b38 class-ID: 0200
IF: wlp1s0 state: down mac: <filter>
Device-2: Realtek RTL8153 Gigabit Ethernet Adapter type: USB driver: r8152
bus-ID: 1-1.4.4.2:6 chip-ID: 0bda:8153 class-ID: 0000 serial: <filter>
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth:
Device-1: Marvell Bluetooth and Wireless LAN Composite type: USB
driver: btusb v: 0.8 bus-ID: 1-5:7 chip-ID: 1286:204c class-ID: e001
serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 0 state: down
bt-service: enabled,running rfk-block: hardware: no software: no
address: <filter>
Drives:
Local Storage: total: 704.61 GiB used: 10.51 GiB (1.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Toshiba model: N/A
size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 15.8 Gb/s
lanes: 2 type: SSD serial: <filter> rev: 0AMS0102 temp: 36.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 type: USB model: USB3.2 FLASH DRIVE
size: 466.14 GiB block-size: physical: 512 B logical: 512 B type: SSD
serial: <filter> rev: 1100 scheme: MBR
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
Partition:
ID-1: / raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 7.68 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
ID-2: swap-2 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
System Temperatures: cpu: 44.0 C pch: 37.0 C mobo: N/A
Fan Speeds (RPM): N/A
Info:
Processes: 206 Uptime: 13m wakeups: 2 Memory: 7.68 GiB
used: 3.27 GiB (42.6%) Init: systemd v: 253 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 Packages: pm: pacman pkgs: 1485
libs: 379 tools: octopi,pamac,paru Shell: fish v: 3.6.0 default: Bash
v: 5.1.16 running-in: konsole inxi: 3.3.25
Garuda (2.6.15-1):
System install date:     2023-03-09
Last full system update: 2023-03-10
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       Probably (Run as root to verify)
Failed units:

╭─[email protected] in ~ took 2s
╰─λ cat /etc/rc.local
File: /etc/rc.local
modprobe hid_multitouch

╭─[email protected] in ~ took 26ms
╰─λ xinput -list
WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:12                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:12              id=7    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer-gestures:12              id=8    [slave  pointer  (2)]
⎜   ↳ xwayland-touch:12                         id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ xwayland-keyboard:12                      id=9    [slave  keyboard (3)]

╭─[email protected] in ~ took 8ms
╰─λ libwacom-list-local-devices
Failed to find any devices known to libwacom.

╭─[email protected] in ~ took 735ms
╰─λ sudo iptsd /dev/hidraw0
[sudo] password for loki:
[09:02:09.898] [error] No display config for this device was found!

╭─[email protected] in ~ as 🧙 took 8s
[🔴] × garuda-inxi
System:
Kernel: 6.2.2-arch1-2-surface arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-surface
root=UUID=0f78d28a-4e79-4784-850c-353f43d5ae4c rw [email protected]
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
resume=UUID=30a3cc19-8c96-4a63-851b-18c781c41aba loglevel=3
Desktop: KDE Plasma v: 5.27.2 tk: Qt v: 5.15.8 wm: kwin_wayland vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Laptop System: Microsoft product: Surface Pro
v: 124000000000000000000000D:0B:09F:5C:09P:38S:01E:0
serial: <superuser required> Chassis: type: 9 serial: <superuser required>
Mobo: Microsoft model: Surface Pro serial: <superuser required>
UEFI: Microsoft v: 238.167.768 date: 05.07.2014
Battery:
ID-1: BAT1 charge: 35.0 Wh (100.0%) condition: 35.0/45.0 Wh (77.9%)
volts: 8.6 min: 7.6 model: SMP M1009169 type: Li-ion serial: <filter>
status: full cycles: 93
CPU:
Info: model: Intel Core i5-7300U bits: 64 type: MT MCP arch: Amber/Kaby Lake
note: check gen: core 7 level: v3 note: check built: 2017
process: Intel 14nm family: 6 model-id: 0x8E (142) stepping: 9
microcode: 0xF0
Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
L3: 3 MiB desc: 1x3 MiB
Speed (MHz): avg: 700 min/max: 400/3500 scaling: driver: intel_pstate
governor: powersave cores: 1: 700 2: 700 3: 700 4: 700 bogomips: 21607
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel HD Graphics 620 vendor: Microsoft driver: i915 v: kernel
arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports: active: eDP-1
empty: DP-1, DP-2, HDMI-A-1, HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:5916
class-ID: 0300
Display: wayland server: X.org v: 1.21.1.7 with: Xwayland v: 22.1.8
compositor: kwin_wayland driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0
Monitor-1: eDP-1 res: 2027x1351 size: N/A modes: N/A
API: OpenGL v: 4.6 Mesa 22.3.6 renderer: Mesa Intel HD Graphics 620 (KBL
GT2) direct-render: Yes
Audio:
Device-1: Intel Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging
Unit driver: ipu3-imgu alternate: ipu3_imgu bus-ID: 00:05.0
chip-ID: 8086:1919 class-ID: 0480
Device-2: Intel CSI-2 Host driver: ipu3-cio2 alternate: ipu3_cio2
bus-ID: 00:14.3 chip-ID: 8086:9d32 class-ID: 0480
Device-3: Intel Sunrise Point-LP HD Audio driver: snd_hda_intel v: kernel
alternate: snd_soc_skl,snd_soc_avs bus-ID: 00:1f.3 chip-ID: 8086:9d71
class-ID: 0403
Sound API: ALSA v: k6.2.2-arch1-2-surface running: yes
Sound Interface: sndio v: N/A running: no
Sound Server-1: PulseAudio v: 16.1 running: no
Sound Server-2: PipeWire v: 0.3.66 running: yes
Network:
Device-1: Marvell 88W8897 [AVASTAR] 802.11ac Wireless driver: mwifiex_pcie
v: 1.0 pcie: gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 01:00.0
chip-ID: 11ab:2b38 class-ID: 0200
IF: wlp1s0 state: down mac: <filter>
Device-2: Realtek RTL8153 Gigabit Ethernet Adapter type: USB driver: r8152
bus-ID: 1-1.4.4.2:6 chip-ID: 0bda:8153 class-ID: 0000 serial: <filter>
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth:
Device-1: Marvell Bluetooth and Wireless LAN Composite type: USB
driver: btusb v: 0.8 bus-ID: 1-5:7 chip-ID: 1286:204c class-ID: e001
serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 0 state: down
bt-service: enabled,running rfk-block: hardware: no software: no
address: <filter>
Drives:
Local Storage: total: 704.61 GiB used: 10.51 GiB (1.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Toshiba model: N/A
size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 15.8 Gb/s
lanes: 2 type: SSD serial: <filter> rev: 0AMS0102 temp: 41.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 type: USB model: USB3.2 FLASH DRIVE
size: 466.14 GiB block-size: physical: 512 B logical: 512 B type: SSD
serial: <filter> rev: 1100 scheme: MBR
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
Partition:
ID-1: / raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
used: 10.51 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 7.68 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
ID-2: swap-2 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
System Temperatures: cpu: 54.0 C pch: 42.0 C mobo: N/A
Fan Speeds (RPM): N/A
Info:
Processes: 199 Uptime: 30m wakeups: 2 Memory: 7.68 GiB
used: 3.38 GiB (44.0%) Init: systemd v: 253 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 Packages: pm: pacman pkgs: 1485
libs: 379 tools: octopi,pamac,paru Shell: fish v: 3.6.0 default: Bash
v: 5.1.16 running-in: konsole inxi: 3.3.25
Garuda (2.6.15-1):
System install date:     2023-03-09
Last full system update: 2023-03-10
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       Probably (Run as root to verify)
Failed units:

Welcome :slight_smile:

Touchscreen
From Arch Wiki Microsoft Surface – wiki.archlinux.de

Note: Since kernel version 5.5 the mutlitouch does not work anymore. The only solution is to get the LTS packages. The LTS packages have basically the same name as the previous packages,
but they always have the suffix -lts at the end, e.g. linux-headers-surface-lts

To use the touchscreen, you need to install the following packages:

libwacom
libwacom-surfaceAUR

Attention: The package libwacom should be installed first, because libwacom-surfaceAUR only contains patches for libwacom! libwacom, is therefore only changed!

Now you only have to reboot and then you should be able to use the touchscreen.

Translated with DeepL Translate: The world's most accurate translator (free version)

2 Likes

Thanks SGS,

A few questions on your post. I didn't list this in the original post, but I did try the LTS kernel (Although I can only find 6.1.15-LTS) and it did not work. Also while not a garuda issue persay, I cant get to a repo that has anything other that 6.2.2 Kernel from surface-linux.

Also I am curious on the libwacom followed by libwacom-surfaceAUR. I have installed those in that specific order (mind you with both the 6.2.2 and 6.1.15-LTS kernels) and when I install AUR\libwacom-surface it conflicts with libwacom and wants to de-install that one. Is there another one out there I am not finding for libwacom-surface? I may be being literal, but one called libwacom-surfaceAUR and not one from AUR called libwacom-surface.

At anyrate thank you for your help. I am stuck now trying to figure out how to get a kernel lower than 5.5 in Garuda (since as mentioned above the LTS kernel I tried previously is 6.1.15. or how to get the linux-surface kernel to install anything but the latest.

Also to add more, when trying this on Endeavor (again prefer Garuda) , the touchscreen ran just fine and it was at 6.2.2 of the kernel. What I don't know is if it was single-touch or multitouch, but the touchscreen worked. I cant get any touchscreen input on Garuda even single-touch.

Let me know if there is more advice on how to get such an old LTS kernel and where the libwacom-surfaceAUR installation that doesn't de-install libwacom may be.

Again, thanks in advance.

Edited: I also did downgrade the surface kernel to 5.15 as other threads mentioned and booted off that (older than I thought I would have to go, but apparently 5.15 is a pretty good point with surface-linux as I understand it (with multitouch, etc...) Surprisingly I had no other issues, it boots fine, but again while laptop mode works just great, no touchscreen capabilities. I feel like I am missing something in the config, maybe in either Xorg or Wayland. But still does not function.

Let me know if there are any other pointers on this, and thanks again.

I think this may be a case for sudo pacman -S --overwrite \* package_name (which is "unclean" but should get the job done).

As for the old kernel version, try browsing some mirror and hope it's still there, download and pacman -U kernel_package_filename, or maybe you can find the relevant PKGBUILD and then makepkg.
edit: I see the linux-surface project has the PKGBUILD linux-surface/pkg/arch at master · linux-surface/linux-surface · GitHub

Apologies for the handwaving, hope I'm not too much wrong.

1 Like

Thanks Meanruse, I did try to simply overwrite, but still no touchscreen. I also was able to get an older kernel (5.15 of the surface kernel) to install and boot, but no touchscreen as well.

Thanks again for the response though, I will keep trying, or maybe resort to adding the bits I love about Garuda to another Arch distro I can get working. But that seems like a cheat as I feel like it should work and would rather figure out how to get Garuda touchscreen working. :slight_smile:

1 Like