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:
Desired outcome
Use this stable, KernelCI-specific prompt in Debos rootfs images:
At the root directory, it produces:
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/.profile
config/rootfs/debos/rootfs.yaml
config/runtime/boot/u-boot.jinja2
config/runtime/boot/efi.jinja2
config/runtime/boot/ipxe.jinja2
config/runtime/boot/depthcharge.jinja2
config/runtime/boot/fastboot.jinja2
config/runtime/boot/qemu.jinja2
config/runtime/boot/barebox.jinja2
config/runtime/boot/grub.jinja2
config/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.
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:
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:
Desired outcome
Use this stable, KernelCI-specific prompt in Debos rootfs images:
PS1='kernelci:$(pwd) # 'At the root directory, it produces:
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
kernelci:$(pwd) #./ #or~ #for images using the new prompt, because LAVA warns about every generic prompt in the list.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.jinja2The legacy/generated rootfs configuration should also be checked for remaining hard-coded
/ #values.Acceptance criteria
kernelci:/ #at the root directory on its serial console./ #or~ #are retired when the replacement images are published.Human participation required
This task intentionally needs two short human checkpoints:
These operational steps and the real-lab validation cannot be completed by repository automation alone.
Out of scope