Commit Graph

3233 Commits

Author SHA1 Message Date
Liam McLoughlin
e61da0dff1 Fixes the ability to AU after running chromeos-install
Make it possible to run chromeos-install without root

BUG=none
TEST=Build image, chromeos-install, verify ROOT-B is full size

Change-Id: Id506f1e5a6f8b8ee03ea1bdd621aaab1239bca2c
Reviewed-on: https://gerrit.chromium.org/gerrit/34081
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
2012-09-26 03:01:41 -07:00
Liam McLoughlin
53fbca3fdb Correct partition layout calculation code
The CURR counter wasn't being correctly incremented for the stateful
partition resulting in an invalid layout

BUG=chromium-os:34715
TEST=Build image and verify it can be installed

Change-Id: Ie2f90d2e51e34e2056414363d7b2b42413018322
Reviewed-on: https://gerrit.chromium.org/gerrit/33928
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Tested-by: Olof Johansson <olofj@chromium.org>
2012-09-24 16:25:08 -07:00
Mike Frysinger
e82e99e999 cgpt_shell: avoid bash
This script gets run on the target, so we need to avoid bash.

BUG=chromium-os:34715
TEST=build_image works

Change-Id: Ib64036246149b8b98414e4434ed89a3a40c2f693
Reviewed-on: https://gerrit.chromium.org/gerrit/33911
Reviewed-by: Liam McLoughlin <lmcloughlin@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-09-24 12:18:42 -07:00
Ahmad Sharif
89b8a8bf85 update_chroot: pass env vars to cros_setup_toolchain.
BUG=chromium-os:33007
TEST=remote trybot (chromiumos-sdk) with this CL.

Change-Id: If8a0de45eebf158bfc51aa87348b3c96c6c2626e
Reviewed-on: https://gerrit.chromium.org/gerrit/33848
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: asharif <asharif@chromium.org>
Tested-by: asharif <asharif@chromium.org>
2012-09-24 11:36:40 -07:00
Liam McLoughlin
e81a23207f Updated verity error_behavior and max_ios defaults to match expected values
BUG=chromium-os:34696
TEST=Run ensure_secure_kernelparams.sh on an image built with this change

Change-Id: I16a6f5127bdfae958f9cd0d9ce1b0c55a0f68c67
Reviewed-on: https://gerrit.chromium.org/gerrit/33888
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Liam McLoughlin <lmcloughlin@chromium.org>
Tested-by: Liam McLoughlin <lmcloughlin@chromium.org>
2012-09-24 10:56:52 -07:00
Liam McLoughlin
080202b5d1 Fix up recovery image generation
As part of my image creation overhaul, I patched up this script to keep it
alive. I made a couple of oversights in this, which broke recovery image
generation.

The call to update_partition_table had an incorrect arg and the order of
operations inside the function was also incorrect (offsets were being
calculated before the new partition table had been written). Lastly
the call to copy the root FS to the new image was incorrect.

BUG=chromium-os:34689
TEST=Run mod_image_for_recovery, verify root FS partition is mountable

Change-Id: I5cc6f6f53284075bbdac8e57602aae86a15ee32e
Reviewed-on: https://gerrit.chromium.org/gerrit/33872
Tested-by: Liam McLoughlin <lmcloughlin@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Liam McLoughlin <lmcloughlin@chromium.org>
2012-09-23 17:00:40 -07:00
Liam McLoughlin
aca5e1edfe Fix up OEM partition during image build
BUG=chrome-os-partner:14340
BUG=chromium-os:34688
TEST=Build an image, verify OEM partition has filesystem

Change-Id: Ie3e51427a36f5e8ea288abb7ac3ceeefb20cdb6f
Reviewed-on: https://gerrit.chromium.org/gerrit/33866
Reviewed-by: Liam McLoughlin <lmcloughlin@chromium.org>
Tested-by: Liam McLoughlin <lmcloughlin@chromium.org>
Commit-Ready: Liam McLoughlin <lmcloughlin@chromium.org>
2012-09-23 17:00:37 -07:00
Liam McLoughlin
5b37c5443a Simplify and add flexibility to image creation process
This change adds support for building the disk layout from a
configuration file. It also cleans up much of the image creation
code.

install_gpt no longer exists, and has been replaced by cgpt.py's
write action. This spits out a file that has two functions that can
be called to write a partition layout to a disk/file. This gets rid
of the gigantic nest of calculations that built the layout previously.

