BUG=chromium-os:6840
TEST=Build and install Chrome OS image, no issues observed
Change-Id: I24ea3a96490a81c8926852eff6d2451e57e196f7
Review URL: http://codereview.chromium.org/6546045
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
The xorg-server ebuild creates /usr/share/portage on the rootfs partition. This
breaks build_image which wants to point the same directory at the stateful
partition.
To work around this we just link to make.globals directly. This workaround fixes
gmerge but doesn't address the problem that there might be more files inside
/usr/share/portage. A better fix should be addressed as part of
crosbug.com/11502
BUG=chromium-os:12441
TEST=Run build_image and verify /usr/share/portage/config/make.globals points to
/usr/local/share/portage/config/make.globals and that the latter also
exists.
Review URL: http://codereview.chromium.org/6583001
Change-Id: I52fd9d34bf29573fbf6ca013ba49d1c8608e066d
This temporary hack is intended to provide to developers a smooth transition to
the new crypted password file location.
BUG=chromium-os:11664
TEST=build_image
Change-Id: I34383f6e08ee8db53e407b30df604c403c72b5eb
Review URL: http://codereview.chromium.org/6539019
BUG=chromium-os:4230
TEST=grep for references to old parallel_emerge location
Change-Id: I3238e719e01df57648d3d91c0dfd7c37f7a934ee
Review URL: http://codereview.chromium.org/6246058
BUG=n0ne
TEST=./build_image and see it fail and ask me a question, instead of death
Change-Id: I27f7ac71ce74ff711e8b152ee202121d518045cd
Review URL: http://codereview.chromium.org/6417001
This hack is necessary for old chroots to ensure that we source a good
common.sh when the one inside the chroot is out of date. We'll be able
to get rid of this after everybody has updated their chroot to have a working
version of common.sh and/or we have deprecated running scripts from the
source directory.
Also fix logic for when common.sh is missing to exit properly.
BUG=chromium-os:11598
TEST=Verify that build_image still works when the old common.sh is present in
the chroot.
Change-Id: I2e8c2fd5ad06446e669ad665ee2e70f4364958fe
Review URL: http://codereview.chromium.org/6286084
from within the chroot.
It also fixes a number of style issues.
It changes the meaning of cros_workon "list-all" to list all available
packages, and adds "list-live" to list all live packages.
It changes things that load chromeos-common.sh from the installer to
load it from /usr/lib/installer.
BUG=chromium-os:4230
TEST=synced, rebuilt chroot, made packages, made images, built chrome
from source, and wrote an image to a USB stick.
Review URL: http://codereview.chromium.org/6240018
Change-Id: I90c34420af1a64020402bafef8e9e77f56837c02
Change-Id: I9a4fc8ea0ed51a11a912f3d1c896579369fd8880
BUG=Tac0
TEST=Ran with USER=chrome-bot ./build_image and hit Ctrl+C
Review URL: http://codereview.chromium.org/6288012
ARM (kernel-next) should now be in sync with kernel.git so that we get similar
error handling behavior on all targeted platforms (with our partition layout).
This change makes that the default.
BUG=chromium-os:9697
TEST=manual build_image with kernel-next profile; booted and validated failover error behavior
Change-Id: I281302adb3cbc96aa5770630898f103b0d3639ca
Review URL: http://codereview.chromium.org/6220002
Change-Id: Ib9fcc078d8e0223cd1b1376db91d8e71ae8359a6
BUG=cp file to itself fails in case of nostatefuldev
TEST=ran build_image with and without statefuldev
Review URL: http://codereview.chromium.org/4959001
Patch from Trevor Bourget <tbourget@codeaurora.org>.
Change-Id: Id4ed6af96e0b621f4ad36966fad45c887b991373
BUG=None
TEST=Ran a fresh build_packages and build_image for x86-generic.
Review URL: http://codereview.chromium.org/5689004
BUG=n0ne
TEST=Ran the following command to test:
USE="-compat_wireless" ./build_image
Change-Id: I4b3fd12c1f62e1b2551045a5831a63d848fe2a3f
Review URL: http://codereview.chromium.org/5139003
kernel-next lacks error mode 3. Rolling back until merged.
TEST=none: rolling back to old value
BUG=chromium-os:8442
Change-Id: I0c1a89dc3e00fe5f315b3c15c5070209b0fd79d0
Review URL: http://codereview.chromium.org/4512004
A new error mode for dm-verity exists which can be called as
"cros" or "3". This change enables that mode in builds by default.
TEST=build_image had the correct argument; functionality was there [in progress]
BUG=chromium-os:8442
Change-Id: I3eb3f4a662c5d36011542af4e50718db50ab63bd
Review URL: http://codereview.chromium.org/4530003
BUG=not sure, but this is CL 2/2 to fix broken L13 build
TEST=tested usb intall/auto update
Change-Id: I14cdd1ec941a0653ac25ec7ef72f69f2ec8f64c9
Review URL: http://codereview.chromium.org/4270002
Change-Id: Iecdea822e9600249a9596c059e4db980b409c0a0
BUG=8082
TEST=Built a vm image and ran sudo gmerge metrics
Review URL: http://codereview.chromium.org/4118001
Change-Id: I05370137dbe9f9adc7b18f2ff77d1b7680275c37
BUG=7973
TEST=Ran with/without current blacklist file. Also, added chromeos-base/chromeos-chrome
to test it actually dies correctly.
Review URL: http://codereview.chromium.org/4005002
This change makes more of the root filesyste metadata static across builds, but
more can be done there. It also changes the root filesystem to use ext2 as
we don't need journaling in normal mode. Optionally we could use ext3 for
non-verified if desired (it's an easy change).
In particular, this change cleans up the following:
- clears the rootfs uuid
- labels it C-ROOT (instead of C-KEYFOB)
- removes reserved inodes and blocks
The major feature of this change, however, is that it adds two simple
helpers to common.sh: disable_rw_mount and enable_rw_mount. They will
set high order byte (le) in the ro compat field to be 0xff. This will
tell the kernel that the filesystem uses features R24-R31 which are safe
for use on the running kernel iff the filesystem is mounted read-only.
These functions are called in cros_make_image_bootable and
mount_gpt_image, respectively. mount_gpt_image will always
enable_rw_mount and cros_make_image_bootable will disable_rw_mount if
--enable_rootfs_verification is true.
The approach is ugly but reasonably well contained. If ext2 ever gets a
new revision and new features in the same range are introduced, then we
would be getting inconsistent behavior. That said, it is unlikely that
that churmn will happen and if the impact is negative, it will ideally
show up during testing.
N.B., this will likely result in changes needing to be made to the
signing scripts in vboot_reference to ensure that rw mounting is
enabled/disabled in the same way (E.g., during stamping).
BUG=chromium-os:7468
TEST=- built x86-generic, imaged to usb stick, attempted to mount rw /dev/sdc3 on the host and was properly bounced.
- booted to the image just fine on a dogfood device.
- mod'd for recovery, then installed and booted.
- mod_image_for_test runs with no errors; booted the resulting image as well
- booted a factory_install with the pending dm changes
- BVT passed with build_image x86-generic (vboot enabled)
- [in progress] autotest that checks if the rootdev = /dev/dm-0 and
then does a dumpe2fs | grep -q FEATURE_R31
Review URL: http://codereview.chromium.org/3916002
Change-Id: If4dcba7568a110f4e32627c916d9e5741e5e5414
Change-Id: Ifbfbd3b55ae97ea94ea5bba40a001c6a1ddbf7a0
BUG=720
TEST=Ran suite_Smoke in a VM and ran python from command line and checked
to see if I could import packages from /usr/local/site-packages.
Review URL: http://codereview.chromium.org/3972001
In order to more easily test kernel commandline tweaks, ensure that
--boot_args is propagated to all kernel cmdline sinks.
This is useful for changing default schedulers and any other kernel argument
tweaks we may want to quickly test out.
TEST=build and tested x86-generic
BUG=none
Change-Id: I5138755aa8c5e32e7f117f18291d2ae197e95bef
Review URL: http://codereview.chromium.org/3644004
This changes defaults failure to a panic/recovery reboot and
disables the debugging max_bios argument to ensure that we don't
trigger race conditions in the kernel during un-protected
pending_bio count decrements. (Can lead to a hung-system.)
TEST=built x86-generic; ensured -1 and the panic changes worked
BUG=chromium-os:6956
Review URL: http://codereview.chromium.org/3595015
Change-Id: I81c9e1a7f406e551cd528d5226902c89165b30f9
image_to_usb has been made to work inside chroot for quite some time
(maybe since http://codereview.chromium.org/1991006), and some special
modes may even require it to be executed inside chroot.
However the output messages were not fixed, so we should remove the
"OUTSIDE CHROOT" alerts.
BUG=none
TEST=manually:
1. executed build_image and verified that output messages is correct, and the image is really built successfully.
2. executed image_to_usb.sh --from=... --to=/dev/sde and verified output messages is correct, and the USB device is really imaged by the given target
Change-Id: I8f4274c5f59a0aa585471469ac285e91c0cead13
Review URL: http://codereview.chromium.org/3519003
- I looked at all of the x86 and ARM paths through out build image scripts,
these changes clean up stale comments, stale code, and unforks some small
things.
BUG=none
TEST=Built images for x86-generic, arm-generic and tegra2-seaboard, booted tegra2-seaboard image.
Review URL: http://codereview.chromium.org/3448022
Change-Id: Ibad2774ff2cbf5f15528454506542b87e43e24a2
- Build a "kernel image" which contains a uboot script and a uboot kernel
image.
- Fix some sd* assumptions.
- Remove cruft that has never done anything usefull from update_bootloaders
BUG=none
TEST=Built, booted, and updated on tegra2_dev-board
Review URL: http://codereview.chromium.org/3396011
Change-Id: I00ecf57faa5fe64c8e33dd4c042f1dbed806c10a
Some mod_for_test images don't have the files necessary to run
emerge. Install them.
BUG=none
TEST=Rerun package install
Review URL: http://codereview.chromium.org/3351016
Change-Id: Ib19986121a8988c6cae23527148a7b5d4a58663e
BUG=chromium-os:6577
TEST=(inside chroot) run 4 test cases from src/scripts/, using Ctrl+C to force abort (hence triggering "delete_prompt")
a.) (stdin tty) "./build_image --board=x86-generic < /dev/null", expected = no prompt and delete output dir; actual == expected
b.) (stdout tty) "./build_image --board=x86-generic > foo.txt", expected = no prompt and delete output dir; actual == expected
c.) (normal user case) "./build_image --board=x86-generic",
expected = prompt to delete output dir, if y, output dir is removed; actual == expected
d.) (normal user case) "./build_image --board=x86-generic", expected = prompt to delete output dir, if N, output dir is NOT removed; actual == expected
Review URL: http://codereview.chromium.org/3373003
Historically, we used --usepkgonly in build_image to ensure that packages
were not accidentally built during this step. Recently, build_image was
updated to use --usepkg. The benefit of using --usepkg was that it would not
install obsolete binary packages to your image. It was counter-intuitive that
--usepkgonly would install packages to your image that are not actually
installed to your board root. The disadvantage, however, of --usepkg, was that
it sometimes tried to build packages afresh using the image as your build root,
and this failed with strange errors because you're not supposed to do that.
This change fixes build_image to give useful errors by switching back to
--usepkgonly. To fix the problem where --usepkgonly installs packages that are
not installed, we first run eclean-<board> to clean all unused packages from
the board root.
This change is a big improvement because a number of people have run into
strange issues with build_image due to this problem and have had trouble
debugging them.
This change was actually written by Sean Paul, and I am shepherding his change
through for him because he doesn't have a Chromium account yet.
BUG=chromium-os:6437
TEST=
1) build_packages && build_image should still work
2) build_packages && ./cros_workon start power_manager && build_image should
fail with an error that all versions of the power manager are masked. This
happens because you started working on the power manager, but did not build
the version of the power manager you were working on before installing it.
3) Assuming you are working on the power manager, build_packages && build_image
should succeed because your cros_workon'd version of the package is built.
4) ( ./cros_workon start power_manager && build_packages &&
./cros_workon stop power_manager && build_image ) should fail with the
same error message as case 2 for similar reasons.
5) ( ./cros_workon start power_manager && build_packages &&
./cros_workon stop power_manager && build_packages && build_image )
should work because you've built your new version of the stable package.
Change-Id: Ia3858c70997bc6f0ec0b6d1bfaede8d3272a0976
Review URL: http://codereview.chromium.org/3305010
USB/SDCard boot devices typicaly don't run software updater,
and won't have success ever set. We never want to try to
fall back to the empty B partition either. The workaround
for this is to set the successful bit regardless of actual
boot success.
bug=6395
Change-Id: I67c625804203b13be9a0c626c404fa38bafb5445
Review URL: http://codereview.chromium.org/3344008
* Add dev-rec key to factory installer
* rename factory_install_shim output to be consistent with dev install shim
Change-Id: Ibf8f027edda67626af5c319b4daa164cb53ccfe7
BUG=4382
TEST=Build factory install, build dev install, build normal
Review URL: http://codereview.chromium.org/3286002
BUG=none
TEST=build_image + cut and paste image_to_vm in the output
Change-Id: I9def13a56d796c1f034c834a8429e909b45afa02
Review URL: http://codereview.chromium.org/3181038
Change-Id: I7722848872b1712b26c38ac8f163d450c5a08f6d
BUG=chromium-os:5183
TEST=manually built a dev install shim and verified it's bootable on agz device
Review URL: http://codereview.chromium.org/3158021
This change enables root filesystem integrity checking for all x86
builds by default. All mod_image_for_* work with this and the
factory_install. In addition, the BVT tests all pass running on
a dm-verity root.
[I will send a mail to the chromium-os-dev once this lands with instructions on how to build with it and how to turn it off (chromeos-setimage) on an installed machine.]
Once this is functioning, I will start migrating the build/install process over to use the UUID-based boot.
TEST=built x86-generic, mod'd for test, installed, ran suite_BuildVerify
BUG=chromium-os:5100
Review URL: http://codereview.chromium.org/3143025
Change-Id: Ib23962b7a5e034ef6aea31b4361944ba894700c6
Verified rootfs-based factory installers fail because the ROOT_SIZE_BYTES is
updated, but the information is not propagated to the boot.desc which
cros_make_image_bootable uses. The result is that mod_image_for_test
incorrectly appends the rootfs hash even though it is correctly computed.
Random note:
build_kernel_image uses dumpe2fs to compute the size, but
cros_make_image_bootable uses the supplied size. These shouldn't
diverge though the partition size should accomodate the addition of the
hashes.
TODO(wad) Add checking of sizes in cros_make_image_bootable
TEST=x86-generic build image with --enable_rootfs_verification and --factory_install; then put in a machine and it no longer spewed dm-verity hash errors and the root hash checked successfully!
BUG=chromium-os:5100
Review URL: http://codereview.chromium.org/3155025
Change-Id: I174e3661b80d83b25f3af95ff1eb77f634a7e797
Change-Id: I14cd9dc365093c0450210d7853ad5f67ffa0ddd0
BUG=chromium-os:5183
TEST=1) manually built a dev install shim and verified it's only bootable when dev switch is ON
Review URL: http://codereview.chromium.org/3153001
Adds arm_extra_bootargs to boot.desc and to cros_make_image_bootable.
TEST=tegra2 dev-board build_packages, build_image --fast worked
BUG=broken tree
Change-Id: Ifdfeda66f1eb5e5b1e618706eeba269f31fa9913
Review URL: http://codereview.chromium.org/3069031
Breaks make_image_bootable out of build_image into a separate
script. In addition, it make a helper .sh in the OUTPUT_DIR
to let make_image_bootable be re-run on an image with the same
arguments that were passed in via build_image.
This change also removes the use of the boot/ directory in
OUTPUT_DIR.
TEST=build_image verified; image_to_usb --test_image; booted l13
build_image; image_to_vm; qemu booted
build_image verified; image_to_usb; booted l13
BUG=chromium-os:5081
Review URL: http://codereview.chromium.org/3066037
Change-Id: I627d678089aa71c353347f387ad5b14063fd4e7b
build_image creates it after a successful build, and get_latest_image
can use it if it exists. Fall back to old behavior for now when there
are directories without a link.
BUG=none
TEST=Try building an image, check link. Rebuild, check new link.
Review URL: http://codereview.chromium.org/3014051
The fast build is stable enough now that we can enable it for everybody.
I ran the build constantly all weekend on two machines and I only ran into
one (rare) error, which I've fixed in a separate patch.
See <http://codereview.chromium.org/2856048/show>
TEST=Ran lots and lots of fast builds
BUG=none
Review URL: http://codereview.chromium.org/3059001
BUG=chromium-os:1888
TEST=Manual. build_image should run fine when oem_customization flag is not specified.
Review URL: http://codereview.chromium.org/3076009
The last changes to the installer broke image_to_vm. Since image_to_vm
doesn't need to run postinst, but just change the active image, it
now just calls chromeos-setimage and passes in its needed flags (already
supported by the last installer change). It will also detect whether
the image was built with verification of the rootfs enabled or not
by looking at the default.cfg file.
Also updates the location of where you should run the command in
build_image.
TEST=built a new image with --enable_rootfs_verification and started with qemu -curses -hda [output]; did the same without verification
BUG=chromium-os:2963
Review URL: http://codereview.chromium.org/3034030
Change-Id: I265d6ad8971f9427b78cc07d784fced9cceb5974