Xorg with evdev input devices

greg at unrelenting.technology greg at unrelenting.technology
Sun Sep 22 16:31:58 UTC 2019


September 22, 2019 7:12 PM, "Vasily Postnicov" <shamaz.mazum at gmail.com> wrote:

> Thanks, it works. The purpose of my evdev kernel support testing is eventually switch to wayland.
> For this time I have all related ports recompiled with WAYLAND option and also have x11-wm/sway
> installed. Then I run following commands in terminal (I mean, without xorg server running):
> 
>> setenv XDG_RUNTIME_DIR /tmp
> 
>> sway -d
> 
> Sway fails to start with the following log: https://pastebin.com/M3eExb0C
> 
>> 2019-09-22 18:53:04 - [backend/libinput/backend.c:55] Initializing libinput
>> 2019-09-22 18:53:04 - [backend/libinput/backend.c:84] libinput initialization failed, no input
> devices
>> 2019-09-22 18:53:04 - [backend/libinput/backend.c:85] Set WLR_LIBINPUT_NO_DEVICES=1 to suppress
> this check
>> 2019-09-22 18:53:04 - [backend/multi/backend.c:32] Failed to initialize backend.
>> 2019-09-22 18:53:04 - [sway/server.c:195] Failed to start backend
> 
> I've tried to run "setenv WLR_LIBINPUT_NO_DEVICES 1" as suggested and got sway started (but without
> input devices, I suppose). What's wrong with my libinput? It seems it works OK with Xorg

Your sway process doesn't have permission to access /dev/input/*.

[re: the little follow-up email: setuid does not help, because input devices are attached after dropping root, because input devices need to be hotpluggable anyway. setuid is bad, use consolekit2 as described below]

The good (but a bit involved for now) fix:

- run 'sysctl kern.evdev.input' to make sure you have a recent enough kernel -- my patch for this is not in 12.0-RELEASE, but should be in 12.1-BETA I'm pretty sure
- build libudev-devd with https://github.com/myfreeweb/freebsd-ports-dank/blob/lite/devel/libudev-devd/Makefile (i.e. update to the latest git commit)
- build consolekit2 with https://reviews.freebsd.org/D18754
- build wlroots with CONSOLEKIT option
- enable automatic CK2 session creation on login: add 'session         optional        pam_ck_connector.so' to the '# session' section of /etc/pam.d/login
- log out, log in, just run sway
- (you can launch sway under ck-launch-session if the automatic session gets screwed up somehow, but it works for me pretty well)

The bad (but quick) fix:

- chmod/chown /dev/input/* to be accessible to your account
- (there's some devfs config thing that can do this automatically)
- (this exposes input devices to any program running as your account, which defeats the "no keyloggers allowed" advantage of wayland)


More information about the freebsd-x11 mailing list