All instances of partition/filesystem sizes in build scripts should now
be gone in favour of calls to the cgpt.py tool.

create_boot_desc has moved inside the base image creation, in an effort
to simplify build_image.

load_kernel_test is gone since it's apparently not supposed to be called
here anyway (asked wfrichar/rspangler about this one).

Base image creation now uses files rather than loop devices when
building an image. This means we can simply umount them once we're
done and not worry about cleaning up the loop device, since it's
been done for us.

Hash pad calculation has been removed. This is now set manually inside
the partition config file.

Hybrid MBR creation is gone, since it's now possible to do that in a board
specific hook (see overlay-beaglebone/scripts/board_specific_setup.sh).

OEM partition now has a filesystem, which is mounted at /usr/share/oem
during emerge so that packages can stash files here.

root_fs_dir and friends are still globals, but the long-term idea
is to make this not the case.

BUG=chromium-os:33817
TEST=All types of images and their respective flows
  (VM, recovery, test, factory etc)

Change-Id: I8a596728a4d1845c930e837bea627f5b6a11c098
Reviewed-on: https://gerrit.chromium.org/gerrit/29931
Commit-Ready: Liam McLoughlin <lmcloughlin@chromium.org>
Reviewed-by: Liam McLoughlin <lmcloughlin@chromium.org>
Tested-by: Liam McLoughlin <lmcloughlin@chromium.org>
2012-09-23 10:05:12 -07:00
Michael Krebs
04c4f736f5 cros_sdk: Allow additional chroot mounts via .local_mounts file
This change was coopted from http://codereview.chromium.org/5331009/,
originally written by hungte@.  And the coopted commit message:

It would be helpful if we could share some directories inside/outside the
chroot (e.g. editor configuration or the default Downloads directory).  This
CL reads .local_mounts (just like .default_boards) from the "src/scripts"
folder, and mounts the directories whenever you do cros_sdk.

For safety concern, and to prevent the developer from accidentally deleting
their mounted files, the mounts are made read-only.

.local_mounts has a very simple syntax:
  mount_path
  or source_path(outside chroot) destination_path(inside chroot)
  or # comments.

Examples:
/usr/share/vim/google
/home/XXX/Downloads /outside

BUG=chromium-os:34561
TEST=Manually:
1. Create ~/trunk/src/scripts/.local_mounts with following content:
 # comment here
/usr/share/vim/google  # test
/home/XXX/Downloads /outside
2. cros_sdk
3. ls -l /usr/share/vim/google/ # ensure dir is mounted correctly
   ls -l /outside/  # ensure dir is mounted correctly
4. exit
5. mount | grep chroot  # ensure nothing is left

Change-Id: I6f3400a436a825e8cdfcb18b788afe96ebba6757
Reviewed-on: https://gerrit.chromium.org/gerrit/33585
Tested-by: Michael Krebs <mkrebs@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Michael Krebs <mkrebs@chromium.org>
2012-09-21 16:48:52 -07:00
Peter Mayo
4411efeb87 Propagate Google API keys into the chroot.
These are a new type of credential baked into chrome/chromium for
developers without internal copies of ChromeOS, and not building internal
versions of Chrome.

We automatically move .googleapikeys into the chroot each time.

We don't overwrite the destination, so that people can configure keys the
way they want. If they just don't want to be bothered, the best thing happens
the easiest way.  Get Keys, put them in home.  Keep working.

BUG=chromium-os:34438
TEST=local

Change-Id: I08e5970c6092f7b789aa5efef52db93841996d8f
Reviewed-on: https://gerrit.chromium.org/gerrit/33771
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Peter Mayo <petermayo@chromium.org>
Tested-by: Peter Mayo <petermayo@chromium.org>
2012-09-21 16:07:53 -07:00
Mike Frysinger
dda30b4f70 setup_board: merge common wrapper logic
Now that all the wrapper logic is one function, we can merge some of the
sub-pieces (chown/chmod/messages) into single calls.

BUG=chromium-os:34519
TEST=`./setup_board --board=lumpy` output looked ok

