Genode Users Forum - Latest posts https://genode.discourse.group Latest posts Event Filter Config To Rotate Touchscreen Input Using the builtin accelerometer to determine the device’s orientation would be great. We’re currently lacking any driver of this kind, though. If we had such a driver, the sensed device orientation could for sure be used as an input for rotating the framebuffer and the touch coordinates. Instead of a mere auto-rotating policy, however, I’d be much more in favor of a UI that asks the user to confirm the rotation first since auto-rotation can be quite annoying at times.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_16 Mon, 16 Mar 2026 13:32:37 +0000 genode.discourse.group-post-1442
Hack'n'Hike 2026 This is a friendly reminder. The registration deadline for the Hack’n’Hike event is Tuesday, March 24th - in 8 days!

]]>
https://genode.discourse.group/t/hacknhike-2026/254#post_3 Mon, 16 Mar 2026 10:56:01 +0000 genode.discourse.group-post-1441
Event Filter Config To Rotate Touchscreen Input Oh thanks, I will take a look at it. What do you think about the idea of some kind of rotation sensor (or at least some placeholder for it)? Could this be used as an input for both components?

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_15 Thu, 12 Mar 2026 21:44:08 +0000 genode.discourse.group-post-1439
Event Filter Config To Rotate Touchscreen Input I think I’d try to use the ROM filter to watch for changes to /config/managed/fb and generate the part of the event filter’s config. I’ve done a very similar thing for dynamic key remapping that you could take as a blueprint.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_14 Thu, 12 Mar 2026 07:07:44 +0000 genode.discourse.group-post-1437
Event Filter Config To Rotate Touchscreen Input If I would like to write a script that couple the rotation of both (touchinput and display) what would be a good starting point?

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_13 Wed, 11 Mar 2026 19:59:42 +0000 genode.discourse.group-post-1435
How To Enable On-Screen Keyboard? The touch keyboard is only integrated by the phone manager, which is runs on the PinePhone. On PC, you first need to build the touch_keyboard component and install/launch it manually. Be aware, though, that there is no coordination (yet) w.r.t. window layouting. I have merely given this a very quick try some months ago. Be prepared for a rough ride :wink:

]]>
https://genode.discourse.group/t/how-to-enable-on-screen-keyboard/285#post_2 Wed, 11 Mar 2026 05:34:22 +0000 genode.discourse.group-post-1432
How To Enable On-Screen Keyboard? I feel like I used to know this from the early PinePhone days, but if so, I have since forgotten.

What is involved in enabling the on-screen keyboard? Is that a build-time decision, or can it be configured at run-time?

]]>
https://genode.discourse.group/t/how-to-enable-on-screen-keyboard/285#post_1 Tue, 10 Mar 2026 22:48:41 +0000 genode.discourse.group-post-1431
Event Filter Config To Rotate Touchscreen Input This doesn’t really advance the discussion, but I would just like to say again how much fun it is to use Sculpt in touch mode on the large screen (including rotation)! (This has been a long-time dream of mine. :partying_face: )

For those who haven’t thought about it, I should also point out that Leitzentrale works really well with touch. The button sizes are perfect, and it avoids right mouse clicks and things like hover, so it translates very cleanly. (I personally wouldn’t mind those things for advanced features, but that would complicate the touch interface.)

Thanks again to all involved!

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_12 Tue, 10 Mar 2026 22:25:19 +0000 genode.discourse.group-post-1430
Audio hardware support on Lenovo Thinkpad T480 thank you i will get on the logs asap

]]>
https://genode.discourse.group/t/audio-hardware-support-on-lenovo-thinkpad-t480/284#post_3 Thu, 05 Mar 2026 16:25:08 +0000 genode.discourse.group-post-1429
Event Filter Config To Rotate Touchscreen Input Let me add a brief explanation for the rotation angle: When the framebuffer has been rotated by 90 degrees clockwise, e.g. using the intel_fb UI in the Leitzentrale, you need to rotate the device counter clockwise in order to compensate the framebuffer rotation. The configuration of the event filter must be seen in relation to the rotation of the device, not the framebuffer. This explains why the reorientation angle must be set to 270 in this example.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_11 Mon, 02 Mar 2026 14:24:21 +0000 genode.discourse.group-post-1428
Audio hardware support on Lenovo Thinkpad T480 We got a similar report on the mailing-list considering a T480s back in November. Unfortunately w/o any follow-up.

