Page MenuHomePhabricator

Enlightenment probably won't start on CONFIG_VT=0 systems
Closed, ResolvedPublic

Description

Hi.

While I can't test, as I don't have a CONFIG_VT=0 kernel, the problem is that while all TTYs are on seat0, not all seat0s have TTYs

Looking at
https://git.enlightenment.org/core/efl.git/tree/src/lib/elput/elput_logind.c#n634c
it seems to use TTYs if it's seat0

However with systemd something like sd_seat_can_tty()
https://github.com/systemd/systemd/blob/1cabd2d0c56b7de73e4a4fb645f3bbed4a528d2c/src/login/logind-seat.c#L551
can be used instead.

However changing it seems a little odd here compared to changing it in wlroots and weston, it seems that the library is being 'manually' loaded....

n3rdopolis updated the task description. (Show Details)
devilhorns triaged this task as Normal priority.Tue, Sep 8, 7:51 PM
devilhorns added a subscriber: devilhorns.
This comment was removed by devilhorns.
This comment was removed by devilhorns.
This comment was removed by devilhorns.
This comment was removed by devilhorns.
This comment was removed by devilhorns.
This comment was removed by devilhorns.
This comment was removed by devilhorns.
This comment was removed by devilhorns.
devilhorns raised the priority of this task from Normal to High.Tue, Sep 8, 8:28 PM
This comment was removed by devilhorns.
This comment was removed by devilhorns.
raster added a subscriber: raster.Wed, Sep 9, 2:44 AM

ummm can you give me a much longer/more detailed blurb on what is going on here? what is CONFIG_VT=0? i have never encountered a system that has any kind of display and has no vt's... so if there are no vt's .. how on earth are we expected to work? not do any vt controls at all and just use input devices and kms without any vt stuff? please expand on this so i get an idea what this is about with details. :)

as for the code in efl - yes its different to what you may find in wlroots and weston. we dlopen() libsystemd.so on demand (when first needed for something) and dlsym() symbols. so you need to include a function pointer that matches the systemd api like the other ones we have, dlyms() it then call that func ptr ... it's a bit more footwork but it's more efficient and easier to maintain efl across other systems like bsd that don't have systemd or elogind systems etc.

so the question would be - what to do with elogind in these cases as well. does it have the same API symbol? if it doesn't ... it'll be NULL (so dot call it - assume it fails).

@raster CONFIG_VT=0 is probably something that would be considered in the far far future TBH since most kernels have it enabled, but I guess it's best to remain prepared...
It's a compile time option to disable the virtual terminals. There was lots of talk about it in 2013, https://dvdhrm.wordpress.com/2013/07/08/thoughts-on-linux-system-compositors/

While rare, this will make seat0 act like any other seat, logind does the session switching on these seats, because they don't have TTYs.
Enlightenment already works on non-seat0 seats that don't have TTYs, but it won't work on kernels compiled this way (with the legacy VT subsystem disabled) as it will still be seat0, but the expected TTYs won't be there

...
I will look into trying to do this. I think I can try to figure out how to add sd_seat_can_tty...

hmm a read of that implies this actually is a large chunk of work... :) if you are going to give it a go and try make it work... great!.

as above tho - the systemd code just has the extra "declare the func ptr and dlsym it" bits - its otherwise using libsystemd as it would if fully compile and linked that way

Now that's from 2013, so I think lots have been added to logind since then.
All I needed to do for EFL (so far haven't tested yet) is a ~40 line patch. (did something similar to wlroots and getting reviewed for Weston)

well i did notice that things like the input fd passing etc. have been done etc. - but as i have no config vt 0 systems and don't plan on trying any time soon... i'm more concerned about multi-screen support and some of the subsurface stacking/input things that need fixing etc. ... but i live in x11 still as i have multiple screens or regularly need them. wl is still "testing" for me.