Change-Id: If959b48877adfaaca121370495e15cf912deea37
Reviewed-on: https://gerrit.chromium.org/gerrit/33526
Reviewed-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-09-20 17:32:22 -07:00
Ryan Cui
e49d487245 Ensure user has a chromium checkout before running chrome_set_ver.
Since the chrome sources have been removed from the default manifest,
leaving only a remnant inside chromium/src, we need to verify that they
actually have the chromium/src.git project checked out.

BUG=None
TEST=Local

Change-Id: I09f871034bb0d2664485a5ca6429204ebee67a19
Reviewed-on: https://gerrit.chromium.org/gerrit/33646
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Jon Kliegman <kliegs@chromium.org>
Commit-Ready: Ryan Cui <rcui@chromium.org>
Tested-by: Ryan Cui <rcui@chromium.org>
2012-09-20 17:32:22 -07:00
Mike Frysinger
2f9a82df4c setup_board: add new --regen_configs option
This lets people run setup_board w/out re-installing the toolchain,
but otherwise setting up all the config files.  This is useful when
people want to make overlay changes that don't affect the settings
but do affect file layout (like when moving from private to public
overlays).

BUG=chromium-os:34519
TEST=`cbuildbot {x86,amd64,arm}-generic-full chromiumos-sdk` worked

