# Evaluation of hardwaresupport for ThinkPad X380 Yoga

**URL:** <https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174>\
**Category:** Hardware\
**Created:** [May 9, 2025, 8:46pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174 "2025-05-09T20:46:57Z")\
**Posts on this page:** 13\
**Page:** 2

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [January 17, 2026, 1:43pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/21 "2026-01-17T13:43:06Z")

</div>

Hi @jjkarcher and @jschlatow would you like to write articles for your own devices and your experiences with it too? You mentioned that you tried the new Framework 16 notebook and Starlabs Starlite. I think the output of `lshw` (see examples above), some info what works well (and maybe how you solved problems you ran into) and a link to the spec would be helpful.

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [January 17, 2026, 1:46pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/22 "2026-01-17T13:46:54Z")

</div>

Hi, in my opinion the hardware category would fit most.

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [January 22, 2026, 7:05pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/23 "2026-01-22T19:05:44Z")

</div>

I will give it a new try. Thanks to @nfeske for general hints and the explanation on how to prevent restarts of VMs after suspending the host system.

---

<div class="post-metadata">

**Author:** ![jschlatow](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/jschlatow/32/12_2.png) [@jschlatow](https://genode.discourse.group/u/jschlatow)\
**Post date:** [February 19, 2026, 10:21am UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/24 "2026-02-19T10:21:54Z")

</div>

> [@jjkarcher](#):
>
> I would definitely be interested in test-driving any images you generate!

@jjkarcher @nos I just published a Sculpt/hw image on my depot with added touch support for the window manager. Note that this also implied changes to the nitpicker, which is part of the static Sculpt system…therefore the new image. The image also comes with an event\_filter config that is customized to my StarLite. Don’t be distracted by the additional filters as they are only effective for the input events from my touchscreen driver.

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [February 22, 2026, 1:02pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/25 "2026-02-22T13:02:48Z")

</div>

Hello, I tried the new image on my X380 Yoga. However, the touch display worked poorly or not at all. Even with the mouse, I often had to click several times. Occasionally, program windows from Shell or Nano3d, for example, simply disappeared sometimes after tapping and did not reappear even after restarting the corresponding component.

Here comes my modified part of the `/config/event_filter`:

```auto
          <log motion="yes">
            <transform>
              <scale x="0.164" y="0.164" />
              <input name="usb"/>
            <transform/>
          </log>

```

And here are some snippets of my `/report/log`:

```auto
...

2.1 [runtime -> usb] usb 1-10: new full-speed USB device number 6 using xhci_hcde[0m
2.2 [runtime -> usb_hid] wacom 0003:056A:5150.0002: : USB HID v1.11 Device [Wacom Co.,Ltd. Pen and multitouch sensor] on usb-usbbus-0/input0e[0m
2.2 [runtime -> usb_hid] input: Wacom Pen and multitouch sensor Finger as /devices/usb-1-6/0-0:1.0/0003:056A:5150.0002/input/input2e[0m
2.2 [runtime -> usb_hid] Connected device: input2 (Wacom Pen and multitouch sensor Finger at usb-usbbus-0/input0) MULTITOUCH TOUCHSCREENe[0m
2.2 [runtime -> usb_hid] wacom 0003:056A:5150.0003: : USB HID v1.11 Mouse [Wacom Co.,Ltd. Pen and multitouch sensor] on usb-usbbus-0/input1e[0m
2.2 [runtime -> usb_hid] input: Wacom Pen and multitouch sensor Pen as /devices/usb-1-6/0-0:1.1/0003:056A:5150.0003/input/input4e[0m
2.3 [runtime -> usb_hid] Connected device: input4 (Wacom Pen and multitouch sensor Pen at usb-usbbus-0/input1) TOUCHTOOLe[0m

...

306.7 [runtime -> inspect -> bash -> 1] e[34mWarning: chmod: chmod not implementede[0m
319.4 [runtime -> inspect -> bash -> 1] e[34mWarning: chmod: chmod not implementede[0m
324.2 [runtime -> acpi_support] AcpiOsSleep 50 mse[0m
324.2 [runtime -> acpi_support] AcpiOsSleep 50 mse[0m
340.3 [runtime] child "touchscreen"e[0m
340.3 [runtime] RAM quota: 7944Ke[0m
340.3 [runtime] cap quota: 86e[0m
340.3 [runtime] ELF binary: pc_i2c_hide[0m
340.3 [runtime] priority: 2e[0m
340.4 [runtime -> touchscreen] using IRQ 104 bus_addr=93 hid_addr=1e[0m
340.4 [runtime -> touchscreen] SLUB: HWalign=64, Order=0-1, MinObjects=0, CPUs=1, Nodes=1e[0m
340.4 [runtime -> touchscreen] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256e[0m
340.4 [runtime -> touchscreen] clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 nse[0m
340.4 [runtime -> touchscreen] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 nse[0m
340.4 [runtime -> touchscreen] pinctrl core: initialized pinctrl subsysteme[0m
340.4 [runtime -> touchscreen] new Acpi::Device name=STARLITE_TOUCH handle=0x1e[0m
340.4 [runtime -> touchscreen] new Acpi::Device name=I2C3 handle=0x2e[0m
340.4 [runtime -> touchscreen] new Acpi::Device name=EPTP handle=0x3e[0m
340.4 [runtime -> touchscreen] clocksource: Switched to clocksource dde_countere[0m
340.4 [runtime -> touchscreen] sched_clock: Marking stable (0, 8444000)->(9493000, -1049000)e[0m

...

531.1 [runtime] child "touchpad"e[0m
531.1 [runtime] RAM quota: 7944Ke[0m
531.1 [runtime] cap quota: 86e[0m
531.1 [runtime] ELF binary: pc_i2c_hide[0m
531.1 [runtime] priority: 2e[0m
531.1 [runtime -> touchpad] using GPIO pin 266 via INT34C5 bus_addr=44 hid_addr=32e[0m
531.2 [runtime -> touchpad] SLUB: HWalign=64, Order=0-1, MinObjects=0, CPUs=1, Nodes=1e[0m
531.2 [runtime -> touchpad] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256e[0m
531.2 [runtime -> touchpad] clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 nse[0m
531.2 [runtime -> touchpad] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 nse[0m
531.2 [runtime -> touchpad] pinctrl core: initialized pinctrl subsysteme[0m
531.2 [runtime -> touchpad] new Acpi::Device name=INT34C5 handle=0x1e[0m
531.2 [runtime -> touchpad] new Acpi::Device name=I2C3 handle=0x2e[0m
531.2 [runtime -> touchpad] new Acpi::Device name=EPTP handle=0x3e[0m
531.2 [runtime -> touchpad] clocksource: Switched to clocksource dde_countere[0m
531.2 [runtime -> touchpad] sched_clock: Marking stable (0, 9919000)->(11047000, -1128000)e[0m
542.3 [runtime] child "touchpad"e[0m
542.3 [runtime] RAM quota: 7944Ke[0m
542.3 [runtime] cap quota: 86e[0m
542.3 [runtime] ELF binary: pc_i2c_hide[0m
542.3 [runtime] priority: 2e[0m
542.4 [runtime] child "touchscreen"e[0m
542.4 [runtime] RAM quota: 7944Ke[0m
542.4 [runtime] cap quota: 86e[0m
542.4 [runtime] ELF binary: pc_i2c_hide[0m
542.4 [runtime] priority: 2e[0m
542.4 [runtime -> touchscreen] using IRQ 104 bus_addr=93 hid_addr=1e[0m
542.4 [runtime -> touchpad] using GPIO pin 266 via INT34C5 bus_addr=44 hid_addr=32e[0m
542.5 [runtime -> touchscreen] SLUB: HWalign=64, Order=0-1, MinObjects=0, CPUs=1, Nodes=1e[0m
542.5 [runtime -> touchscreen] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256e[0m
542.5 [runtime -> touchscreen] clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 nse[0m
542.5 [runtime -> touchpad] SLUB: HWalign=64, Order=0-1, MinObjects=0, CPUs=1, Nodes=1e[0m
542.5 [runtime -> touchpad] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256e[0m
542.5 [runtime -> touchpad] clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 nse[0m
542.5 [runtime -> touchscreen] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 nse[0m
542.5 [runtime -> touchscreen] pinctrl core: initialized pinctrl subsysteme[0m
542.5 [runtime -> touchscreen] new Acpi::Device name=STARLITE_TOUCH handle=0x1e[0m
542.5 [runtime -> touchscreen] new Acpi::Device name=I2C3 handle=0x2e[0m
542.5 [runtime -> touchscreen] new Acpi::Device name=EPTP handle=0x3e[0m
542.5 [runtime -> touchscreen] clocksource: Switched to clocksource dde_countere[0m
542.5 [runtime -> touchscreen] sched_clock: Marking stable (0, 35400000)->(38784000, -3384000)e[0m
542.5 [runtime -> touchpad] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 nse[0m
542.5 [runtime -> touchpad] pinctrl core: initialized pinctrl subsysteme[0m
542.5 [runtime -> touchpad] new Acpi::Device name=INT34C5 handle=0x1e[0m
542.5 [runtime -> touchpad] new Acpi::Device name=I2C3 handle=0x2e[0m
542.5 [runtime -> touchpad] new Acpi::Device name=EPTP handle=0x3e[0m
542.5 [runtime -> touchpad] clocksource: Switched to clocksource dde_countere[0m
542.5 [runtime -> touchpad] sched_clock: Marking stable (0, 14372000)->(16776000, -2404000)e[0m
544.2 [runtime -> acpi_support] AcpiOsSleep 50 mse[0m
544.2 [runtime -> acpi_support] AcpiOsSleep 50 mse[0m
554.3 [runtime] child "touchpad"e[0m
554.3 [runtime] RAM quota: 7944Ke[0m
554.3 [runtime] cap quota: 86e[0m
554.3 [runtime] ELF binary: pc_i2c_hide[0m
554.3 [runtime] priority: 2e[0m
554.4 [runtime -> touchpad] using GPIO pin 266 via INT34C5 bus_addr=44 hid_addr=32e[0m
554.4 [runtime -> touchpad] SLUB: HWalign=64, Order=0-1, MinObjects=0, CPUs=1, Nodes=1e[0m
554.4 [runtime -> touchpad] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256e[0m
554.4 [runtime -> touchpad] clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 nse[0m
554.4 [runtime -> touchpad] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 nse[0m
554.4 [runtime -> touchpad] pinctrl core: initialized pinctrl subsysteme[0m
554.4 [runtime -> touchpad] new Acpi::Device name=INT34C5 handle=0x1e[0m
554.4 [runtime -> touchpad] new Acpi::Device name=I2C3 handle=0x2e[0m
554.4 [runtime -> touchpad] new Acpi::Device name=EPTP handle=0x3e[0m
554.4 [runtime -> touchpad] clocksource: Switched to clocksource dde_countere[0m
554.4 [runtime -> touchpad] sched_clock: Marking stable (0, 9341000)->(10423000, -1082000)e[0m
556.4 [runtime] child "touchpad"e[0m
556.4 [runtime] RAM quota: 7944Ke[0m
556.4 [runtime] cap quota: 86e[0m
556.4 [runtime] ELF binary: pc_i2c_hide[0m
556.4 [runtime] priority: 2e[0m
556.5 [runtime -> touchpad] using GPIO pin 266 via INT34C5 bus_addr=44 hid_addr=32e[0m
556.5 [runtime -> touchpad] SLUB: HWalign=64, Order=0-1, MinObjects=0, CPUs=1, Nodes=1e[0m
556.5 [runtime -> touchpad] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256e[0m
556.5 [runtime -> touchpad] clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 nse[0m
556.5 [runtime -> touchpad] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 nse[0m
556.5 [runtime -> touchpad] pinctrl core: initialized pinctrl subsysteme[0m
556.5 [runtime -> touchpad] new Acpi::Device name=INT34C5 handle=0x1e[0m
556.5 [runtime -> touchpad] new Acpi::Device name=I2C3 handle=0x2e[0m
556.5 [runtime -> touchpad] new Acpi::Device name=EPTP handle=0x3e[0m
556.5 [runtime -> touchpad] clocksource: Switched to clocksource dde_countere[0m
556.5 [runtime -> touchpad] sched_clock: Marking stable (0, 8157000)->(9278000, -1121000)e[0m
564.2 [runtime -> acpi_support] AcpiOsSleep 50 mse[0m
564.2 [runtime -> acpi_support] AcpiOsSleep 50 mse[0m
568.4 [runtime] child "touchpad"e[0m
568.4 [runtime] RAM quota: 7944Ke[0m
568.4 [runtime] cap quota: 86e[0m
568.4 [runtime] ELF binary: pc_i2c_hide[0m
568.4 [runtime] priority: 2e[0m
568.4 [runtime -> touchpad] using GPIO pin 266 via INT34C5 bus_addr=44 hid_addr=32e[0m
568.4 [runtime -> touchpad] SLUB: HWalign=64, Order=0-1, MinObjects=0, CPUs=1, Nodes=1e[0m
568.4 [runtime -> touchpad] NR_IRQS: 4352, nr_irqs: 4352, preallocated irqs: 256e[0m
568.4 [runtime -> touchpad] clocksource: dde_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 nse[0m
568.4 [runtime -> touchpad] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 nse[0m
568.4 [runtime -> touchpad] pinctrl core: initialized pinctrl subsysteme[0m
568.4 [runtime -> touchpad] new Acpi::Device name=INT34C5 handle=0x1e[0m
568.4 [runtime -> touchpad] new Acpi::Device name=I2C3 handle=0x2e[0m
568.4 [runtime -> touchpad] new Acpi::Device name=EPTP handle=0x3e[0m
568.4 [runtime -> touchpad] clocksource: Switched to clocksource dde_countere[0m
568.4 [runtime -> touchpad] sched_clock: Marking stable (0, 37090000)->(38382000, -1292000)e[0m
570.3 [runtime] child "system_clock_rw"e[0m
570.3 [runtime] RAM quota: 4872Ke[0m
570.3 [runtime] cap quota: 366e[0m
570.3 [runtime] ELF binary: inite[0m
570.3 [runtime] priority: 3e[0m
570.3 [runtime] provides service Rtce[0m
570.3 [runtime] provides service Reporte[0m

...

```

---

<div class="post-metadata">

**Author:** ![jschlatow](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/jschlatow/32/12_2.png) [@jschlatow](https://genode.discourse.group/u/jschlatow)\
**Post date:** [February 23, 2026, 6:05am UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/26 "2026-02-23T06:05:55Z")

</div>

That’s unfortunate. This raise a few questions, though:

- Please do not use the “touchscreen” launcher as this is only supposed to be used  
for the StarLite. Please also refrain from using the “touchpad” launcher for the  
sake of debugging.
- What file system are you using? Please try it with ram\_fs to make sure that none of your  
persistently stored config files are interfering.
- Does touch and mouse input work in Leitzentrale at least?
- Since you’ve already enabled the logging of motion events, I’d be very much interested in an  
excerpt of the event log. This is best accompanied with a detailed description of where  
you touched or clicked.

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [February 23, 2026, 5:45pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/27 "2026-02-23T17:45:40Z")

</div>

I tried it again following your hints. This time it worked ways better. Mouse, touchpad (and after configuration touchdisplay too) works as it should. Here come the log you asked for.

Event log:

1. preparation (use ram\_fs, activate network, edit the event\_filter)

- using Mouse and Touchpad (works as it should)

1. in Leitzentrale tap on the “system info” an “system clock” component

- works as it should

1. try to move the window using long tap on its window header and move

- works unexpected good

1. in system view tap on the window header of “unix\_shell”, try to maximize it and back

- works (but my finger seems to large for the small button so I need several tries)

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [February 23, 2026, 6:02pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/28 "2026-02-23T18:02:26Z")

</div>

To save the logfile I tried to use the usbdrive again as persistent memory.  
Touch is still working in Leitzentrale but the unix\_shell window disappeared. I tried to add a system\_shell component but no program window appears (a bit similar to yesterday).

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [February 23, 2026, 7:27pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/29 "2026-02-23T19:27:53Z")

</div>

After completely reinstalling SculptOS to the usbdrive I tried it again. Now it works without problems! Even window resizing is fun. 🙂

Many thanks for improving the touchdisplay functionality!

---

<div class="post-metadata">

**Author:** ![jjkarcher](https://avatars.discourse-cdn.com/v4/letter/j/a9adbd/32.png) [@jjkarcher](https://genode.discourse.group/u/jjkarcher)\
**Post date:** [March 2, 2026, 3:53am UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/30 "2026-03-02T03:53:23Z")

</div>

I finally got a chance to try this, and it worked out of the box for me on the L380 Yoga. Very nice!

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [March 23, 2026, 4:33pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/31 "2026-03-23T16:33:04Z")

</div>

> [@Nos](#):
>
> /config/event\_filter:
> 
> ```auto
> <transform>
> <scale x="0.164" y="0.1636363636" />
> <input name="usb"/>
> </transform>
> 
> ```

And here comes the translation to the new hid format:

```auto
+ transform
  + input usb
  + scale x: 0.164 | y: 0.164

```

I like it because it looks so much simpler to me (but xml was ok too).

---

<div class="post-metadata">

**Author:** ![jschlatow](https://dub1.discourse-cdn.com/flex006/user_avatar/genode.discourse.group/jschlatow/32/12_2.png) [@jschlatow](https://genode.discourse.group/u/jschlatow)\
**Post date:** [March 24, 2026, 5:53am UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/32 "2026-03-24T05:53:54Z")

</div>

> [@Nos](#):
>
> And here comes the translation to the new hid format:
> 
> ```auto
> + transform
> + input usb
> + scale x: 0.164 | y: 0.164
> 
> ```

Please note that there now must be `|` before the `x:`, i.e. an attribute (including the first attribute) must always be separated by a `|`. In an earlier version of the HID format, this was not necessary, though.

---

<div class="post-metadata">

**Author:** ![Nos](https://avatars.discourse-cdn.com/v4/letter/n/eb9ed0/32.png) [@Nos](https://genode.discourse.group/u/Nos)\
**Post date:** [March 27, 2026, 6:47pm UTC](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174/33 "2026-03-27T18:47:28Z")

</div>

Ok, thanks for the hint. Here comes the improved version for copy&paste:

```auto
+ transform
  + input usb
  + scale | x: 0.164 | y: 0.164

```

[Previous page](https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174.md?page=1)
