Commit Graph

30 Commits

Author SHA1 Message Date
You-Cheng Syu
4e0939b377 make_dev_ssd: Fix help message.
Fix the indent and content of the help message.

BRANCH=none
BUG=none
TEST=./make_dev_ssd.sh -h

Change-Id: I12f0de807cf5cb8d6edf7f4a6acdc7c11d0114d9
Reviewed-on: https://chromium-review.googlesource.com/848620
Commit-Ready: Youcheng Syu <youcheng@chromium.org>
Tested-by: Youcheng Syu <youcheng@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
2018-01-04 07:35:41 -08:00
Nicolas Boichat
befe2e8f2a make_dev_ssd: Include full command path in error/help message
Let's use the actual command/path used to call make_dev_ssd.sh,
instead of hard-coding './'.

BRANCH=none
BUG=none
TEST=/usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification
     outputs a command that can just be copy-pasted:
     sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4
     (instead of:
     sudo ./make_dev_ssd.sh --remove_rootfs_verification --partitions 4
     )

Change-Id: I903f94acc1fb310926b149c1e79e4017bf513e27
Reviewed-on: https://chromium-review.googlesource.com/737810
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
2017-10-25 05:52:43 -07:00
Hung-Te Lin
01dc818924 Change invocation of "gbb_utility" to "futility gbb"
Replace commands using gbb_utility by the new 'gbb' futility command.

BRANCH=none
BUG=None
TEST=USE=test emerge-$BOARD vboot_reference

Change-Id: I8c1547d295a955373413482509a33964b0e0c06f
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/538442
Reviewed-by: Stefan Reinauer <reinauer@google.com>
2017-06-21 23:38:08 -07:00
Mike Frysinger
9d11bb1b1d image_signing: unify output helpers
We have `err_die` and `die` helpers that do the same thing, but some
scripts just have to know which one to use based on their runtime.
Just unify them as the more common `die` so all scripts can use it.

Similarly, we provide info, warn, and error to dev scripts, but not
to the runtime ones.  Add small stubs in common_minimal.sh so the
API is consistent.

BRANCH=None
BUG=chromium:718184
TEST=scripts still work

Change-Id: Id44fb27900c37f4e357d20817f909e4534d1c5b3
Reviewed-on: https://chromium-review.googlesource.com/507990
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: David Riley <davidriley@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
2017-05-19 04:13:09 +00:00
Mike Frysinger
eb7c7632fe image_signing: make_dev_ssd.sh: convert to info/error helpers
This makes the output easier to follow when multiple scripts are being run.

BRANCH=None
BUG=chromium:714598
TEST=signing images still works

Change-Id: I96e20f38b6a51ad4dc8064fa3fb3d4302c47888f
Reviewed-on: https://chromium-review.googlesource.com/497302
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: David Riley <davidriley@chromium.org>
2017-05-12 20:58:06 -07:00
Qiang Xu
a1001da565 Strip out bootcache config when removing rootfs verification
For a device with bootcache support (such as parrot), the kernel config
contains bootcache args (reference: device_map_args in
build_kernel_image.sh). When removing rootfs verification, bootcache
should be disabled, equivalently we should remove bootcache args.

BRANCH=vboot_reference
BUG=chromium:590606
TEST=tested on parrot device with ./build_image --board=parrot test.
After installing the image on device,
(1) run sudo /usr/share/vboot/bin/make_dev_ssd.sh
 --remove_rootfs_verification
(2) reboot
The bootloop bug is fixed.

Change-Id: I56ca5f2d98e00e1117611959a67ce72338ec7377
Reviewed-on: https://chromium-review.googlesource.com/395386
Commit-Ready: Qiang Xu <warx@chromium.org>
Tested-by: Qiang Xu <warx@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Qiang Xu <warx@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2016-10-13 17:26:38 -07:00
Hung-Te Lin
a0185aecc9 make_dev_ssd: Add '--edit_config' to support in-place editing.
The '--save_config' and '--set_config' are found to be very useful for
developers but it's sometimes inconvenient that developer must specify a
temporary path and to know the implicit rules of how the files are generated.