Change-Id: I6202073a74700379fe2b705d1ff3d6148b9723ec
Reviewed-on: https://gerrit.chromium.org/gerrit/33487
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-09-20 15:57:31 -07:00
Kris Rambish
4404791930 Add boats to common.sh
TEST=See boat
    .  o ..
    o . o o.o
         ...oo_
           _[__\___
        __|_o_o_o_o\__
    OK  \' ' ' ' ' ' /
    ^^^^^^^^^^^^^^^^^^^^
BUG=None

Change-Id: I0a38d572c338762084e2ce83211d9067217586e4
Reviewed-on: https://gerrit.chromium.org/gerrit/33372
Commit-Ready: Kris Rambish <krisr@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Kris Rambish <krisr@chromium.org>
2012-09-19 19:47:06 -07:00
Mike Frysinger
e1d2c1f10c setup_board: use sudo_multi in more places
This gives a side speed up and a slight clean up.

While we're here, merge a few commands (like mkdirs).

BUG=chromium-os:34519
TEST=`./setup_board --board=lumpy` output looked ok
TEST=`cbuildbot {x86,amd64,arm}-generic-full chromiumos-sdk` worked

Change-Id: I8d03448e2df549e76d320cc23ab9d36242c3b118
Reviewed-on: https://gerrit.chromium.org/gerrit/33486
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
2012-09-18 15:05:06 -07:00
Chris Sosa
0538571ce1 Deprecate for_test upstart jobs by building and installing test/dev init pkgs.
We also remove some dead mod_for_test scripts.

BUG=chromium-os:9729, chromium-os:14091
TEST=build_packages, build_image dev test
CQ-DEPEND=If58678ab4fe7abd9142a619850be07249d159781

Change-Id: Iff6a143dbf8ce58878dc1b07629c52bbb7f02ded
Reviewed-on: https://gerrit.chromium.org/gerrit/32998
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Sosa <sosa@chromium.org>
2012-09-18 11:10:29 -07:00
Mike Frysinger
70c8db6806 setup_board: move all wrapper gen code into one func
Makes the code flow easier to follow, and makes it easier to skip
wrapper generation if we so desire.

BUG=chromium-os:34519
TEST=`./setup_board --board=lumpy` output looked ok
TEST=`cbuildbot {x86,amd64,arm}-generic-full chromiumos-sdk` worked

Change-Id: Ie7a1d387fb21a495c6a2da2c9147587743240929
Reviewed-on: https://gerrit.chromium.org/gerrit/33485
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-09-18 09:38:58 -07:00
Nirnimesh
80c426856a Remove external_extensions.json from test images
Remove external_extensions.json to further reduce the differences between
test and base images.

/opt/google/chrome/extensions/external_extensions.json was a symlink to
/usr/local/autotest/tests/external_extensions.json (broken by default)
so that a test could put an extension at the destination to make chrome
load it at login. This was an ugly hack from the time when we didn't have
a way to install extensions during tests on chromeos.

power_LoadTest has been updated to not need this hack.

BUG=None
TEST=None

Change-Id: Ibee30315aef725d69725fcf9c5ea72687d030f4e
Reviewed-on: https://gerrit.chromium.org/gerrit/33255
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Nirnimesh <nirnimesh@chromium.org>
Tested-by: Nirnimesh <nirnimesh@chromium.org>
2012-09-17 11:40:17 -07:00
Mike Frysinger
76452baac3 build_packages: allow people to specify a specific set of packages
This way we can tweak buildbot configs to install specific packages rather
than all of ChromeOS (useful for firmware builders).

BUG=chromium-os:19140
TEST=`cbuildbot {{x86,amd64}-generic,daisy}-paladin {amd64,arm,x86}-generic-full stout-release` passed
TEST=`./build_packages nano` installed just nano

Change-Id: I9c316d7c390ebe6ceade97cf33c1387dc83fb887
Reviewed-on: https://gerrit.chromium.org/gerrit/33266
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-09-14 15:15:32 -07:00
Mike Frysinger
4114c79297 build_packages: arrayify things
Convert strings-used-as-lists to arrays.  This makes the code nicer.

Further, package the variable initializations together.  There is no
need to have them all intermingled.  e.g. we set up EMERGE_FLAGS all
in the same region rather than doing some at the top, some in the
middle, and then more at the bottom.

BUG=chromium-os:19140
TEST=`cbuildbot {{x86,amd64}-generic,daisy}-paladin {amd64,arm,x86}-generic-full stout-release` passed

Change-Id: I593e01e6f450370545335144b06f814f306019df
Reviewed-on: https://gerrit.chromium.org/gerrit/33265
Reviewed-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
2012-09-14 14:06:08 -07:00
Mike Frysinger
cc6d7b12a0 umount wrapper: fix inverted logic
The current logic exits when the output *is* "device is busy" when it
should be exiting when the output *isn't*.

BUG=chromium-os:23443
TEST=`./mod_image_for_recovery.sh` works again

Change-Id: I78eef746611de1044da664f32f8ec5e3b22b21f7
Reviewed-on: https://gerrit.chromium.org/gerrit/33170
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-09-12 22:32:18 -07:00
Mike Frysinger
4bf9456c7a umount wrapper: fix PATH cleansing
Even though we look up our wrapper script via $0, we don't use it.
Instead, the script has /usr/local/sbin hardcoded.  This causes the
code to constantly find itself and forkbomb.

BUG=chromium-os:23443
TEST=`cros_sdk -- true` no longer hangs

Change-Id: I64dc41880e3b7c0abf5da0f6a708c02510ddc8c0
Reviewed-on: https://gerrit.chromium.org/gerrit/33119
Reviewed-by: Brian Harring <ferringb@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
2012-09-12 14:46:50 -07:00
Kees Cook
0f2cfe6b9d mod_image_for_recovery: add flag to decrypt stateful
When building the recovery image, add a flag file for triggering the
decryption of the stateful partition.

BUG=chromium-os:34199
TEST=parrot recovery

Change-Id: I43c6a8469d7fad1b9d5b85aae9aaf525b1588ed5
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/32597
Reviewed-by: Will Drewry <wad@chromium.org>
Commit-Ready: Will Drewry <wad@chromium.org>
2012-09-07 19:00:11 -07:00
Paul Taysom
5b2c7e934c Moved knowledge of rootdev to one place
This CL centralizes the setting of which root device to use
in a single place. A boolean flag, --verity_is_enabled, indicates
if the the verity device should be used.

This is the first of about a half-dozen CLs to fix all the references
to dm-0.

BUG=chromium-os:25441
TEST=built images with and without verity enabled.
     cbuildbot --remote -g Id6c6e766 amd64-generic-paladin daisy-paladin

Change-Id: Id6c6e766bfde3651266323f7bc94c0e1f87cea38
Reviewed-on: https://gerrit.chromium.org/gerrit/32239
Reviewed-by: David James <davidjames@chromium.org>
Commit-Ready: Paul Taysom <taysom@chromium.org>
Tested-by: Paul Taysom <taysom@chromium.org>
2012-09-07 17:24:27 -07:00
Gilad Arnold
264f64d70b enter_chroot.sh: install /root/.boto symlink for sudoed invocations
Since sudo changes $HOME to /root, sudoed invocations of gsutil/boto
won't find the necessary credentials. This solves the problem by
installing a symlink at /root/.boto to the correct credentials file,
similar to how it's done for /home/$USER/.boto.

BUG=None
TEST=/root/.boto symlink created upon entering the chroot

Change-Id: I541556f836fa5d0b9708e5604218058401563fb3
Reviewed-on: https://gerrit.chromium.org/gerrit/32430
Reviewed-by: David James <davidjames@chromium.org>
Reviewed-by: Ryan Cui <rcui@chromium.org>
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
2012-09-07 12:07:34 -07:00
Chris Sosa
bd0ba0c9da VDisk size must also be changed to allot for large stateful partition.
BUG=chromium-os:34126
TEST=Ran image_to_vm with full line from buildbot.

Change-Id: I7b579500e80f3b3882f7e9aa62f73e89bf11ceba
Reviewed-on: https://gerrit.chromium.org/gerrit/32429
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
2012-09-06 14:02:07 -07:00
Chris Sosa
1c98948e3b Double the size of the stateful partition for vm testing.
BUG=chromium-os:34126
TEST=image_to_vm with new size and ran desktopui_NaClSanity

Change-Id: I5553de776cb5dec3d2b0dde362ff3560926a6472
Reviewed-on: https://gerrit.chromium.org/gerrit/32424
Reviewed-by: Rahul Chaturvedi <rkc@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
2012-09-06 13:20:16 -07:00
Brian Harring
f264b82dd2 Force our umount w/in the chroot.
Do this via ensuring that any common.sh invoker
of raw umount (say a root script) sees our umount
path.

Additionally, inject into default profiles our override,
and via an upgrade scriptlet.

This is round two; originally appeared as CL:32088, was
reverted due to:
https://uberchromegw.corp.google.com/i/chromiumos/builders/chromiumos%20sdk/builds/2314/steps/BuildBoard/logs/stdio

The fix however is just adding a single sudo mkdir. :/

BUG=chromium-os:23443
TEST=cros_sdk --replace --bootstrap
TEST=cros_sdk --replace

Change-Id: I0dc7522a9c623f40081d4f138cea0c2c45171fea
Reviewed-on: https://gerrit.chromium.org/gerrit/32365
Commit-Ready: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
2012-09-06 10:34:33 -07:00
Rhyland Klein
d5e3c01c08 cros_workon: fix arguments passed to loman
fix arguments passed to loman. revision should not be passed wrapped in ""
otherwise, if not set, it will pass an extra blank argument to loman which
breaks the argument count checking.

BUG=chromium-os:33688
TEST=verified with remote project both with and without revision works.

CQ-DEPEND:I568a9e2821a1c089a0ba391f6df6c0e3b2dc61c9

Change-Id: Ica7d04cf5c3f7ab3871c71abe8b6025b561ac81f
Signed-off-by: Rhyland Klein <rklein@nvidia.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/32392
Commit-Ready: Brian Harring <ferringb@chromium.org>
Reviewed-by: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
2012-09-06 10:07:23 -07:00
Chris Sosa
389634d71c Revert "Force our umount w/in the chroot."
This change breaks the chromiumos_sdk builder.  See

http://uberchromegw.corp.google.com/i/chromiumos/builders/chromiumos%20sdk/builds/2314/steps/BuildBoard/logs/stdio

This reverts commit 23da619f13

Change-Id: I47aa6e94aa0c62494cc40e9964f25097d3353322
Reviewed-on: https://gerrit.chromium.org/gerrit/32349
Reviewed-by: Chris Sosa <sosa@chromium.org>
Tested-by: Chris Sosa <sosa@chromium.org>
2012-09-05 19:57:02 -07:00
Mike Frysinger
15a884825a build_image: dump debug info when target image is full
When we run out of space in the target image, it can be unclear that this
is the actual issue.  Detect this case and issue an appropriate warning,
and dump disk usage to help people triage things.

BUG=chromium-os:34167
TEST=`./build_image --board=amd64-generic` passed normally
TEST=`./build_image --board=amd64-generic factory_install` triggered the out-of-space check

Change-Id: I3052892a8c8bc386c7f08e1df26432eea2285563
Reviewed-on: https://gerrit.chromium.org/gerrit/32250
Reviewed-by: Peter Mayo <petermayo@chromium.org>
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-09-05 18:32:27 -07:00
Vadim Bendebury
0887dc2f7a Allow more room for factory shim rootfs
For reasons yet to be determined the factory shim rootfs size spills
over allotted 300 MBytes. The actual culprit will have to be
determined and hopefully eliminated, at the time the lower size could
be restored by reverting this change.

BUG=chromium-os:34167
TEST=manual

   ./build_image --board=amd64-generic factory_install
    was failing before this change and is succeeding now

Change-Id: I01456f8317b0d02968068f609811c36d4816f353
Reviewed-on: https://gerrit.chromium.org/gerrit/32298
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Jon Salz <jsalz@chromium.org>
Tested-by: Vadim Bendebury <vbendeb@chromium.org>
Commit-Ready: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-by: Peter Mayo <petermayo@chromium.org>
2012-09-05 16:38:01 -07:00
Rhyland Klein
94d5e60654 cros_workon: Add support for revisions other than master
This changes adds support for specifying a revision to use for cros_workon
other than master.

BUG=chromium-os:33688
TEST=used cros_workon to workon a project, repo synced, and verified the
src was not synced to master but to the revision requested.

CQ-DEPEND:I3a0166aaf4baa3af008ba24e5e887c0ea6b6ab6e

Change-Id: I53cbf2819fc557c3ce6eca08c93a57598a64d85c
Signed-off-by: Rhyland Klein <rklein@nvidia.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/30914
Commit-Ready: Brian Harring <ferringb@chromium.org>
Reviewed-by: Brian Harring <ferringb@chromium.org>
2012-09-05 16:00:29 -07:00
Brian Harring
23da619f13 Force our umount w/in the chroot.
Do this via ensuring that any common.sh invoker
of raw umount (say a root script) sees our umount
path.

Additionally, inject into default profiles our override,
and via an upgrade scriptlet.

BUG=chromium-os:23443
TEST=manual validation, trybot.

Change-Id: Ie2514f6e8d2e10a19ab8d11c8056177bc1a2fb4d
Reviewed-on: https://gerrit.chromium.org/gerrit/32088
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
2012-09-05 14:38:14 -07:00
Brian Harring
ece65e0633 Add a umount wrapper to suppress gvfsd/trashd breaking umount calls.
Specifically, detect if the umount failed due to current access, if so,
give it up to 9 more runs (w/ 1s pauses) continuing only if it's still
failing due to currently open files.

Via this, it should suppress the race of gvfs/trashd looking at
quick mounted/umounted pathways.

This CL is a two parter; this adds the script, and converts common.sh
consumers over to using the override.

The next CL will modify the chroot itself to ensure our script gets
picked up/used.

BUG=chromium-os:23443
TEST=trybot, manul validation.

Change-Id: I92dedd91d6133c2063b1e5dbbc1a68366844801d
Reviewed-on: https://gerrit.chromium.org/gerrit/32087
Commit-Ready: Brian Harring <ferringb@chromium.org>
Reviewed-by: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
2012-09-05 00:00:43 -07:00
Brian Harring
fd8a8ee7f6 Look for both kvm and qemu-kvm.
BUG=None
TEST=manual, rename kvm to qemu-kvm, else run it on a gentoo host.

Change-Id: I4971336a1be4c07fe2c8799643f52cd094d5caf1
Reviewed-on: https://gerrit.chromium.org/gerrit/32093
Tested-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Brian Harring <ferringb@chromium.org>
2012-09-05 00:00:43 -07:00
Brian Harring
710e7e9697 Fix breakage induced by CL:342067.
Specifically, argument handling was tightened- loman now enforces
argument count (rather than just ignoring it).

This however broke cros_workon.  Joy.

BUG=chromium-os:32247,chromium-os:31867,chromium-os:9914
TEST=manual; cros_workon start --board <blah> chromeos-base/chrome-login

Change-Id: Ic58ec457b7f43e14fa6347e8752653d5a466114f
Reviewed-on: https://gerrit.chromium.org/gerrit/32207
Reviewed-by: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
2012-09-04 21:43:53 -07:00
Shawn Nematbakhsh
299493f340 Add conversion script to convert Butterfly board to 32bit.
Add conversion script to convert 2GB butterfly board to 32bit.

BUG=chrome-os-partner:13254
TEST=run update_chroot, verify butterfly upgraded

Change-Id: Ia6e834b727e70bfb27af9c81175b5df09ef56e2e
Reviewed-on: https://gerrit.chromium.org/gerrit/31777
Tested-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Shawn Nematbakhsh <shawnn@chromium.org>
2012-08-31 18:29:32 -07:00
Zdenek Behan
52970f47a5 common.sh: Change umount function to account for already deleted mounts.
BUG=chromium-os:31250
TEST=enter chroot; kill ssh-agent; exit chroot

Change-Id: Iea8e0fdd9a82047bb756a459dffc2ef59615074c
Reviewed-on: https://gerrit.chromium.org/gerrit/31929
Tested-by: Zdenek Behan <zbehan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Zdenek Behan <zbehan@chromium.org>
2012-08-31 15:41:45 -07:00
Jon Salz
8c8186c832 Add factory bundle overlay in /usr/local/factory/bundle.
CQ-DEPEND=CL:31631 CL:31632 CL:31633 CL:31636
BUG=None
TEST=cbuildbot --remote

Change-Id: Ie9b30d16e31fcba20009ccc3d7b4b24d2e9a8f3f
Reviewed-on: https://gerrit.chromium.org/gerrit/31636
Tested-by: Jon Salz <jsalz@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Jon Salz <jsalz@chromium.org>
2012-08-30 14:38:53 -07:00
Gilad Arnold
2ff2f11d8c Command-line override of default SSH connection timeout/attempts.
The previous implementation fixed a number of SSH connection options,
including the connect request timeout (-o ConnectTimeout) and connection
attempts (-o ConnectionAttempts). These values are unreasonably high
when developing tests that do not require SSH at all.

* Add two command-line arguments for these options.

* Substitute the use of a fixed environment variable
  (SSH_CONNECT_SETTINGS) for a function call, which can populate SSH
  options based on command-line argument values.  Callers can still fix
  the settings to their liking by assigning a value to
  SSH_CONNECT_SETTINGS.

* Defaults kept the same.

BUG=None

TEST=Dependent scripts (like run_remote_tests.sh) running properly and
responding to timeout/reattempt value changes.

Change-Id: I23805b78ffa6ffc743c0ddae98334eee26bd1e5e
Reviewed-on: https://gerrit.chromium.org/gerrit/31608
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
2012-08-29 16:51:03 -07:00
Liam McLoughlin
eb7ccc33b3 Move chromeos-factory into mod_image_for_test
Previously it was a dependency of chromeos-test which isn't correct

BUG=none
TEST=Build base and factory images

Change-Id: I133b937d1b56f96d5ebf3428172f9a4457c6bf5e
Reviewed-on: https://gerrit.chromium.org/gerrit/31156
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Ready: Liam McLoughlin <lmcloughlin@chromium.org>
Tested-by: Liam McLoughlin <lmcloughlin@chromium.org>
2012-08-28 13:38:19 -07:00
Brian Harring
06d3c2e20b Pass more proxy vars into the chroot, rework sudoers.d maintenance.
In particular, put the sudoers.d setup into one script (making
updates to it easier in the future if necessary), and
centralize the proxied vars into a const in common.sh.

Thanks to Kevin McCray/Josh Triplett/Alexander Kanevsky for
pointing out the missing proxy variables, and fixes/cleanup.

BUG=None
TEST=https_proxy=blah cros_sdk -- bash -c 'echo $https_proxy'
TEST=build_packages behind a proxy.
TEST=cros_sdk --replace && \
     RSYNC_PROXY=blah cros_sdk -- bash -c 'echo $RSYNC_PROXY'

Change-Id: I3165882dfd9c8b52d25c2b26d7ff9242c84c91bd
Reviewed-on: https://gerrit.chromium.org/gerrit/31185
Tested-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Josh Triplett <josh@joshtriplett.org>
2012-08-24 13:26:03 -07:00
Brian Harring
305e1361f7 Move cros_deps_diff and cros_generate_deps_grah into chromite.
The core util they rely on, cros_extract_deps has been over yonder
for a while, thus complete the move.

CQ-DEPEND=CL:31218
BUG=chromium-os:33829
TEST=manual invocation of the scripts in question.

Change-Id: I13d7f82f74ef3551f6efcbaf361a34b8847fa4e0
Reviewed-on: https://gerrit.chromium.org/gerrit/31217
Tested-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Ready: Brian Harring <ferringb@chromium.org>
2012-08-23 16:16:37 -07:00
Sameer Nanda
542cb53e9d build_kernel_image: modify console, loglevel and quiet kernel options
Three related changes to kernel command line:

1. quiet kernel command line option is redundant with loglevel option
since quiet sets the loglevel to 4 but it is immediately overriden by
the loglevel option. Remove quiet option.

2. with loglevel set to 0 in the kernel command line, pstore console
doesn't work most of the time. This is because all printk's with level
lower than that don't make it to the console drivers. Set loglevel
to 7.

3. console=tty2 doesn't do what we want since the early boot and
shutdown messages with appropriate message log level are still visible
on screen. Set console to empty.

BUG=chrome-os-partner:12780
TEST=1. boot system and ensure that no kernel log messages appear on
screen. Then do a warm reboot and check that /dev/pstore/console-ramoops
file contains kernel log messages from the previous boot.
2. run bootperf test and ensure there are no boot time regressions.

Change-Id: Id1348c30d6aa3d818bae3259e748bf7100bf9c51
Reviewed-on: https://gerrit.chromium.org/gerrit/31180
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Commit-Ready: Sameer Nanda <snanda@chromium.org>
Tested-by: Sameer Nanda <snanda@chromium.org>
2012-08-23 10:51:12 -07:00
Brian Harring
ac6712fed3 Drop the dead enter_chroot error script.
BUG=None
TEST=n/a; anything using this path was already broke.

Change-Id: Ie120009a633ef58115bc0ec8eb0a62b273226440
Reviewed-on: https://gerrit.chromium.org/gerrit/31215
Commit-Ready: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
2012-08-23 09:31:44 -07:00
Mike Frysinger
5e2e27345f update_chroot: fix clobbering of initial toolchain flags with --nousepkg
The current logic accidentally sets TOOLCHAIN_FLAGS when the --nousepkg
flag is used rather than appending it leading to possible flag loss.

While we're at it, use arrays.

BUG=None
TEST=`./setup_board --board=x32-generic --nousepkg` works now

Change-Id: I33627ec088afb649b4fdde42b933a4af1521675b
Reviewed-on: https://gerrit.chromium.org/gerrit/31150
Reviewed-by: Zdenek Behan <zbehan@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
2012-08-22 19:09:20 -07:00
Brian Harring
df4a5b41ea Move loman to chromite (proper location for it after all).
BUG=chromium-os:32247,chromium-os:31867,chromium-os:9914
CQ-DEPEND=CL:29250
TEST=manual validation

Change-Id: I055b1dc4b1be54684ac01d3ec4b8760ed33e0aa4
Reviewed-on: https://gerrit.chromium.org/gerrit/29245
Tested-by: Brian Harring <ferringb@chromium.org>
Reviewed-by: Ryan Cui <rcui@chromium.org>
Commit-Ready: Brian Harring <ferringb@chromium.org>
2012-08-22 18:34:43 -07:00
Josh Triplett
f4dfd18b12 Drop fixup_image_for_qemu.py; ChromeOS works fine in qemu/kvm without an xorg.conf
fixup_image_for_qemu.py exists only to add an xorg.conf; however, Xorg's
autodetection has handled qemu/kvm just fine for quite a while now, with
or without -vga std.  Drop the script and the call to it from
image_to_vm.sh.

BUG=None
TEST=Build an image, confirm that it still works fine in kvm and
     autodetects an appropriate resolution.

Change-Id: I9f550fef1eebe7387d232795105ec47bfa908f22
Reviewed-on: https://gerrit.chromium.org/gerrit/31181
Tested-by: Josh Triplett <josh@joshtriplett.org>
Reviewed-by: Rahul Chaturvedi <rkc@chromium.org>
Commit-Ready: Josh Triplett <josh@joshtriplett.org>
2012-08-22 18:08:34 -07:00
Ryan Cui
be24c739e9 Remove running of gerrit source transition chroot-upgrade hook.
The code has been in here long enough - most people should be
transitioned over who are using gerrit-source.  We've also already
removed the chrome projects from the default manifest, and things look
good so far.

BUG=chromium-os:32963
TEST=remote trybot

Change-Id: Idd5e3a2ad77ea86c7316a9d50f5da1a5fdf01d8b
Reviewed-on: https://gerrit.chromium.org/gerrit/31161
Reviewed-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Ryan Cui <rcui@chromium.org>
Tested-by: Ryan Cui <rcui@chromium.org>
2012-08-22 17:44:16 -07:00