gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 604Rust 56Shell 36Markdown 281227 Definiciones

kernel-from-source: resolver build-deps (libelf+openssl) + refinar config

Avance del frente kernel: el build pasó objtool y certs.
- bootstrap-devfs.sh: +flex +bison +elfutils-dev +openssl-dev al NEEDED.
  * elfutils-dev (libelf/gelf.h): objtool lo exige — en x86_64 las mitigaciones
    seleccionan CONFIG_OBJTOOL aunque se use frame-pointer unwinder.
  * openssl-dev: el host-tool certs/extract-cert lo #incluye — el defconfig
    fuerza CONFIG_SYSTEM_DATA_VERIFICATION=y vía KEYS←NFS/integrity/dns_resolver
    (no apagable sin desarmar media config).
  Ambas son build-libs de arranque (status g++/zlib-dev), SEGURAS para el of_tree
  del self-host: hammerd no usa openssl (Cargo.lock limpio) y arje-zero va
  preseeded/cacheado (no se reconstruye). De-Alpinizables luego con
  recipes/{elfutils,openssl}.toml.
- linux.toml: quité los -d de keyring que no pegan (olddefconfig/syncconfig los
  revierten por el select-chain); openssl resuelve extract-cert. Comentario
  actualizado con el diagnóstico.

Estado: build compila el kernel completo (objtool+certs OK); defconfig es grande
(GPU/wireless), pendiente el bzImage + boot-test + optimización de config.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

f108cc626d356e9c54ba3368ea6fe6ebae901be2 · por sergio · (hace 4 meses) · padre 630cc3185 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

2 archivos · +21 −8

diff --git a/recipes/linux.toml b/recipes/linux.toml
index 4efe4f40..f1ae647b 100644
--- a/recipes/linux.toml
+++ b/recipes/linux.toml
@@ -15,13 +15,15 @@
 # Config: defconfig x86_64 (base PC booteable en QEMU: 8250 serial, initrd, PCI) + ajustes monolíticos
 #   - E1000/OVERLAY_FS/USER_NS =y (built-in): el builder usa e1000 (vendoring) + overlay (sandbox bwrap)
 #     + user namespaces (bwrap). Built-in ⇒ sin inyección de .ko ni version-magic.
-#   - MODULE_SIG/DEBUG_INFO_BTF off: evitan openssl (firma) y pahole (BTF), ausentes del toolchain.
-#   - UNWINDER_FRAME_POINTER en vez de ORC: reduce el uso de objtool, PERO no lo elimina — en x86_64
-#     las mitigaciones (RETHUNK / retpoline-validation) seleccionan CONFIG_OBJTOOL igual, y objtool
-#     necesita libelf (gelf.h). [CONFIRMADO 2026-06-19: el build falla en tools/objtool con "gelf.h:
-#     No such file or directory".] PRÓXIMO PASO: recipes/elfutils.toml (libelf) como dep.build — es la
-#     única pieza que falta para el bzImage. flex/bison/m4 YA funcionan (kconfig parsea, asm-offsets
-#     se genera). [WIP: esta receta aún no produce el bzImage hasta wirear libelf.]
+#   - MODULE_SIG/DEBUG_INFO_BTF off: evitan firma de módulos y pahole (BTF), ausente del toolchain.
+#   - UNWINDER_FRAME_POINTER en vez de ORC: reduce objtool pero NO lo elimina — en x86_64 las
+#     mitigaciones (RETHUNK/retpoline-validation) seleccionan CONFIG_OBJTOOL igual, y objtool necesita
+#     libelf (gelf.h). Además el defconfig fuerza CONFIG_SYSTEM_DATA_VERIFICATION=y (cadena KEYS←NFS/
+#     integrity/dns_resolver, no apagable sin desarmar media config) ⇒ su host-tool certs/extract-cert
+#     #incluye openssl. Por eso libelf + openssl se proveen como BOOTSTRAP-LIBS apk en bootstrap-devfs.sh
+#     (status g++/zlib-dev; SEGUROS para el of_tree: hammerd no usa openssl, arje-zero va preseeded).
+#     deps.build=[flex,bison,m4] son hammer-built; libelf/openssl quedan de-Alpinizables luego con
+#     recipes/{elfutils,openssl}.toml. [WIP: iterando la config hasta que el bzImage bootee el builder.]
 
 name    = "linux"
 version = "6.16.12"
diff --git a/scripts/bootstrap-devfs.sh b/scripts/bootstrap-devfs.sh
index 5ba43889..88016550 100755
--- a/scripts/bootstrap-devfs.sh
+++ b/scripts/bootstrap-devfs.sh
@@ -130,7 +130,18 @@ else
     # toolchain traía libstdc++ runtime pero no cc1plus/headers ni zlib-dev. Son compiladores/libs de
     # arranque (mismo status que make/zig/gcc); el veto purista es sobre un *rustc* prebuilt, no sobre
     # un compilador C++. (zlib-dev quedará reemplazado por recipes/zlib.toml cuando el frente avance.)
-    NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils g++ zlib-dev rust cargo linux-headers bubblewrap git curl kmod"
+    # `flex bison`: build-deps del kernel (lexer/parser de kconfig). También hay recipes/{flex,bison}.toml
+    # hammer-built; aquí en el devfs base son el arranque (frente kernel-from-source).
+    # `elfutils-dev`: aporta libelf + gelf.h, que `tools/objtool` del kernel necesita (en x86_64 las
+    # mitigaciones seleccionan CONFIG_OBJTOOL aunque se use frame-pointer unwinder). Build-tool de
+    # arranque (mismo status que g++/zlib-dev; no se enlaza en nada enviado, no afecta of_tree del 4/4);
+    # quedará reemplazado por recipes/elfutils.toml (libelf desde fuente) cuando el frente kernel avance.
+    # `openssl-dev`: el host-tool `certs/extract-cert` del kernel lo `#include`a — se construye siempre
+    # que CONFIG_SYSTEM_DATA_VERIFICATION=y, que el defconfig fuerza vía la cadena KEYS←NFS/integrity/
+    # dns_resolver (no desactivable sin desarmar media config). Build-tool de arranque; SEGURO para el
+    # of_tree del self-host: hammerd no depende de openssl (Cargo.lock limpio) y arje-zero va preseeded
+    # /cacheado en el verify (no se reconstruye, su of_tree está fijo). De-Alpinizable luego si se quiere.
+    NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils g++ zlib-dev flex bison elfutils-dev openssl-dev rust cargo linux-headers bubblewrap git curl kmod"
     missing=""
     for pkg in $NEEDED; do
         # apk info -e devuelve el paquete si está instalado, vacío si no.