Avoid restarting the driver (switching between different presets where the driver is not included will implicitly do that) and try to keep it running once started. Otherwise the driver is known to behave erroneously and might show the behavior you encountered.

In case it still does not work, as a first step please look into the the driver’s report❶ and check—for example by using the system shell in the window manager preset as starting point—the various ‘outputs’ eintries, especially ‘outputs.mute’ (should be false) and ‘outputs.spkr_mute’ (should be off).

/report/runtime/audio/mixer_state

Those entries can configure the driver when set in the launcher❷ file
directly but you normally should not have to alter them.

/config/launcher/audio

]]>
https://genode.discourse.group/t/audio-hardware-support-on-lenovo-thinkpad-t480/284#post_2 Mon, 02 Mar 2026 09:55:39 +0000 genode.discourse.group-post-1427
Evaluation of hardwaresupport for ThinkPad X380 Yoga I finally got a chance to try this, and it worked out of the box for me on the L380 Yoga. Very nice!

]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174?page=2#post_30 Mon, 02 Mar 2026 03:53:23 +0000 genode.discourse.group-post-1426
Event Filter Config To Rotate Touchscreen Input I’ve been on the road for the past week, so I’m just testing this now, and it worked! Woo Hoo! :tada:

Thanks for the tip! Things are getting interesting in touchscreen world…

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_10 Sat, 28 Feb 2026 18:14:00 +0000 genode.discourse.group-post-1425
Audio hardware support on Lenovo Thinkpad T480 Ive recently been trying Sculpt on a Thinkpad T480 (libreboot 25,first payload SeaBIOS second payload GRUB2) it has been overall a very smooth experience except thr fact that the log shows me no audoo devices found this surprises me since i was pretty sure the Thinkpad T* line was supported does anybody know if support is planned or this is a known issue? thx

]]>
https://genode.discourse.group/t/audio-hardware-support-on-lenovo-thinkpad-t480/284#post_1 Sat, 28 Feb 2026 09:33:54 +0000 genode.discourse.group-post-1424
About security: Users, Groups, ACLs, Capabilities Today I stumbled upon a video about interesting complex hacker attack on the whole GNU/Linux world!

The Internet Was Weeks Away From Disaster and No One Knew

Immediately I thought - this kind of attack would be impossible in Genode unless user himself would open the doors for it! :+1:

The convenience of a remote system administration (SSH etc.) comes at a cost of a BIG system vulnerability indeed.

]]>
https://genode.discourse.group/t/about-security-users-groups-acls-capabilities/276#post_3 Fri, 27 Feb 2026 14:29:03 +0000 genode.discourse.group-post-1423
Event Filter Config To Rotate Touchscreen Input I checked the implementation with a small Linux test. My memory is not deceiving me: rotate and reorient operate counter-clockwise.

(  5,  0)  rotate(90)  (  0,  5) ... (  5,  0)  reorient(90, 200, 100)  (199,  5)
(  0,  5)  rotate(90)  ( -5,  0) ... (  0,  5)  reorient(90, 200, 100)  (194,  0)
( 20, 10)  rotate(90)  (-10, 20) ... ( 20, 10)  reorient(90, 200, 100)  (189, 20)

I’ll improve the documentation accordingly.

EDIT: This commit on staging adapts the doc.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_9 Fri, 27 Feb 2026 07:12:18 +0000 genode.discourse.group-post-1422
Event Filter Config To Rotate Touchscreen Input IIRC it’s implemented in the mathematical positive sense, i.e., counter-clockwise.

