prueba
This commit is contained in:
+9
-41
@@ -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
|
||||
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
# Card Semilla para el boot test de GNOME bajo Ente #0.
|
||||
#
|
||||
# Este archivo se valida con `kcl run` contra el schema en
|
||||
# crates/ente-card/schema/card.k antes de que ente-zero lo cargue.
|
||||
#
|
||||
# Genesis declara la constelación mínima para que GNOME arranque sin
|
||||
# systemd: D-Bus daemon, los 8 compat-shims, NetworkManager, gdm.
|
||||
|
||||
import .ente_card.schema.card
|
||||
|
||||
# Card "supervisor genérico" reutilizable — dispara un binario con Restart.
|
||||
schema NativeRestart(EnteBase):
|
||||
soma = SomaSpec {
|
||||
rlimits = ResourceLimits {nofile = 16384}
|
||||
}
|
||||
supervision = Supervision {
|
||||
kind = "Restart"
|
||||
initial_ms = 100
|
||||
max_ms = 30000
|
||||
}
|
||||
|
||||
|
||||
# ----- La Semilla -----
|
||||
|
||||
seed = EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTSEEDFRACTAL00"
|
||||
label = "boot-gnome-test"
|
||||
provides = [
|
||||
Capability {kind = "Spawn"}
|
||||
Capability {kind = "Journal"}
|
||||
]
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Virtual"}
|
||||
supervision = Supervision {kind = "OneShot"}
|
||||
|
||||
genesis = [
|
||||
# 1. dbus-daemon — pivote del system bus, todos los demás dependen de él.
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTDBUSDAEMON___"
|
||||
label = "dbus-daemon"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {
|
||||
kind = "Native"
|
||||
exec = "/usr/bin/dbus-daemon"
|
||||
argv = ["--system", "--nofork", "--nopidfile"]
|
||||
}
|
||||
supervision = Supervision {
|
||||
kind = "Restart"
|
||||
initial_ms = 100
|
||||
max_ms = 30000
|
||||
}
|
||||
}
|
||||
|
||||
# 2-9. Los 8 compat-shims D-Bus.
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTLOGIND_______"
|
||||
label = "compat-logind"
|
||||
provides = [Capability {kind = "LegacyLogind"}]
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {
|
||||
kind = "Native"
|
||||
exec = "/usr/local/bin/ente-logind-compat"
|
||||
}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTHOSTNAMED____"
|
||||
label = "compat-hostnamed"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-hostnamed-compat"}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTTIMEDATED____"
|
||||
label = "compat-timedated"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-timedated-compat"}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTLOCALED______"
|
||||
label = "compat-localed"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-localed-compat"}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTJOURNALD_____"
|
||||
label = "compat-journald"
|
||||
provides = [Capability {kind = "Journal"}]
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-journald-compat"}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTRESOLVED_____"
|
||||
label = "compat-resolved"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-resolved-compat"}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTPOLKIT_______"
|
||||
label = "compat-polkit"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-polkit-compat"}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTMACHINED_____"
|
||||
label = "compat-machined"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {kind = "Native", exec = "/usr/local/bin/ente-machined-compat"}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 100, max_ms = 30000}
|
||||
}
|
||||
|
||||
# 10. NetworkManager — la mayoría de distros lo prefieren sobre networkd.
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTNETWORKMGR___"
|
||||
label = "NetworkManager"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {
|
||||
kind = "Native"
|
||||
exec = "/usr/sbin/NetworkManager"
|
||||
argv = ["--no-daemon"]
|
||||
}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 200, max_ms = 30000}
|
||||
}
|
||||
|
||||
# 11. gdm — display manager. GNOME settings panels via gnome-shell.
|
||||
EntityCard {
|
||||
schema_version = 1
|
||||
id = "01KQABOOTTESTGDMDAEMON____"
|
||||
label = "gdm"
|
||||
soma = SomaSpec {}
|
||||
payload = Payload {
|
||||
kind = "Native"
|
||||
exec = "/usr/bin/gdm"
|
||||
argv = ["--no-daemon"]
|
||||
}
|
||||
supervision = Supervision {kind = "Restart", initial_ms = 500, max_ms = 60000}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user