Since most people just want to do in-place editing, we can add a --edit_config
so developers can simply invoke "make_dev_ssd --edit_config --partitions 2" to
start changing kernel command line without worrying about where to store the
temporary files.

BRANCH=none
BUG=none
TEST=./make_dev_ssd.sh --edit_config --partition 2

Change-Id: Ib8f19115df31f3f250b4378201d0f7ea562fec15
Reviewed-on: https://chromium-review.googlesource.com/266814
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
2015-04-23 02:36:26 +00:00
Chirantan Ekbote
eee1b3d227 Add sanity check for dev_boot_signed_only
Removing rootfs verification or resigning kernels can lead to an
unusable system if the dev_boot_signed_only flag is set.  Add a sanity
check to print out an error when this happens.

BRANCH=none
BUG=none
TEST=manual
Run /usr/share/vboot/bin/make_dev_ssd.sh with the dev_boot_signed_only
flag set to 1 and observe that an error message is printed.

Change-Id: If116538152ee3122e3b742918bf1676982754fdd
Reviewed-on: https://chromium-review.googlesource.com/260970
Trybot-Ready: Chirantan Ekbote <chirantan@chromium.org>
Tested-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Commit-Queue: Chirantan Ekbote <chirantan@chromium.org>
2015-03-19 23:48:46 +00:00
Hung-Te Lin
26af0da4f7 make_dev_ssd: Allow smaller kernel partition.
Some Brillo devices may have smaller kernel partition and we need to reduce the
size limit.

BUG=none
BRANCH=none
TEST=make_dev_ssd.sh applied on a Brillo config with 8MB kernel partition.

Change-Id: I9ca37445a6cdb20138f13dbe975c207383a1474c
Reviewed-on: https://chromium-review.googlesource.com/255341
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Mao Huang <littlecvr@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
2015-03-03 21:37:59 +00:00
Hung-Te Lin
42f02139d5 make_dev_ssd: support devices using /dev/dm-1 as root device.
Some devices may use rootdev=/dev/dm-1 as root device (the default one was
dm-0, according to build scripts). Running make_dev_ssd.sh
--remove_rootfs_verification on these devices will fail changing rootdev kernel
command line, and cause people not able to re-mount root device as writable.

To support running make_dev_ssd on these devices, we want to change the rootdev
pattern to dm[0-9].

BUG=chromium:428041.
TEST=make_dev_ssd.sh --remove_rootfs_verification
BRANCH=none

Change-Id: Idfd251c58e7d39b0b80ec1fc68989c2f49bdd1b2
Reviewed-on: https://chromium-review.googlesource.com/226782
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
2014-11-01 09:39:04 +00:00
Hung-Te Lin
8f15d74fd6 make_dev_ssd: Allow chromeos-install to run on a modified image.
chromeos-install always expects DM verity information from install source,
because even when --noenable_rootfs_verification is applied, the output image
will still include DM verity in kernel command line (just not enabled).

To support developers installing a modified image (by
--remove_rootfs_verification), we have to change the command line to keep DM
verity data, just like how --noenable_rootfs_verification is done.

BRANCH=none
BUG=none
TEST=make_dev_ssd.sh --noenable_rootfs_verification; reboot;
     chromeos-install # success.

Change-Id: I3b2c8cbf1b89086ed91b5549c7147cd940fbda14
Reviewed-on: https://chromium-review.googlesource.com/207321
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
2014-08-25 04:53:36 +00:00
Hung-Te Lin
798cc91de1 Change flashrom target selection parameter.
The "-p internal:bus=*" is now deprecated by "-p {host,ec}" because we may have
EC on SPI bus.

BUG=none
TEST=manually executed dev_debug_vboot and see correct output.
BRANCH=none