EDIT: The README states the opposite: Rotates clockwise (around origin (0,0) by 90, 180, or 270 degrees in attribute ‘angle’. So, maybe I’m mistaken.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_8 Thu, 26 Feb 2026 18:38:17 +0000 genode.discourse.group-post-1421
Event Filter Config To Rotate Touchscreen Input Looking at the implementation and refreshing my knowledge about rotation matrices from Wikipedia, I suspect that the rotation/reorientation is rather implemented as a counter-clockwise rotation. @chelmuth Can you confirm/refute that?

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_7 Thu, 26 Feb 2026 10:46:00 +0000 genode.discourse.group-post-1420
Porting nouveau drivers?
kspatlas:

I’m quite new to Genode, but since it seems relatively easy to port Linux drivers to Genode, how hard would it be to port, say, the Nouveau drivers for NVIDIA (or even the official open-source kernel module)?

It is easy as in it is feasible in a manageable amount of time. The Genode Platforms 23.05 book (starting with “Taking Linux out for a walk”) describes the process on how to port a Linux driver over (with focus on an ARM SoC but it is generally applicable).

It is hard to say how difficult it actually would be to port the Nouveau DRM driver without taking a look at the inner workings first.

That being said, there is the intel_fb framebuffer driver based on the i915 driver that illustrates how to make use of the Linux driver for Genode’s Capture session.
The lima_gpu rendering driver based on Linux’ lima driver, on the other hand, shows how to connect the Linux’ DRM rendering API to Genode’s Gpu session (together with our libdrm port and naturally mesa).

So there are examples you can look at that show the custom/glue code required to make everything work and where to make a cut.

There is also a port of the open-source blob driver found in Managarm and from what I was told (second hand) using the abstraction layer provided by the driver directly was a straightforward endeavor and there is now a working framebuffer driver.
in general
Of course this driver only supports newer generations of devices but that would probably the road I would explore first (with having Haiku’s as well as the Managarm’s driver as examples) as the API seems to be more lean.

Well, GPU drivers tend to be quite complex beasts - as usual, the devil is in the details and there are the various parts (DRM, libdrm, mesa) involved and how to make use of them. Depending on your experience it is a lot to take in at first.

I would suggest to take a look at the available driver components first and get a feel for how they interact.

For a start I would focus on a framebuffer driver, i.e. only the display engine related parts, first as it would expose you to the DRM subsystem but not burden you with dealing with mesa.

]]>
https://genode.discourse.group/t/porting-nouveau-drivers/282#post_2 Wed, 25 Feb 2026 09:48:29 +0000 genode.discourse.group-post-1419
Porting nouveau drivers? I’m quite new to Genode, but since it seems relatively easy to port Linux drivers to Genode, how hard would it be to port, say, the Nouveau drivers for NVIDIA (or even the official open-source kernel module)?

Something like NVK could be used for the Mesa bits (someone in the Haiku community was able to port NVK to the open-source kernel modules, in fact)

Are there any complications I’m missing?

]]>
https://genode.discourse.group/t/porting-nouveau-drivers/282#post_1 Tue, 24 Feb 2026 12:05:20 +0000 genode.discourse.group-post-1417
Evaluation of hardwaresupport for ThinkPad X380 Yoga After completely reinstalling SculptOS to the usbdrive I tried it again. Now it works without problems! Even window resizing is fun. :slight_smile:

Many thanks for improving the touchdisplay functionality!

]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174?page=2#post_29 Mon, 23 Feb 2026 19:27:53 +0000 genode.discourse.group-post-1416
Evaluation of hardwaresupport for ThinkPad X380 Yoga 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).

]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174?page=2#post_28 Mon, 23 Feb 2026 18:02:26 +0000 genode.discourse.group-post-1415
Evaluation of hardwaresupport for ThinkPad X380 Yoga 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)
]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174?page=2#post_27 Mon, 23 Feb 2026 17:45:40 +0000 genode.discourse.group-post-1414
Recommendations for good ARM board to work on Genode Project Thanks!

I’ll look at the repo’s tag, and try to build from there :slight_smile:

(still loading the learning curve, but this is getting quite exciting :slight_smile: )

]]>
https://genode.discourse.group/t/recommendations-for-good-arm-board-to-work-on-genode-project/216#post_12 Mon, 23 Feb 2026 15:57:06 +0000 genode.discourse.group-post-1413
Recommendations for good ARM board to work on Genode Project We used it once as a demostrator at Embedded World 2025 last year. Please have a look here for the main repository:
GitHub - skalk/genode at sculpt-24.10.3-embedded-world
And here for the imx repository:
GitHub - skalk/genode-imx at sculpt-24.10.3-embedded_world_2025-armstone
But in theory it should still be possible to compile and run the latest Sculpt version (25.04), because the drivers did not change.

]]>
https://genode.discourse.group/t/recommendations-for-good-arm-board-to-work-on-genode-project/216#post_11 Mon, 23 Feb 2026 14:26:22 +0000 genode.discourse.group-post-1412
Recommendations for good ARM board to work on Genode Project No, I meant what software version (sculpt release or genode got repo hash) you tested :slight_smile:

I am in the process of building it, so far I have a booting init and a few components and I am now wresting the build to include the depots in the image ^^;

(And about 45% of the platform book read :wink: )

… Learning curve in progress ^^;

]]>
https://genode.discourse.group/t/recommendations-for-good-arm-board-to-work-on-genode-project/216#post_10 Mon, 23 Feb 2026 14:10:56 +0000 genode.discourse.group-post-1411
Loading App Binaries/Libraries from a Separate Partition I know that Sculpt supports placing application binaries or libraries on a separate partition from the main OS, so the OS can boot fast and the binaries are loaded on-demand from the second partition.

I’ve tried to set this up myself, but I haven’t been able to fully implement the routing and loading workflow. (I realized that using a ROM_FS and attaching it to a storage filesystem like EXT2 on SATA, specifically on partition 2, should make this possible, but I couldn’t get it to work.)

For example, I want to run an app like test_application that depends on Qt5 libraries, in one of these ways:

Option 1: Separate libraries partition

part0: main partition (OS root)
       |
       -> app/test_application   (loads dependencies from part1)

part1: libs
       |
       -> qt5_base.lib.so
       -> qt5_dejavusans.lib.so

Option 2: Separate apps partition

part0: main partition (OS root)
       |
       -> init   (loads test_application from part1)

part1: apps
       |
       -> test_application

       libs
       |
       -> qt5_base.lib.so
       -> qt5_dejavusans.lib.so

I’m looking for:

  • A concrete example of placing binaries or libraries on a secondary partition.

  • How to configure Genode to load them dynamically at runtime.

  • Any notes on capabilities management, dataspace attachment, or routing for this.

Any example, config snippet, or reference would be really helpful.

]]>
https://genode.discourse.group/t/loading-app-binaries-libraries-from-a-separate-partition/281#post_1 Mon, 23 Feb 2026 13:34:22 +0000 genode.discourse.group-post-1410
Recommendations for good ARM board to work on Genode Project Hi @fdelizy,

I’m not 100% sure what you mean when asking:

But if you mean what exact hardware revision we were using (?), well then here is the output from u-boot starting on our test-board:

U-Boot SPL 2021.04-nboot-fsimx8mp-2023.09 (Sep 01 2023 - 09:16:24 +0200)
BOARD-ID: armStoneMX8MP-FERT4.100
U-Boot 2021.04-F+S-fsimx8mp-Y2023.09 (Aug 31 2023 - 12:56:23 +0000) for F&S
CPU:   i.MX8MP[8] rev1.1, 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C)
Reset: POR
Model: armStoneMX8MP
Board: armStoneMX8MP Rev 1.00 (2x LAN, WLAN, eMMC, 1x DRAM)
DRAM:  2 GiB
]]>
https://genode.discourse.group/t/recommendations-for-good-arm-board-to-work-on-genode-project/216#post_9 Mon, 23 Feb 2026 10:37:41 +0000 genode.discourse.group-post-1409
Evaluation of hardwaresupport for ThinkPad X380 Yoga 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.
]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174?page=2#post_26 Mon, 23 Feb 2026 06:05:55 +0000 genode.discourse.group-post-1408
Event Filter Config To Rotate Touchscreen Input Ok, now it works. I had to rotate the display (using the intel_fb component in Leitzentrale) to 90° and the touchdisplay (using the reorient angle in event_filter) to 270 (or vice versa). I assigned to width and height the values of the rotated display.

