Right now, output directories are hardcoded in boot.desc. This means that
cros_make_image_bootable will still write to the directories mentioned in
build_image, even if it's working on a different directory. This can
mess with the buildbot, because it can cause cros_make_image_bootable
to mess with the files created for existing images.
This change fixes flaky failures where the buildbot fails with warnings
stating that vmlinuz_hd.vblock does not exist. See bug 19956.
BUG=chromium-os:19956
TEST=Run full canary trybot run and verify cros_make_image_bootable uses
files from the right directory now.
Change-Id: Ib390aa84570b077cbc8b69b757998056acc091ea
Reviewed-on: http://gerrit.chromium.org/gerrit/7282
Reviewed-by: Will Drewry <wad@chromium.org>
Tested-by: David James <davidjames@chromium.org>
This give users the choice to have rootfs formatted with squashfs.
When --squash_image is specified, the rootfs will be formatted to squashfs.
Users can also use --squash_sort_file to specify the file priority when
squashfs is created.
BUG=None
TEST=Manually tested "--squash_image", and the image can be installed
from USB stick. Also tried "--squash_sort_file=sort-prio.list", and files
in squashfs are sorted.
Change-Id: I5fd818ac9d1203598926efa82e94fa105cd86ebc
Reviewed-on: http://gerrit.chromium.org/gerrit/5664
Tested-by: Da Zheng <zhengda@chromium.org>
Reviewed-by: Da Zheng <zhengda@chromium.org>
This fixes a problem with chroots named other than 'chroot', but only
when running inside the chroot.
BUG=chromium-os:19596
TEST=run it inside the chroot
Change-Id: I9532fe7762e2d7e277305fb948e5cabc242a5213
Reviewed-on: http://gerrit.chromium.org/gerrit/6597
Tested-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
"cros_sdk" is a drop-in replacement of enter_chroot.sh. The only
important difference is in the calling path, specifically that
cros_sdk is in path but has to be called from $(pwd) being inside the
repo checkout, while enter_chroot.sh is called by explicit path.
Invariably, "./enter_chroot.sh" can be replaced, as pwd=src/scripts.
Calling by absolute path can be replaced by first changing directory
anywhere into the repo checkout, and then calling cros_sdk.
BUG=chromium-os:18750
TEST=run them
Change-Id: Ieff91a27bb419e1121361d5b3a11e4c87ff7a087
Reviewed-on: http://gerrit.chromium.org/gerrit/6273
Tested-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
When first creating an image, vmlinuz was extracted from /boot, and
installed in its place in the kernel partition. However, none of
that was necessary, because cros_make_image_bootable walks over the
same ground later in the build process.
BUG=chromium-os:17390
TEST=build_image, boot base and dev images on ZGB and legacy device
TEST=inspect build output directory, to confirm no stray artifacts
Change-Id: Iaf332b6603e0bcb17585adbc95a7b65bb8bfe790
Reviewed-on: http://gerrit.chromium.org/gerrit/5107
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
When first creating an image, vmlinuz was extracted from /boot, and
installed in its place in the kernel partition. However, none of
that was necessary, because cros_make_image_bootable walks over the
same ground later in the build process.
BUG=chromium-os:17390
TEST=build_image, boot base and dev images on ZGB and legacy device
TEST=inspect build output directory, to confirm no stray artifacts
Change-Id: Icd4902f5a823241f24eb64f68f80c8e5e5198341
Reviewed-on: http://gerrit.chromium.org/gerrit/4928
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
cros_download_latest_image was using cros_gsdcurl, which has stopped working,
even when you use application-specific passwords. I've updated it to use
gsutil instead, which is more supported.
BUG=chromium-os:17512
TEST=Try downloading the latest x86-generic image.
Change-Id: Ia7b0704a8c7ff6897508c44e882f87bc44ccbe28
Reviewed-on: http://gerrit.chromium.org/gerrit/5031
Reviewed-by: Rahul Chaturvedi <rkc@chromium.org>
Tested-by: David James <davidjames@chromium.org>
This is being done so that the image parser run by the bots
can still parse images built with this flag
BUG=chromium-os:18299
TEST=Wait for bots to cycle green with old images
Change-Id: Ibebe62f0db60ab3a57e04964f872398028ee48c8
Reviewed-on: http://gerrit.chromium.org/gerrit/4824
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Puneet Kumar <puneetster@chromium.org>
Reviewed-by: Puneet Kumar <puneetster@chromium.org>
This reverts commit 451f36e4a8.
Last time I removed the --crosbug12352_arm_kernel_signing flag, buildbot
failed. The reason seemed to be that buildbot still passing this flag to
build_image. However, I cannot find anywhere in the log that indicates
buildbot did pass this flag to build_image. So I think the last failure
should be transient and it is good to obsolete this flag.
BUG=chromium-os:12352
TEST=build_image
TEST=load_kernel_test -b 2 /path/to/image /path/to/recovery_key.vbpubk
Change-Id: Ic757eb2dc4304e7205b483063335f8816b536433
Reviewed-on: http://gerrit.chromium.org/gerrit/4794
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
This change addresses a defect which prevents simultaneous use of
'cros_image_to_target.py'.
The issue is that the default invocation will always use the same port
number of HTTP communication. This change, with default parameters,
will now start at the same port number, but will now instead iterate
through a number of ports (the number of ports is set to 10).
If no available port can be found, the script will fail with an
appropriate message.
If the user specifies a specific port, then only that port number will
be used; if the port is not available, the script will fail with an
approrpriate message.
BUG=chromium-os:17558
TEST=Uploaded two images simultaneously to different boards.
Change-Id: Icbbea12468fd766897daeecb0b7f1d3929f52a1c
Signed-off-by: Taylor Hutt <thutt@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/4110
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Terry Lambert <tlambert@chromium.org>
Since now the arm firmware can parse %U as x86 bios, and kernel can
parse PARTNROFF=%d, we are able to generate kernel command line with
such construct.
BUG=chromium-os:14022,15683
TEST=manual
1. Build image with root filesystem verification turns off
2. Boot successfully
3. Run 'cat /proc/cmdline' and validate its output
4. Run 'rootdev' and validate its output
Change-Id: I11de0a30928efe9d9b0149feb3389a2f30063516
Reviewed-on: http://gerrit.chromium.org/gerrit/1104
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
Reviewed-by: <nsanders@google.com>
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Every developer image (and test images based on the developer image) should
include "cros_debug" in the kernel commandline. This flag is used by the
crossystem application to determine if the image being run is a developer
image. cros_make_image_bootable receives a new flag, --force_developer_mode
that appends "cros_debug" to the boot args.
BUG=chromium-os:16951
TEST=build images. Flash a base image and confirm the absence of "cros_debug"
in /proc/cmdline. Flash the developer image and confirm the existence of the
string.
Change-Id: I9f748638b5dac384be991908239e8b447ddf3b5e
Reviewed-on: http://gerrit.chromium.org/gerrit/3169
Tested-by: Arkaitz Ruiz Alvarez <arkaitzr@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
cros_make_image_bootable is called up to 4 times in a typical workflow. The fsck
check can take up to a minute or more because it first copies 2G of the image to
run the fsck on. It adds several minutes to the build.
The check itself is just a sanity check that shouldn't trigger in normal builds.
BUG=none
TEST=build_image
Change-Id: I86512f7efc67027fe687f0c0ad8f6df32579dbe2
Reviewed-on: http://gerrit.chromium.org/gerrit/2250
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
This commit is a part of transition to enable ARM kernel signing. It is
at first an option that is enabled manually, and then (in this commit)
enabled by default. After more tests, the scripts that generate unsigned
ARM kernel partition will probably be removed.
BUG=chromium-os:12352
TEST=./build_image && load_kernel_test -b 2 /path/to/chromiumos_image.bin /usr/share/vboot/devkeys/recovery_key.vbpubk
Change-Id: I7d4ecc566f9c5cc0106a7af59255fc63fdfe017a
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Reviewed-by: Rong Chang <rongchang@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/1319
Tested-by: Nick Sanders <nsanders@chromium.org>
This reverts commit c7dc24c89e.
BUG=15076
TEST=Unit tests pass. Scrubbed kernel from local_manifest.xml and then
worked on it again.
Change-Id: Ia0052cf2efa330e1c6422f2876d146bf6f297378
Reviewed-on: http://gerrit.chromium.org/gerrit/625
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Mandeep Singh Baines <msb@chromium.org>
Fix to handle new repository naming. Instead name="kernel", the kernel
is now name="chromiumos/third_party/kernel".
BUG=15076
TEST=Ran unittests and verified that local_manifest.xml got created
correctly when working on the kernel for the first time.
Change-Id: Ib0eef7ecb0522c3b5bcc111d0f30467c8ca19ec5
Reviewed-on: http://gerrit.chromium.org/gerrit/546
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Mandeep Singh Baines <msb@chromium.org>
This commit is a part of transition to enable ARM kernel signing. It is
at first an option that is enabled manually, and then (in this commit)
enabled by default. After more tests, the scripts that generate unsigned
ARM kernel partition will probably be removed.
BUG=chromium-os:12352
TEST=./build_image && load_kernel_test -b 2 /path/to/chromiumos_image.bin /usr/share/vboot/devkeys/recovery_key.vbpubk
Change-Id: I6d48d1603cd7c96514892bcbbf8994b2d4cc2a08
Reviewed-on: http://gerrit.chromium.org/gerrit/512
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
In both cases move making contact with the remote board to
an earlier step and default the "board" option to whatever
is reported by the remote.
BUG=n0ne
TEST=Run without board flag or .default_board
Change-Id: I53330ce5ab05b4cff92ac3a384ae0202fc156953
Reviewed-on: http://gerrit.chromium.org/gerrit/433
Reviewed-by: Sam Leffler <sleffler@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Verity only supports a depth of 0. Passing anything other than 0 will
cause a verity failure.
BUG=14314
TEST=Verified that verity does not fail when do depth is passed.
Before this change, verity would fail with the error message
reported in the bug.
Change-Id: I68495c4486284744ee0779b6c9cdc0ef214519c7
R=gauravsh@google.com,scottz@google.com,drewry@google.com
Review URL: http://codereview.chromium.org/6873134
For run_remote_tests this required "fixing" restart_in_chroot if required. Right now that script ->only<- works if its run on a scripts being called from src/scripts. This change makes it more generic by doing this for any script called from within our source tree.
I borrow reinterpret_path_for_chroot from image_to_live. Other CL to remove it from there.
Change-Id: If717beccd777ac178366d58b91521b9a62d55d85
BUG=chromium-os:11172
TEST=Ran them
Review URL: http://codereview.chromium.org/6730012
Change-Id: I8233aaab234eb6a3a7948abb1d311c4c9c162190
BUG=chromium-os:11172
TEST=Ran from new symlinks from previous locations.
Review URL: http://codereview.chromium.org/6731005
This should fix the failure seen in internal builds
Change-Id: I527acc37597ab9157aedf0330e43f3159ee66fdd
BUG=Should exist
TEST=Ran it locally
TBR=dgarret. Internal builds have been failing on these for a while and no one yelled about it :(
Review URL: http://codereview.chromium.org/6676059
Cleaned up _InsertKeyIntoImage to be more general (able to remove key if no key set). Also made it much more intelligent ... only doing things when it needs to.
Moved mount / unmount code to cros_lib.
BUG=chromium-os:12684
TEST=Ran it a lot ... inspected images after and saw tests pass.
Review URL: http://codereview.chromium.org/6698017
Change-Id: Icd96d1178eeabf45a2d5916fbcab8bf7ffba7e21
Change-Id: I9fed7319609848ba90abfaa147fad85bd4114fdc
BUG=TreeCloser
TEST=Ran it locally in a VM a cpl times.
Review URL: http://codereview.chromium.org/6696002
git config doesn't behave well if there are multiple callers
calling it at the same time. Since this is best effort anyway,
I'm adding an || true so that multithreads calls to this don't
fail.
I removed my previous work around to this since it wasn't generic enough.
Change-Id: I12f2d3faaa745c1ff675a297bb09c567a88aa185
BUG=chromium-os:13070
TEST=Ran it a lot
Review URL: http://codereview.chromium.org/6693001
Change-Id: Ib5617612be38bb6d7dafcb2edab887c998a676ab
BUG=chromium-os:12951
TEST=Ran it with Simple. Saw logs generated (1_update) and in root/dev_server.log. Ran unittests for cros_build_lib.
Review URL: http://codereview.chromium.org/6672007
cros_run_parallel_vm_tests doesn't work unless you pass --use_emerged; there must be some underlying issue with trying to perform multiple run_remote_tests commands at the same time, even on different VMs. So, remove the option and force --use_emerged on the calls to cros_run_vm_test.
BUG=8544
TEST=run two tests in parallel with cros_run_parallel_vm_tests and see that they both complete.
Change-Id: I1152ca3dd7f1de37261da894b9b903c90c2e6524
Review URL: http://codereview.chromium.org/6612058
Not sure how I missed this.
Change-Id: Icd67b6119cbe5ef59bcf2c42784ac8fd011f2ab9
BUG=chromium-os:12953
TEST=Ran it
Review URL: http://codereview.chromium.org/6659009
Sets up dir paths as follows:
test_root/test_name i.e. SimpleUpdate/<num>_stage
For example:
test_root/testNormalUpdateKeepStateful/2_verify/...test_results...
corresponds to the second invocation of verify image. The test
results for this stage are stored here.
This is a predecessor for storing arbitrary logs e.g. update into
this test results root.
Change-Id: I7183420b5dcb0d6971aa508a338c048c3557e359
BUG=chromium-os:12211
TEST=With simple a full vm test suite w/ w/out explicit test root
set.
Review URL: http://codereview.chromium.org/6614029
This CL is a large refactoring that moves the test_harness from using sub-classed classes of au_test into a one where we have the same AU_Test for all test flows but different test workers that operate on different types of machines. Specifically we move the VM / Real-image specific logic into real_au_worker and vm_au_worker. There isn't anything functionally different in this change.
Also, we move the classes into their own modules and clean up use of cros_build_lib to be more stylistically correct.
Change-Id: I3e25141174c3d5ba22962bf94365815e69e5bedf
BUG=chromium-os:11172
TEST=Ran with simple and full w/ w/out delta update payloads and with unittest and without unittest keys. Ran real test using full suite on test device using full update payloads.
Review URL: http://codereview.chromium.org/6597122
When running tests that generate huge amounts of output (like
desktopui_BrowserTest) it would be nice to suppress stdout and stderr
so that the buildbot logs aren't enormous. Adding a --quiet flag that
requires the --results_dir_root flag ensures that we can trim the
output while still ensuring that the useful data is captured.
BUG=8544
TEST=run two tests in parallel with --quiet and --results_dir_root and see that the output is where you expect it
Change-Id: I25c7ad2bc1d017a30df0d1ad4604207443e711d7
Review URL: http://codereview.chromium.org/6602098
BUG=chromium-os:5246
TEST=below, During all tests, the directory platform/dev was manually removed
1) Ran cros_au_test_harness.py and saw it succeed
2) Ran generate_au_zip.py, compared the generated .zip with one before this
patch - they were identical
3) Ran cros_image_to_target.py and saw it succeed
Change-Id: Iab2620245a45442b79ee8369f3af1a3990f4644e
Review URL: http://codereview.chromium.org/6576023
BUG=n0ne
TEST=run the script and see the update go
Change-Id: Ie767edf85876b7864f6425efed1ac554026ecdff
Review URL: http://codereview.chromium.org/6596062
For now arm kernel partitions are not signed. This CL is a transitionsl.
That is, the added flag should be removed after arm verified boot is stable.
To properly create an arm kernel partition, we also need another CL for
vbutil_kernel utility that turns off x86-only modifications on kernel
image. See CL:6538015.
BUG=chromium-os:3790,chromium-os:12352
TEST=see below
Build images for x86 and arm successfully, and notice that load_kernel_test
passes for x86 and signed arm image.
$ build_image --board=tegra2_seaboard --crosbug12352_arm_kernel_signing
$ build_image --board=tegra2_seaboard --nocrosbug12352_arm_kernel_signing
$ build_image --board=x86-generic
Review URL: http://codereview.chromium.org/6538014
Change-Id: I1be381bae2fc367a0603ac2ec67ee70fc9a257e4
Using %U+1 will ensure that we avoid device enumeration issues during recovery mode
boots.
TEST=build_image+dev recovery kernel and boot to it on new cros fw / fixed enumeration problem
used build with mp recovery kernel on cr-48 -> installed then booted fine
used dev recovery kernel on a legacy machine; installed fine, booted fine
tested with cr-48, mp recovery kernel, and noenable_rootfs_verification to ensure /dev/sd%D%P still worked as normal.
Change-Id: I5b1277a47536738a78c18988fd912cc05ebddd4b
BUG=chromium-os:5470
Review URL: http://codereview.chromium.org/6549034
Note: sudo before ifconfig is for running on distros which do not
have /sbin or /usr/sbin in common user's paths, like gentoo.
Change-Id: I85bd379ad059d6ecaa8c11f3167fae27987479dd
BUG=5246
TEST=run cros_au_test_harness and see it not fail
Review URL: http://codereview.chromium.org/6541008