Change-Id: I6363c09c2ebf57812bf35b7db220303a2786db20
Reviewed-on: https://gerrit.chromium.org/gerrit/66321
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Yung-Chieh Lo <yjlou@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
2013-08-21 19:19:43 -07:00
Paul Taysom
8a42c2718f remove verity regardless of dm device
Changed the pattern substitution to work with dm-[0-9]

BUG=chromium-os:25441
TEST=Turned off verity on stumpy both with and without bootcache
BRANCH=none

Change-Id: I519ad71879f2db847f450b869c8f7a67606f1e20
Reviewed-on: https://gerrit.chromium.org/gerrit/38691
Tested-by: Paul Taysom <taysom@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Paul Taysom <taysom@chromium.org>
2012-11-27 10:02:43 -08:00
Randall Spangler
8dde1491e5 Fix make_dev_ssd.sh --remove_rootfs_verification
It was checking for /dev/dm-0, which isn't the case anymore.  It now
always attempts to remove rootfs verification from the command line;
this is harmless (no-op) if it's already removed.

BUG=chromium-os:31558
TEST=manual

/usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification
reboot
touch /opt/google/chrome/chrome

Change-Id: I62dc138e8d1d09bdcb16be3faab74d32c5f7675a
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/28506
Reviewed-by: David James <davidjames@chromium.org>
2012-08-03 12:22:32 -07:00
Hung-Te Lin
a7a879e0fb make_dev_ssd: support new %U parameter
The %U is better since arm and x86 both supports it now.

BUG=chromium-os:15683
TEST=./make_dev_ssd.sh # need latest kernel patch

Change-Id: I94a6471788d3496cfa7ef263493e89877bb2b593
Reviewed-on: http://gerrit.chromium.org/gerrit/3551
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
2011-07-01 03:12:03 -07:00
Hung-Te Lin
c3b877d8cb make_dev_ssd: fix ARM device names
BUG=chromium-os:15061
TEST=(on arm) ./make_dev_ssd.sh --remove_rootfs_verification # works

Change-Id: I0ed5e02cd566c89b2604a2e77b87413dc957471e
Reviewed-on: http://gerrit.chromium.org/gerrit/3375
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
2011-06-30 18:15:54 -07:00
Hung-Te Lin
c1d8dc8aa7 make_dev_ssd: more sanity checks
make_dev_ssd is a powerful command bug may confuse developers by its behavior.
Adding sanity checks can prevent developers throwing their system into
un-bootable ste.

BUG=chromium-os:14219
TEST=./make_dev_ssd.sh -i some_images; # no check, pass
     ./make_dev_ssd.sh # see alert for live partitions
     (with non-developer firmware) ./make_dev_ssd.sh --partitions 2 # seeing firmware warning
     (with developer firmware) ./make_dev_ssd.sh --partitions 2 # pass, no warning
     (with dev-signed normal firmware) ./make_dev_ssd.sh --partitions 2 # pass, no warning
     ./make_dev_ssd.sh -f # seeing 5 second condown alert screen and then continue

Change-Id: I7ae134c03899b2dc4a6d95f6d9091c38e6f8cf65

R=rspangler@chromium.org

Review URL: http://codereview.chromium.org/6870026
2011-04-26 10:37:46 +08:00
Hung-Te Lin
83728d0aef vboot_reference: check developer firmware before running make_dev_ssd
Developers may turn on developer switch, enter shell, and then try to run
make_dev_ssd without switching to developer firmware / dev root key.
And that would make the system showing "NO GOOD" or "INSERT" screen
after reboot.

For sanity check, we should check if firmware type is "developer" before running
make_dev_ssd.

BUG=none
TEST=(using normale firmware) make_dev_ssd # seeing the error messages
     sudo chromeos-firmwareupdate --mode=todev; sudo reboot
     (using developer firmware) make_dev_ssd # not seeing error

Change-Id: Id62959c91c39b0bbcca604c9e83fd087e3727b8b

R=rspangler@chromium.org

Review URL: http://codereview.chromium.org/6840047
2011-04-15 11:07:06 +08:00
Hung-Te Lin
b5633c6f65 make_dev_ssd.sh: support updating legacy boot partitions
Change the boot default option in partition 12 (ESP) when we want to disable
rootfs verification.