Here the modified snippet from my /config/event-filter:

         <transform>
            <input name="usb"/>
            <scale x="0.164" y="0.164"/>
            <reorient angle="270" width="1080" height="1920" />
          </transform>
]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_6 Sun, 22 Feb 2026 18:43:15 +0000 genode.discourse.group-post-1407
Evaluation of hardwaresupport for ThinkPad X380 Yoga 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:

          <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:

...

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

...
]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174?page=2#post_25 Sun, 22 Feb 2026 13:02:48 +0000 genode.discourse.group-post-1406
Event Filter Config To Rotate Touchscreen Input
jschlatow:

The transformations described in the README are, indeed, very basic. […] I had to find this by try-and-error using a surrounding <log motion=”yes”> around the <transform> node.

That’s a quite valid remark. We should improve the README with the given example.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_5 Sun, 22 Feb 2026 11:17:42 +0000 genode.discourse.group-post-1405
Proposed HRD File Format just wanted to say the new format is awesome! thanks for the effort @nfreske. I hope examples of the book will also get converted in the coming up May edition :slight_smile:

]]>
https://genode.discourse.group/t/proposed-hrd-file-format/131?page=2#post_30 Sat, 21 Feb 2026 15:20:11 +0000 genode.discourse.group-post-1404
Event Filter Config To Rotate Touchscreen Input Oh, great. I will try it today.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_4 Sat, 21 Feb 2026 10:12:02 +0000 genode.discourse.group-post-1403
Evaluation of hardwaresupport for ThinkPad X380 Yoga
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.

]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-thinkpad-x380-yoga/174?page=2#post_24 Thu, 19 Feb 2026 10:21:54 +0000 genode.discourse.group-post-1402
Event Filter Config To Rotate Touchscreen Input Sorry for the late reply. The transformations described in the README are, indeed, very basic. What worked for me with a display resolution of 2160x1440:

  • rotate the by screen 90 degree
  • add <reorient angle=”270” width=”1440” height=”2160”/> to the /config/event_filter

I had to find this by try-and-error using a surrounding <log motion=”yes”> around the <transform> node.

]]>
https://genode.discourse.group/t/event-filter-config-to-rotate-touchscreen-input/277#post_3 Thu, 19 Feb 2026 10:12:35 +0000 genode.discourse.group-post-1401
Recommendations for good ARM board to work on Genode Project Hi Norman,

just a quick update, after pushing for the last few months we finally got the 3 boards (purchasing anything through academics take ages :confused: )

I’ll start looking at the armstone, I understand it’s not in your CI but you made it work at some point.

I am interested to know what tag/version did you test?

For the record, we will start with the armStone, but target to enable the Toradex iMX8 & iMX9 later

]]>
https://genode.discourse.group/t/recommendations-for-good-arm-board-to-work-on-genode-project/216#post_8 Wed, 18 Feb 2026 09:30:13 +0000 genode.discourse.group-post-1400
Static IP Wired Network Connection (How do I...) Thanks a lot for your answers! :folded_hands:

Would be happy to see this feature! :heart_eyes: Still, amazing work on the nic_router :+1:

Yeah, you’re right! It can happen on any routing level and is a challenge of a bigger scale. Though, I wouldn’t rely on “fair play” of third party components, assuming they implement IP stack as VFS plugin.

So I will follow isolation-by-domain path to be safe, thank you! :+1:

]]>
https://genode.discourse.group/t/static-ip-wired-network-connection-how-do-i/208#post_20 Mon, 16 Feb 2026 14:16:12 +0000 genode.discourse.group-post-1399
Static IP Wired Network Connection (How do I...)
G0retZ:

So essentially there’s no way to specify DNS servers without starting a dhcp-server in a domain, right? :thinking:

Right.

Unfortunately, the existing mechanisms only allow routing by destination IP.

Well…as the web app uses encrypted communication with your browser, I am not too concerned about the packets being observable by another client. It’s similar to how every piece of network equipment along the routing path to your bank’s server can observe your encrypted communication. If you are concerned with leaking meta data, however, separating the clients in different domains will be the safe way.

Nevertheless, getting access to the raw packets from another client can be a challenge on its own. If a client component follows the beaten track of integrating an IP stack as a VFS plugin, I believe, there is no (intended) way to get access to the raw packets as the IP stack will drop every packet that is not intended for any open socket.

]]>
https://genode.discourse.group/t/static-ip-wired-network-connection-how-do-i/208#post_19 Mon, 16 Feb 2026 13:58:57 +0000 genode.discourse.group-post-1398
Static IP Wired Network Connection (How do I...) Thanks for the answers!

So essentially there’s no way to specify DNS servers without starting a dhcp-server in a domain, right? :thinking:

Good to know, that tcp and tcp-forward affect only packets originated from the same domain, but not routed ones from another domain. I saw the “Domain-local IP traffic” in the documentation but didn’t get that it excludes the routed traffic from other domains. Btw, is NAT-ed traffic counted as “Domain-Local IP traffic”? :sweat_smile:

My goal is to not allow LAN router establish VNC connection to my server, because it’s not trusted by me (providers’ hardware without my access to it’s configuration). I might tin-foil-hatting here, but still… Essentially what I’m trying to do is to blacklist a source IP address (or range). I just can’t figure out how to solve this case with nic_router instruments. :thinking:

I don’t see any rules that use the source IP address of a package… Also I didn’t get how a package would be routed to vnc domain from uplink if I replace tcp-forward with tcp. :face_with_spiral_eyes:

Could you please share with me a simplified example of a config that black-lists or white-lists connections from LAN (uplink) to some service domain (vnc) by source IP? :sweat_smile:

Ok, got it, no default isolation for arbitrary dynamically added components for now, can live with that, not a big issue :slightly_smiling_face: Just need to keep in mind, that default-policy domain is not meant for security sensitive components (like browser with banking web app open) :ok_hand:

]]>
https://genode.discourse.group/t/static-ip-wired-network-connection-how-do-i/208#post_18 Mon, 16 Feb 2026 13:40:09 +0000 genode.discourse.group-post-1397
I2C HID Trackpad not working on Lenovo Yoga S730 in SculptOS; F12 Leitzentrale also affected As Stefan pointed out last week, the necessity for boot-time ACPI discovery increases. In principle, you could get all the required information from a running Linux system but we don’t have a guide for this. Even with all the information at hand, however, the issue remains that the current driver does not support your platform. Yet, it is probably merely a matter of adding a few compilation units and testing. If you are keen on getting your hands dirty with this, please feel free.

]]>
https://genode.discourse.group/t/i2c-hid-trackpad-not-working-on-lenovo-yoga-s730-in-sculptos-f12-leitzentrale-also-affected/271#post_8 Mon, 16 Feb 2026 12:46:00 +0000 genode.discourse.group-post-1396
Static IP Wired Network Connection (How do I...)
G0retZ:

First question is DNS, setup is not fully clear to me. I want to setup specific DNS servers for uplink domain, just like static address/gateway setup is done. In the similar manner it is done in any other OS. So all other domains that use dns servers from uplink will get the same, but I don’t want to run DHCP server on uplink to avoid conflicts with the gateway in LAN.

How is it done properly with nic_router?

As far as I know, the only way to achieve a static DNS config for every domain is to specify it for each domain separately. The dns_config_from_uplink only works for the case in which uplink gets its DNS config via DHCP.

