Use a distinctive KernelCI shell prompt in rootfs images and LAVA boot templates
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- shell
- Área
- ci-cd, devops, infrastructure
Línea de trabajo
Comienza con config/rootfs/debos/overlays/prompt/root/.profile y config/rootfs/debos/rootfs.yaml; después, inspecciona las plantillas de config/runtime/boot indicadas en busca de prompts codificados de forma fija. Ejecuta las pruebas relevantes de renderizado de plantillas y verifica que los trabajos de Debos seleccionen únicamente el nuevo prompt. La tarea se considera terminada cuando haya una imagen de Debos reconstruida, un trabajo de QEMU LAVA exitoso y una validación de hardware cuando sea necesario.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
KernelCI Debos rootfs images currently use a generic shell prompt:
/ #
Some newer images may instead show:
~ #
KernelCI lists these strings as expected login prompts in its LAVA job templates. LAVA warns that these prompts are not distinctive and may accidentally match ordinary boot or status messages:
The string '/ #' does not look like a typical prompt and could match
status messages instead.
Adding ~ # as another accepted prompt prevents login timeouts with newer BusyBox versions, but it does not resolve the warning. LAVA checks every listed prompt and currently considers prompts containing : or \ distinctive.
A false prompt match could cause LAVA to proceed before the device has actually reached a usable shell.
Original example: https://lava.collabora.dev/scheduler/job/19101745#L1878
LAVA prompt validation:
- https://gitlab.com/lava/lava/-/blob/master/lava_dispatcher/actions/boot/__init__.py
- https://gitlab.com/lava/lava/-/blob/master/lava_common/constants.py
Desired outcome
Use this stable, KernelCI-specific prompt in Debos rootfs images:
PS1='kernelci:$(pwd) # '
At the root directory, it produces:
kernelci:/ #
The prompt is distinctive according to LAVA, unlikely to appear in normal kernel or userspace output, and can be matched exactly by generated LAVA jobs.
Buildroot-based images are outside the scope of this issue and should be handled in a separate follow-up issue because their configuration is maintained in another repository.
Implementation outline
- Update the Debos prompt overlay to emit
kernelci:$(pwd) #. - Update the LAVA boot templates used with Debos images to expect the new prompt.
- Do not list
/ #or~ #for images using the new prompt, because LAVA warns about every generic prompt in the list. - If the templates are also used by Buildroot images, make the expected prompt configurable per rootfs or job. Keep the legacy value only for Buildroot until its follow-up issue is completed.
- Add or update tests that render the affected templates and verify the prompt selected for a Debos image.
- Rebuild a representative Debos rootfs and validate it in a real LAVA job.
- Retire Debos images that use the old generic prompt when the new images are published. They do not need to remain compatible after the switch.
Relevant files
config/rootfs/debos/overlays/prompt/root/.profileconfig/rootfs/debos/rootfs.yamlconfig/runtime/boot/u-boot.jinja2config/runtime/boot/efi.jinja2config/runtime/boot/ipxe.jinja2config/runtime/boot/depthcharge.jinja2config/runtime/boot/fastboot.jinja2config/runtime/boot/qemu.jinja2config/runtime/boot/barebox.jinja2config/runtime/boot/grub.jinja2config/runtime/tests/watchdog-reset.jinja2
The legacy/generated rootfs configuration should also be checked for remaining hard-coded / # values.
Acceptance criteria
- A newly built representative Debos rootfs displays
kernelci:/ #at the root directory on its serial console. - Rendered LAVA jobs for Debos images list only prompts those images can emit.
- LAVA detects the prompt and completes login successfully.
- The LAVA job does not report the “does not look like a typical prompt” warning for the Debos prompt.
- At least one QEMU LAVA job is run successfully and linked in this issue.
- A hardware job is also checked if its prompt or login path differs from QEMU.
- Debos images using
/ #or~ #are retired when the replacement images are published. - Buildroot prompt migration is recorded in a separate follow-up issue.
- Relevant automated tests pass.
Human participation required
This task intentionally needs two short human checkpoints:
- A KernelCI maintainer coordinates publication of the replacement Debos image and retirement of the old images.
- A lab operator runs a representative LAVA job and confirms from the serial log that the prompt is detected correctly.
These operational steps and the real-lab validation cannot be completed by repository automation alone.
Out of scope
- Changing LAVA's upstream prompt-validation heuristic.
- Changing the Buildroot prompt; track this in a follow-up issue.
- Maintaining compatibility with retired Debos images that use the old prompt.
- Refactoring unrelated boot or login handling.
- Redesigning the rootfs publication process.
- Changing the ChromeOS prompt unless testing shows it is affected.
- Lenguaje dominante
- Python
- Estrellas
- 120
- Forks
- 108
- Merge medio
- 1 d 12 h
- PR fusionados (30 d)
- 21
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de kernelci/kernelci-core
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
kernelci/kernelci-core#2591 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
kernelci/kernelci-core#3234 ·
Los mantenedores suelen responder en 1 día
-
Make Kubernetes job network readiness checks bounded and deployment-independentQuizá libre de nuevo @Aniket1260 la tomó hace 38 días y no hay ningún pull request abierto. Abiertogood first issue techdebt
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
kernelci/kernelci-core#3197 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
chromeos techdebt
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
kernelci/kernelci-core#3196 ·
Los mantenedores suelen responder en 1 día
-
kubernetes runners missing logs and test naming wrongQuizá libre de nuevo @nuclearcat la tomó hace 69 días y no hay ningún pull request abierto. Abierto
kernelci/kernelci-core#3170 · 2 comentarios · 1 reacción · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de kernelci/kernelci-core
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
SR_SECURITY_DESCRIPTOR.fromString drops the SACL when no DACL is presentPosiblemente ocupada @paul7436 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
equinor/fmu-sumo-uploader#302 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
modelscope/evalscope#1821 ·
Los mantenedores suelen responder en 1 día
-
Sanity on ansible-core devel fails: ignore-2.23.txt references the removed import-3.9 testPosiblemente ocupada @yurnov la tomó hoy. Abiertoneeds_triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
ansible-collections/kubernetes.core#1275 ·
Los mantenedores suelen responder en 1 día