You are not logged in.

#1 2024-06-06 17:29:58

Kalinovka
Member
Registered: 2024-06-05
Posts: 3

[SOLVED] Greetd "unable to set working directory"

Hi everyone, I'm very new to arch and I've been having some annoying issues with greetd.

This has taken me on a huge rabbit hole.
A stock install of greetd and agreety with

pacman -S greetd && systemctl enable greetd

results in this on tty0 at startup:
tty0

How can I find out what is wrong with greetd or agreety and fix it?
I am also running arch with the t2 linux kernel on a Macbook Pro 2018 installed using the latest t2 archiso, in case that could be a problem.

Checking journalctl with

journalctl -b |  grep greetd

results in:

Jun 06 17:40:18 LAPTOP greetd[659]: config: Config { file: ConfigFile { terminal: ConfigTerminal { vt: None, switch: false }, general: ConfigGeneral { source_profile: true, runfile: "/run/greetd.run", service: "greetd" }, default_session: ConfigSession { command: "", user: "", service: "" }, initial_session: None }, internal: ConfigInternal { session_worker: 12 } }
Jun 06 17:40:28 LAPTOP greetd[659]: pam_unix(greetd:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=  user=Albert
Jun 06 17:40:30 LAPTOP greetd[659]: error: authentication error: pam_authenticate: AUTH_ERR
Jun 06 17:40:30 LAPTOP greetd[557]: client loop failed: i/o error: Broken pipe (os error 32)
Jun 06 17:40:33 LAPTOP greetd[685]: config: Config { file: ConfigFile { terminal: ConfigTerminal { vt: None, switch: false }, general: ConfigGeneral { source_profile: true, runfile: "/run/greetd.run", service: "greetd" }, default_session: ConfigSession { command: "", user: "", service: "" }, initial_session: None }, internal: ConfigInternal { session_worker: 12 } }
Jun 06 17:40:38 LAPTOP greetd[559]: pam_unix(greetd:session): session closed for user greeter
Jun 06 17:40:38 LAPTOP greetd[685]: pam_unix(greetd:session): session opened for user Albert(uid=1000) by Albert(uid=0)

I think agreety is not being run, and then agetty is instead? I tried disabling getty@tty1, no luck.

I also thought it might be to do with PAM, but i have no idea where to even start with that, here is /etc/pam.d/greetd:

#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
auth       include      system-local-login
account    include      system-local-login
session    include      system-local-login

I'm completely stumped. Any help is really appreciated, if anyone wants to see more logs please do let me know.

Last edited by Kalinovka (2024-06-06 23:11:38)


“Trying is the first step toward failure.” —Homer J Simpson, The Simpsons

Offline

#2 2024-06-06 23:08:33

Kalinovka
Member
Registered: 2024-06-05
Posts: 3

Re: [SOLVED] Greetd "unable to set working directory"

Okay I solved it finally...

So I'm pretty sure it was agetty and greetd being run at the same time, but I thought that since greetd.service looks like this:

[Albert@LAPTOP ~]$ cat /usr/lib/systemd/system/greetd.service
[Unit]
Description=Greeter daemon
After=systemd-user-sessions.service plymouth-quit-wait.service
After=getty@tty1.service
Conflicts=getty@tty1.service

[Service]
Type=simple
ExecStart=greetd
IgnoreSIGPIPE=no
SendSIGHUP=yes
TimeoutStopSec=30s
KeyringMode=shared
Restart=always
RestartSec=1
StartLimitBurst=5
StartLimitInterval=30

[Install]
Alias=display-manager.service

The After=getty@tty1 would force getty to run, and then Conflicts=getty@tty1 would stop getty and start greetd.
For some reason this didn't happen, but the solution for me was to create another drop in file and delay the service for greetd using

systemctl edit greetd

Here is the drop in file:

[Service]
ExecStartPre=/bin/sleep 0.2

By delaying the service, it seems to fix the problem entirely, my hypothesis is that both agetty and greetd ran and exactly the same time?
I'll find a way to mark this as solved/fixed, but could anyone give a suggestion as to why this behaviour occurs?

Last edited by Kalinovka (2024-06-06 23:09:25)


“Trying is the first step toward failure.” —Homer J Simpson, The Simpsons

Offline

Board footer

Powered by FluxBB