Note that the tcp and tcp-forward configurations only affect packets that come from interfaces of the domain in which they are specified. I.e. packets forwarded from uplink to default are unaffected by any tcp rule specified in default. I believe, for your use case, you could replace the tcp-forward by a tcp rule and only route packets to the default domain that are destined for the LAN IP of your uplink interface.

That would be the way.

]]>
https://genode.discourse.group/t/static-ip-wired-network-connection-how-do-i/208#post_17 Mon, 16 Feb 2026 12:25:06 +0000 genode.discourse.group-post-1395
AHCI Driver Partition Setup in QEMU/Hardware Hello, I’m facing the same issue running SculptOS 25.10 on my machine.

It’s a Core i3-9100 CPU on Asus Prime H310M-A motherboard.

It has 4 SATA slots and NvME (setup in PCIe mode via BIOS). So far USB and NvME storage are working fine.

But my SATA drives are not accessible: I have 3 Toshiba N300 HDDs attached, but Sculpt reports all ahci devices as off and doesn’t pick them up.

Is there any fix or solution for this problem?

]]>
https://genode.discourse.group/t/ahci-driver-partition-setup-in-qemu-hardware/97#post_15 Sat, 14 Feb 2026 13:10:04 +0000 genode.discourse.group-post-1394
I2C HID Trackpad not working on Lenovo Yoga S730 in SculptOS; F12 Leitzentrale also affected Sorry to bump unnecessarily, but I wonder if there is anything I can do to assist by way of testing etc? Or will this be more useful once 26.11 has been cut?

]]>
https://genode.discourse.group/t/i2c-hid-trackpad-not-working-on-lenovo-yoga-s730-in-sculptos-f12-leitzentrale-also-affected/271#post_7 Sat, 14 Feb 2026 11:30:54 +0000 genode.discourse.group-post-1393
Static IP Wired Network Connection (How do I...) Reading through the nic_router Readme and this topic I was able to make a static setup for my system. I find the nic_router approach much simpler and easier to manage than iptables, rf etc. I’d have to say I love it!

Though I have 3 questions about it. And I will use the config example provided here with some change.

Scenario: A server with static address that is connected to LAN with it’s own router, that is used as a gateway. So server doesn’t route any traffic between real networks.

Config (click for more details)

DNS configuration.

First question is DNS, setup is not fully clear to me. I want to setup specific DNS servers for uplink domain, just like static address/gateway setup is done. In the similar manner it is done in any other OS. So all other domains that use dns servers from uplink will get the same, but I don’t want to run DHCP server on uplink to avoid conflicts with the gateway in LAN.

How is it done properly with nic_router?

Dropping packages

I want to drop packages (opening connections) from gateway to my server, so only LAN clients could connect to its services. But I can’t find any setting to explicitly drop or block packages on tcp-forward or tcp tags. Should I do that in target domain by permitting source IP range without the router address?
If yes, wouldn’t the tcp-forward have a negative impact on network performance or introduce CPU overhead (by routing packages to the domain, that will drop them afterwards anyway)?

Security

As far as I see, the default domain is specified for all connections, unless specified otherwise. But these lines in Readme make me concerned about the network security of nic_router:

* Acting as hub among NIC and Uplink sessions of the same domain
...
If a network packet must be sent at a domain, it is always sent at all
interfaces assigned that domain. If a network packet from a domain addresses a
host in the same IPv4 subnet and it's not the routers IPv4 peer in that domain,
the packet is again sent at all interfaces assigned that domain.

This means, that any interface, that is assigned to the default domain will receive all network packages addressed to any interface in that domain. :thinking:

Imaging I’m running a browser (not trusted) for google-only ecosystem with it’s own recall_fs and another browser (not trusted) with a banking app or something else, and that I don’t to want expose them to each other.
Now if they both in the same domain, they both will receive all network packages addressed to any interface.

Taking into account the infamous google ability to collect user data and metadada this gives power to google or any component to spy on what other components in the same domain doing in network. Despite of traffic being encrypted, the basic metadata (mac&ip addresses, ports, headers?) is not, and it can tell a lot about the user of the system…

