From 8aa8616d5e594d4afac04a7f48fa6e7a8af32045 Mon Sep 17 00:00:00 2001 From: Red Bear OS Date: Thu, 16 Jul 2026 11:41:34 +0900 Subject: [PATCH] init(ptyd): 00_ptyd.service must be scheme=pty, not notify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ptyd was migrated to the SchemeDaemon/ready_with_fd path: it registers the "pty" scheme and signals readiness by sending its scheme cap fd back to init, which init receives via call_ro(FD) in its scheme-service startup. The service was still declared type="notify", so init waited for a plain readiness byte ptyd never sends and blocked forever at ptyd — before the console/login stack could start (post-switchroot boot hang). Declare the correct type={scheme="pty"} so init uses the matching fd-receive path. --- init.d/00_ptyd.service | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/init.d/00_ptyd.service b/init.d/00_ptyd.service index 2879c8ad70..6ed4ed8164 100644 --- a/init.d/00_ptyd.service +++ b/init.d/00_ptyd.service @@ -3,4 +3,9 @@ description = "PTY daemon" [service] cmd = "ptyd" -type = "notify" +# ptyd registers the "pty" scheme and signals readiness by sending its scheme +# cap fd back to init (redox_scheme ready_sync_scheme / ready_with_fd), so init +# must receive that fd via call_ro(FD) — i.e. type must be {scheme="pty"}, NOT +# "notify". With "notify" init waits for a readiness byte ptyd never sends and +# blocks forever at ptyd, before the console/login stack. See ptyd/src/main.rs. +type = { scheme = "pty" }