This commit is contained in:
Sergio
2026-05-06 20:40:47 +00:00
parent b5d8400fdf
commit d270c5e674
8 changed files with 93 additions and 354 deletions
+9 -41
View File
@@ -35,14 +35,14 @@ escritorio realiza durante la sesión.
- `ente-echo`, `brainctl`, `busctl`, `ente-journalctl`
3. Renombra el `/init` original a `/sbin/init.systemd` (backup)
4. Symlink `/init``/usr/local/bin/ente-zero`
5. Coloca la Card Semilla en `/ente/seed.card.k`
5. Coloca la Card Semilla en `/ente/seed.card.json`
6. Desinstala los services systemd que ahora son shims (logind, etc) o
los enmascara con `systemctl mask` (en la imagen base, antes de
reescribir `/init`)
## Card Semilla para el boot test
`/ente/seed.card.k` debe declarar como genesis los Entes esenciales:
`/ente/seed.card.json` debe declarar como genesis los Entes esenciales:
- D-Bus daemon (`/usr/bin/dbus-daemon --system`)
- Los 8 compat-shims
- NetworkManager
@@ -50,45 +50,13 @@ escritorio realiza durante la sesión.
udev añade reglas de userspace — opcional)
- gdm o sddm
Ejemplo mínimo:
```kcl
import .card
seed = EntityCard {
schema_version = 1
id = "01KQ_BOOT_SEED_GNOME_TEST_0"
label = "boot-gnome-test"
provides = [
Capability {kind = "Spawn"}
Capability {kind = "Journal"}
]
soma = SomaSpec {}
payload = Payload {kind = "Virtual"}
supervision = Supervision {kind = "OneShot"}
genesis = [
# dbus-daemon — todo lo demás depende de él.
EntityCard {
schema_version = 1
id = "01KQ_BOOT_DBUS_DAEMON__________"
label = "dbus-daemon"
soma = SomaSpec {}
payload = Payload {
kind = "Native"
exec = "/usr/bin/dbus-daemon"
argv = ["--system", "--nofork"]
}
supervision = Supervision {
kind = "Restart"
initial_ms = 100
max_ms = 30000
}
}
# Aquí los 8 compat-shims (mismo patrón) ...
# Aquí gdm o sddm ...
]
}
```
El shape es la serialización serde de `EntityCard` (ver
`crates/ente-card/src/lib.rs`). Para el primer arranque sin GNOME hay un
ejemplo defensivo en `docs/seed-vps-min.json` (PID 1 + un `sleep infinity`
supervisado). Extiéndelo añadiendo entradas a `genesis[]` con `payload` de
forma `{"Native": {"exec": "...", "argv": [...], "envp": []}}` y
`supervision` `{"Restart": {"initial": 100, "max": 30000}}` para los
daemons que sí queremos restart-supervisados.
## Boot