How to mitigate this risk? Should I specify a dedicated policy and domain for each component that I want to run isolated from other components? Or how should it be done?

]]>
https://genode.discourse.group/t/static-ip-wired-network-connection-how-do-i/208#post_16 Fri, 13 Feb 2026 23:56:02 +0000 genode.discourse.group-post-1392
Screen resolution selection
jschlatow:

In addition to what @nfeske wrote: You may also try setting the width and height attributes in the VNC server’s config. This should force the captured size to the given values.

It worked as expected! Thank you a lot!! :folded_hands:

@nfeske thanks for you input anyways! I will not bother with this configuration right now, but for sure will get back to it, once I will start setting up my desktop environment :+1:

]]>
https://genode.discourse.group/t/screen-resolution-selection/280#post_6 Fri, 13 Feb 2026 17:23:07 +0000 genode.discourse.group-post-1391
Screen resolution selection
jjkarcher:

What hardware does your server run (CPU / GPU)? Also, which framebuffer component shows in the Component Graph in Leitzentrale?

I’m using a Core i3 Gen9 PC, with integrated video. So a pretty compatible setup.

Oh, I didn’t know I can click deeper on the intel_fb node and choose different screen resolution! Thanks!

Though when I change it to lower values line 1280/720@60 the image overflows the screen, making bottom left part of the screen not visible…

Thank you for thorough explanation! :folded_hands: Will tinker more around this.

I didn’t fully get this part. It will limit a portion of the screen that can be observed by a client? Or it will limit the screen size, adapting the content, for a specific client? So I can have a screen attached and a VNC client that will both see Leitzentrale and all of it’s top elements but not exactly mirrored 1-to-1? :thinking:

Definitely will try that, thanks! :folded_hands:

Nevermind, false alarm, sorry!

I tried a bit more and everything is fine! It even starts without any screen attached with no problem (just in this case the VNC window is tiny-tiny :pinching_hand: ).

]]>
https://genode.discourse.group/t/screen-resolution-selection/280#post_5 Fri, 13 Feb 2026 17:11:27 +0000 genode.discourse.group-post-1390
Screen resolution selection In addition to what @nfeske wrote: You may also try setting the width and height attributes in the VNC server’s config. This should force the captured size to the given values.

However, I’m wondering why the VNC connection drops at all. If I remember correctly, I’ve hard-coded a default size into the VNC server that should be used as a fallback. Thus there might be something wrong with the resizing logic in the VNC server.

]]>
https://genode.discourse.group/t/screen-resolution-selection/280#post_4 Fri, 13 Feb 2026 12:03:32 +0000 genode.discourse.group-post-1389
Screen resolution selection By default, the nitpicker GUI server manages the sizes of the client domains depending on the connected capture clients (e.g., a display driver or - in your case - the VNC server).

You can override those defaults in the nitpicker config (in Sculpt at /config/nitpicker).

First, you can add width and height attributes to a domain, e.g., the “leitzentrale” domain. So the domain’s size no longer depends on the connected capture clients.

Second, within the capture config node, you can define policies for capture clients. Here you can artificially limit the size of the captured area as observable by the client. The simplest solution may be a default-policy node with width and height attributes defined to your liking. So the VNC server should always observe a screen of these dimensions. If this works as I presume, your dongle shouldn’t be needed.

]]>
https://genode.discourse.group/t/screen-resolution-selection/280#post_3 Fri, 13 Feb 2026 11:46:02 +0000 genode.discourse.group-post-1388
Evaluation of hardwaresupport for the Framework 16 notebook I am happy to report that, after the recent updates, I was able to load YouTube videos in Falkon, with audio. Everything ran nice and smoothly, even in full-screen mode. Very exciting!

Thanks again for all the effort to get this working!

]]>
https://genode.discourse.group/t/evaluation-of-hardwaresupport-for-the-framework-16-notebook/231?page=3#post_44 Fri, 13 Feb 2026 04:13:43 +0000 genode.discourse.group-post-1387