chimera-linux / chimera-live

Image creation tooling
Other
41 stars 12 forks source link

Can’t stop console login from appearing #13

Closed wjk closed 1 year ago

wjk commented 1 year ago

Greetings! Love this project. I have run into a strange quirk that I don’t know how to fix. I was wondering if anyone here might be able to help me out. As follows:

When I boot my Chimera Linux VM, it goes through the boot sequence, then dumps me at a console login prompt. I enter my username and password and the login goes through. Shortly thereafter, the screen is taken over by the GDM greeter, and I log in again to start GNOME. (Note that GDM appears after a period of time whether or not I log into the console; the timing is just that I can get to a shell before GDM takes over.)

I want the GDM greeter to appear immediately. My first thought on how to do this is to disable getty. Unfortunately, I have no idea how to disable agetty under dinit. There are multiple service definitions, so a simple dinitctl stop agetty won’t work. Furthermore, that kind of change would not survive a reboot AFAIK. I have read the dinitctl manpage, but can find no command there for disabling a service so it won’t relaunch on reboot. I’d rather not simply delete the agetty files completely. Thanks so much!

q66 commented 1 year ago

this is a wrong place to ask this, as 1) the behavior you observe is not a bug (rather, it's simply that gdm takes a bit of time to start and agetty takes little to no time to start) 2) even if it was, this tracker is for issues with the live images

anyway, it's probably a really bad idea to disable all gettys, then you won't be able to log in when something goes wrong (other than by rebooting with a recovery shell)

the active getty services are controlled by the value of ACTIVE_CONSOLES, declared in /etc/default/console-setup, so you can modify that variable to restrict the set of consoles that are managed (see the /usr/libexec/dinit-agetty script that is run by the base agetty service)

alternatively preventing the agetty service from starting will prevent all the ACTIVE_CONSOLES from coming up, e.g. via apk add '!nyagetty-dinit-links' which is the package that contains the default symlink that makes agetty come up)