Use a distinctive KernelCI shell prompt in rootfs images and LAVA boot templates
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- shell
- 領域
- ci-cd, devops, infrastructure
調査の方向性
config/rootfs/debos/overlays/prompt/root/.profile と config/rootfs/debos/rootfs.yaml から始め、続いて、一覧にある config/runtime/boot テンプレートを調べてハードコードされたプロンプトを確認します。関連するテンプレートレンダリングテストを実行し、Debos ジョブが新しいプロンプトのみを選択することを検証します。再ビルドされた Debos イメージ、成功した QEMU LAVA ジョブ、および必要に応じたハードウェア検証が完了条件です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Python
- スター
- 120
- フォーク
- 108
- 平均マージ
- 1日 12時間
- マージ済み PR(30日)
- 21
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
kernelci/kernelci-core のほかの issue
-
good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
kernelci/kernelci-core#2591 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
kernelci/kernelci-core#3234 ·
メンテナーはふだん 1 日以内に返信
-
Make Kubernetes job network readiness checks bounded and deployment-independent再び着手できるかも @Aniket1260 が 38 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンgood first issue techdebt
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
kernelci/kernelci-core#3197 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
chromeos techdebt
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
kernelci/kernelci-core#3196 ·
メンテナーはふだん 1 日以内に返信
-
kubernetes runners missing logs and test naming wrong再び着手できるかも @nuclearcat が 70 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
kernelci/kernelci-core#3170 · コメント 2 件 · リアクション 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
kernelci/kernelci-core の issue をすべて見る
似ている issue
-
docs(types): update the collection binding note now that typed collections shipped in pycubrid 1.9.0オープンdocumentation priority: low size: S
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
cubrid-lab/sqlalchemy-cubrid#768 ·
メンテナーはふだん 1 日以内に返信
-
bug help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
ansys/pydpf-core#3547 ·
メンテナーはふだん 1 日以内に返信
-
core
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
vectorize-io/hindsight#5457 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: LangChain drops OpenAI Responses text blocks from session recording対応中かも @ktz03 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
volcengine/OpenViking#5806 ·
メンテナーはふだん 1 日以内に返信