mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-07 21:16:57 +02:00
CrOS could be used in devices that dont have custom firmware to interpret the Kernelblock (Part2,4). In such devices skip trying to make the kernelblock BUG=none TEST=./build_image --board=chronos test and verify we dont build the kernel block Change-Id: I3e9a8dd765ea00db2ebf112553d96c08960e544f Reviewed-on: https://gerrit.chromium.org/gerrit/40219 Commit-Queue: Anush Elangovan <anush@chromium.org> Reviewed-by: Anush Elangovan <anush@chromium.org> Tested-by: Anush Elangovan <anush@chromium.org>
92 lines
3.1 KiB
Bash
Executable File
92 lines
3.1 KiB
Bash
Executable File
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Shell function library for functions specific to creating test
|
|
# images from dev images. This file also contains additional
|
|
# functions and initialization shared between build_image and
|
|
# mod_image_for_test.sh.
|
|
#
|
|
|
|
# Emerges chromeos-test onto the image.
|
|
emerge_chromeos_test() {
|
|
# Determine the root dir for test packages.
|
|
local root_dev_dir="${root_fs_dir}/usr/local"
|
|
|
|
emerge_to_image --root="${root_fs_dir}" chromeos-test-init
|
|
emerge_to_image --root="${root_dev_dir}" chromeos-test
|
|
}
|
|
|
|
prepare_hwid_for_factory() {
|
|
local hwid_dest="$1/hwid"
|
|
local hwid_src="${BOARD_ROOT}/usr/share/chromeos-hwid"
|
|
|
|
# Force refreshing source folder in build root folder
|
|
sudo rm -rf "${hwid_src}" "${hwid_dest}"
|
|
emerge_to_image chromeos-hwid
|
|
if [ -d "${hwid_src}" ]; then
|
|
# TODO(hungte) After being archived by chromite, the HWID files will be in
|
|
# factory_test/hwid; we should move it to top level folder.
|
|
cp -r "${hwid_src}" "${hwid_dest}"
|
|
else
|
|
echo "Skipping HWID: No HWID bundles found."
|
|
fi
|
|
}
|
|
|
|
# Converts a dev image into a test or factory test image
|
|
# Takes as an arg the name of the image to be created.
|
|
mod_image_for_test () {
|
|
local image_name="$1"
|
|
|
|
trap unmount_image EXIT
|
|
mount_image "${BUILD_DIR}/${image_name}" \
|
|
"${root_fs_dir}" "${stateful_fs_dir}"
|
|
|
|
emerge_chromeos_test
|
|
|
|
BACKDOOR=0
|
|
if [ $FLAGS_standard_backdoor -eq $FLAGS_TRUE ]; then
|
|
BACKDOOR=1
|
|
fi
|
|
|
|
local mod_test_script="${SCRIPTS_DIR}/mod_for_test_scripts/test_setup.sh"
|
|
# Run test setup script to modify the image
|
|
sudo -E GCLIENT_ROOT="${GCLIENT_ROOT}" ROOT_FS_DIR="${root_fs_dir}" \
|
|
STATEFUL_DIR="${stateful_fs_dir}" ARCH="${ARCH}" BACKDOOR="${BACKDOOR}" \
|
|
BOARD_ROOT="${BOARD_ROOT}" \
|
|
"${mod_test_script}"
|
|
|
|
# Legacy parameter (used by mod_image_for_test.sh --factory)
|
|
[ -n "${FLAGS_factory}" ] || FLAGS_factory=${FLAGS_FALSE}
|
|
|
|
if [ ${FLAGS_factory} -eq ${FLAGS_TRUE} ] ||
|
|
should_build_image "${CHROMEOS_FACTORY_TEST_IMAGE_NAME}"; then
|
|
emerge_to_image --root="${root_fs_dir}" factorytest-init
|
|
INSTALL_MASK="${FACTORY_TEST_INSTALL_MASK}"
|
|
emerge_to_image --root="${root_fs_dir}/usr/local" \
|
|
chromeos-base/autotest chromeos-base/autotest-all \
|
|
chromeos-base/chromeos-factory
|
|
prepare_hwid_for_factory "${BUILD_DIR}"
|
|
|
|
local mod_factory_script
|
|
mod_factory_script="${SCRIPTS_DIR}/mod_for_factory_scripts/factory_setup.sh"
|
|
# Run factory setup script to modify the image
|
|
sudo -E GCLIENT_ROOT="${GCLIENT_ROOT}" ROOT_FS_DIR="${root_fs_dir}" \
|
|
BOARD="${BOARD}" "${mod_factory_script}"
|
|
fi
|
|
|
|
# Re-run ldconfig to fix /etc/ldconfig.so.cache.
|
|
sudo ldconfig -r "${root_fs_dir}"
|
|
|
|
cleanup_mounts
|
|
trap - EXIT
|
|
|
|
if [[ ${skip_kernelblock_install} -ne 1 ]]; then
|
|
# Now make it bootable with the flags from build_image.
|
|
if should_build_image ${image_name}; then
|
|
"${SCRIPTS_DIR}/bin/cros_make_image_bootable" "${BUILD_DIR}" \
|
|
${image_name} --force_developer_mode
|
|
fi
|
|
fi
|
|
}
|