New issue
Advanced search Search tips

Issue 820418 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

factory shim failed to show menu.

Project Member Reported by hungte@chromium.org, Mar 9 2018

Issue description

Chrome Version: ToT
OS: Chrome

What steps will reproduce the problem?
(1) Find a ToT shim with for newer platforms
(2) Boot factory shim

What is the expected result?
See menu

What happens instead?
Hang after entered kernel


 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 10 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/initramfs/+/697c083c2859217fbb891dfffc25e7145512a5f7

commit 697c083c2859217fbb891dfffc25e7145512a5f7
Author: Hung-Te Lin <hungte@chromium.org>
Date: Sat Mar 10 04:05:19 2018

factory_shim: Keep frecon-lite TTY files.

Few recent devices will stuck and not able to start factory shim menu.
This is found to be caused by two issues:
 1. chromeos_startup re-created /dev/pts and the factory shim can't
    access VT.
 2. Some devices will hang when we try to re-launch a new frecon
    instance, if we want to recover for case 1.

To prevent case 1, we want to keep a reference (mount --bind) and change
Frecon VT symlinks to there.

* `tar` or `cp -LR --preserve=all` does not help because TTY files are
  not valid when not in devpts fs.
* `factory_tty.sh` expects all symlink targets will live in /dev so we
  have to bind to /dev/frecon-lite instead of /run/frecon.

BUG= chromium:820418 
TEST=build_image factory_install; boot the image.

Change-Id: Id5b3a4d0c6b803308e8eac43ea001423539f8c8e
Reviewed-on: https://chromium-review.googlesource.com/954811
Commit-Ready: Hung-Te Lin <hungte@chromium.org>
Tested-by: Cheng-Han Yang <chenghan@chromium.org>
Reviewed-by: Cheng-Han Yang <chenghan@chromium.org>

[modify] https://crrev.com/697c083c2859217fbb891dfffc25e7145512a5f7/factory_shim/bootstrap.sh

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 10 2018

Labels: merge-merged-stabilize-meowth-10444.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/initramfs/+/66559c124d256dcfbd92a35910a119ec6521db0a

commit 66559c124d256dcfbd92a35910a119ec6521db0a
Author: Hung-Te Lin <hungte@chromium.org>
Date: Sat Mar 10 09:11:38 2018

factory_shim: Keep frecon-lite TTY files.

Few recent devices will stuck and not able to start factory shim menu.
This is found to be caused by two issues:
 1. chromeos_startup re-created /dev/pts and the factory shim can't
    access VT.
 2. Some devices will hang when we try to re-launch a new frecon
    instance, if we want to recover for case 1.

To prevent case 1, we want to keep a reference (mount --bind) and change
Frecon VT symlinks to there.

* `tar` or `cp -LR --preserve=all` does not help because TTY files are
  not valid when not in devpts fs.
* `factory_tty.sh` expects all symlink targets will live in /dev so we
  have to bind to /dev/frecon-lite instead of /run/frecon.

BUG= chromium:820418 
TEST=build_image factory_install; boot the image.

Change-Id: Id5b3a4d0c6b803308e8eac43ea001423539f8c8e
Reviewed-on: https://chromium-review.googlesource.com/954811
Commit-Ready: Hung-Te Lin <hungte@chromium.org>
Tested-by: Cheng-Han Yang <chenghan@chromium.org>
Reviewed-by: Cheng-Han Yang <chenghan@chromium.org>
(cherry picked from commit 697c083c2859217fbb891dfffc25e7145512a5f7)
Reviewed-on: https://chromium-review.googlesource.com/958043
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
Trybot-Ready: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/66559c124d256dcfbd92a35910a119ec6521db0a/factory_shim/bootstrap.sh

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory_installer/+/56bd5e7eb58805e178cce995f3e99654e8525d64

commit 56bd5e7eb58805e178cce995f3e99654e8525d64
Author: Hung-Te Lin <hungte@chromium.org>
Date: Fri Mar 30 04:59:56 2018

Add new 'factory_bootstrap' to allow easier patching factory shim.

It is found that when debugging factory shim boot failure, patching the
bootstrap code (inside initramfs) is pretty painful because we have to
re-build kernel and image every time. A better approach is to put the
patching part (more factory stuff and may change often) into rootfs and
let initramfs to load and run.

BUG= chromium:820418 
TEST=busybox sh factory_bootstrap.sh

Change-Id: If0785bbdaec8cdac1f0d3fe4be8131f54fd81087
Reviewed-on: https://chromium-review.googlesource.com/958758
Commit-Ready: Hung-Te Lin <hungte@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Cheng-Han Yang <chenghan@chromium.org>

[add] https://crrev.com/56bd5e7eb58805e178cce995f3e99654e8525d64/factory_bootstrap.sh

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/initramfs/+/6825ff7a82cf5bd837c93df5ea492d1e694bb43e

commit 6825ff7a82cf5bd837c93df5ea492d1e694bb43e
Author: Hung-Te Lin <hungte@chromium.org>
Date: Fri Mar 30 04:59:56 2018

factory_shim: Move patching for new rootfs into factory_bootstrap.sh.

Debugging 2nd stage (init) bootstrap is painful if the patching code is
inside initramfs since we have to always rebuild kernel and disk image.

Move that to src/platform/factory_installer/factory_bootstrap.sh so it's
easier by doing patch files in rootfs on USB stick and simply reboot.

BUG= chromium:820418 
TEST=build_image factory_install; boot the image.
CQ-DEPEND=CL:958758

Change-Id: Id1b138ccf55ab2fd6596f585d36b1aa34f50b326
Reviewed-on: https://chromium-review.googlesource.com/958303
Commit-Ready: Hung-Te Lin <hungte@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Cheng-Han Yang <chenghan@chromium.org>

[modify] https://crrev.com/6825ff7a82cf5bd837c93df5ea492d1e694bb43e/factory_shim/bootstrap.sh

Comment 5 by hungte@chromium.org, Mar 30 2018

Status: Fixed (was: Assigned)

Sign in to add a comment