BUG=chromium-os:12424
TEST=./make_dev_ssd --remove_rootfs_verification --recovery_key -i USB_IMAGE
     # the image is bootable by H2C and H2C BIOS(EFI).
     # Not tried on non-EFI (syslinux) firmware, but it should work.

Change-Id: I7533bb73597041bbdc8cc57e4e8baaf6ca242309

R=wfrichar@chromium.org

Review URL: http://codereview.chromium.org/6813109
2011-04-13 08:27:10 +08:00
Hung-Te Lin
7f37edcf00 vboot_reference: allow using recovery_key in make_dev_ssd.
Adding --recovery_key enables make_dev_ssd to process recovery images (including
USB bootable images).

R=gauravsh@chromium.org
BUG=chromium-os:12424
TEST=./make_dev_ssd.sh --remove_rootfs_verification --recovery_key -i /dev/sdd
     # then use the USB to boot on a H2C device - success.

Review URL: http://codereview.chromium.org/6799007

Change-Id: Ie983f08ff8eba9472800b2f4097915ce380a0c50
2011-04-07 09:04:05 +08:00
Hung-Te Lin
a41b7bae21 vboot_reference: remove trailing newline/space for make_dev_ssd
To make the output of kernel_config from make_dev_ssd more close to the original
images, we should eliminate the trailing newline/space.

BUG=chromium-os:13516
TEST=make_dev_ssd.sh # succcess

Change-Id: I17f030f8815dea22b04058456d98db6911888ef6

R=rspangler@chromium.org,clchiou@chromium.org

Review URL: http://codereview.chromium.org/6735009
2011-03-30 13:05:53 +08:00
Gaurav Shah
605500b88c Split common.sh into bash-only and dash-only sections
Change-Id: I044331dc3558a4f7428b75fe43ef739498d65803

BUG=chromium-os:10836
TEST=scripts that use common.sh seem to work, would appreciate help in testing Chrome OS client scripts!

Review URL: http://codereview.chromium.org/6294002
2011-01-18 12:00:50 -08:00
Randall Spangler
e37ff5d596 Check in tofactory script.
Also refactor the other scripts to move more common functions (debug output, etc.) to common.sh.

BUG=chrome-os-partner:1903
TEST=manual; ran on a Chrome notebook, verified the right things got copied.

Review URL: http://codereview.chromium.org/5878005

Change-Id: Ib7131356ecb6f88eee3d529a518f23b94756d0c0
2011-01-04 16:42:08 -08:00
Bill Richardson
51b9b83622 Accept list of kernels to re-sign, instead of assuming only 2 & 4.
Change-Id: Ice7b3a9323f003654d1062f721a21f37856f44d7

BUG=chromium-os:10246
TEST=manual

This should resign kernel partitions 2 & 4, as before:

  make_dev_ssh.sh --save_config foo
  make_dev_ssh.sh --set_config foo

This should only resign kernel 2:

  make_dev_ssh.sh --save_config foo --partition '2'
  make_dev_ssh.sh --set_config foo --partition '4'

This should attempt to resign 2, 4, and 6. It's okay if not all succeed.

  make_dev_ssh.sh --save_config foo --partition '2 4 6'
  make_dev_ssh.sh --set_config foo --partition '2 4 6'

Review URL: http://codereview.chromium.org/5736006
2010-12-11 10:30:57 -08:00
Bill Richardson
1615bbff9a make_dev_ssh.sh should handle image C as well
BUG=chromium-os:10213
TEST=manual

From a shell, run

  cd /tmp
  /usr/share/vboot/bin/make_dev_ssd.sh --save_config foo

You should see messages about kernel A, kernel B, and kernel C. It doesn't
matter what those messages are (well, it does, but testing that is way too
complicated and only useful for dev-mode hacking).

Change-Id: I32aaeae18fb9dd957ab17a452d1ea6d7cd8fe788

