| #!/bin/bash |
| # Copyright 2017 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. |
| |
| # Loads script libraries. |
| SCRIPT_ROOT=$(dirname "$(readlink -f "$0")") |
| . "${SCRIPT_ROOT}/common.sh" || exit 1 |
| |
| FLAGS_HELP=" |
| Command to rebuild firmware after a config change. |
| |
| After you make a change to the firmware version in the master configuration, |
| run this script to test it. It will rebuild the master configuration, update |
| the Manifest and build the new firmware. You can then submit your CL to update |
| the master configuration, safe in the knowledge that you have tested it. |
| |
| Usage: |
| cros_update_firmware <board> |
| |
| where <board> is the board whose firmware needs updating (e.g. 'coral'). |
| " |
| |
| # Script must be run inside the chroot. |
| restart_in_chroot_if_needed "$@" |
| |
| # Flags |
| DEFINE_string board "${DEFAULT_BOARD}" "Which board the firmware is for" b |
| |
| # Parse command line. |
| FLAGS "$@" || exit 1 |
| eval set -- "${FLAGS_ARGV}" |
| switch_to_strict_mode |
| |
| update_firmware() { |
| local board="$1" |
| local base ebuild srcuris |
| |
| set -e |
| cros_workon --board="${board}" start chromeos-config-bsp \ |
| "chromeos-firmware-${board}" |
| base="${GCLIENT_ROOT}/src/private-overlays/overlay-${board}-private/chromeos-base" |
| ebuild="${base}/chromeos-firmware-${board}/chromeos-firmware-${board}-9999.ebuild" |
| srcuris="${base}/chromeos-firmware-${board}/files/srcuris" |
| "emerge-${board}" chromeos-config-bsp chromeos-config |
| cros_config_host -c "/build/${board}/usr/share/chromeos-config/config.dtb" \ |
| get-firmware-uris > "${srcuris}" |
| touch "${ebuild}" |
| "ebuild-${board}" "${ebuild}" manifest |
| "emerge-${board}" "chromeos-firmware-${board}" |
| } |
| |
| main() { |
| if [[ -z "${FLAGS_board}" ]]; then |
| die_notrace "-b or --board required." |
| fi |
| |
| update_firmware "${FLAGS_board}" |
| } |
| |
| main "$@" |