Review URL: http://codereview.chromium.org/5698004
2010-12-10 14:24:14 -08:00
Randall Spangler
38ab919c08 Add --save_config and --set_config options to make_dev_ssd.sh
Change-Id: I691e6e62f5d5d9b6671fd05f172829b84d503b77

BUG=9934
TEST=manual

1. From a root shell, on a device signed with developer keys:
  make_dev_ssd.sh --save_config=foo

This should create a foo.2 file with a kernel command line.  It'll be
similar to the one in /proc/cmdline.  It may create a foo.4 file, if
kernel B is also valid.

2. Modify the command line in foo.2 (and foo.4, if it exists).
Suggest adding "blah2" to foo.2, and "blah4" to foo.4 if it
exists.

3. From a root shell:
  make_dev_ssd.sh --set_config=foo

4. Reboot.

5. Check the kernel command line.
  cat /proc/cmdline

If you booted from kernel A, you should see "blah2" in the command
line.  If B, you should see "blah4".

Review URL: http://codereview.chromium.org/5567003
2010-12-03 09:26:22 -08:00
Hung-Te Lin
b5c991b3b8 make_dev_ssd: fix --remove_rootfs_verification
The remove_rootfs_verification was corrupted by several issues:
1. enable_rw_mount (ext2 RO bit hack) should be performed on every rootfs
   and only after we successfully resigned the kernel.
2. for latest images, we must first resign again before changing
   boot parameter, otherwise verification would fail.
Both fixed and verified.

BUG=chromium-os:8629
TEST=(1)built a ToT image, install by USB boot, then
        ./make_dev_ssd --remove_rootfs_verification; then reboot.
        rootdev shows /dev/sda3 and is writable.
     (2)install by factory setup and then wipe so that root = sda5
        ./make_dev_ssd --remove_rootfs_verification; then reboot.
        rootdev shows /dev/sda5 and is writable.

Change-Id: I27d92964f3fbe160a207069a39516a879de64245

Review URL: http://codereview.chromium.org/4525002
2010-11-08 11:07:53 +08:00
Will Drewry
f5529068ec make_dev_ssd: fix the offset for enable_rw_mount
The rootfs offset was not converted to bytes. This changes fixes that.

BUG=none
TEST=ran it on an image and it found the ext2 magic

Change-Id: I814c3b89bf5246e3ceab851f80c4a4d4d7e63919

Review URL: http://codereview.chromium.org/4071002
2010-10-22 09:06:42 -05:00
Will Drewry
aaae959412 common.sh, ...: add support for ext2-ro/rw hack
Copies the helpers from crosutils.git/common.sh but uses
printf with octals for portability. This should update all
locations where we mount root rw and disable_rw_mounts just before
a final sign.

TEST= in progres; plz help :)
BUG=chromium-os:7972

Change-Id: Ibdd23cb30335942c36d537663aabea605a2f8704

Review URL: http://codereview.chromium.org/3987001
2010-10-21 18:29:02 -05:00
Hung-Te Lin
20525b9164 make_dev_ssd: new script to change SSD image to dev key
The make_dev_ssd.sh is made for devinstall shim to
change SSD kernels to be signed by dev keys.

 - Kernel A, B will be resigned with dev keys (ignore if A/B seems not bootable)
 - Adding param --remove_rootfs_verification can even disable rootfs hash check

This CL also includes some shared refine/fix to make_dev_firmware.sh

BUG=chrome-os-partner:1276
TEST=sudo ./make_dev_ssd.sh; (seeing Kernel A is resigned and B is ignored)
     then reboot without developer mode (OK),
          rootdev shows /dev/dm-0, rootdev -s shows /dev/sda3
     sudo ./make_dev_ssd.sh --remove_rootfs_verification;
     then reboot without developer mode (OK), rootdev shows /dev/sda3

Change-Id: Ic20f734b2af42e50a43c19a565a166a39d57a7fd

Review URL: http://codereview.chromium.org/3772013
2010-10-16 09:37:32 +08:00