Files
dts-scripts/scripts/dts-boot.sh

55 lines
1.6 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# SPDX-FileCopyrightText: 2024 3mdeb <contact@3mdeb.com>
#
# SPDX-License-Identifier: Apache-2.0
SBIN_DIR="/usr/sbin"
FUM_EFIVAR="/sys/firmware/efi/efivars/FirmwareUpdateMode-d15b327e-ff2d-4fc1-abf6-c12bd08c1359"
export DTS_FUNCS="$SBIN_DIR/dts-functions.sh"
export DTS_ENV="$SBIN_DIR/dts-environment.sh"
export DTS_SUBS="$SBIN_DIR/dts-subscription.sh"
export DTS_HAL="$SBIN_DIR/dts-hal.sh"
export DTS_MOCK_COMMON="$SBIN_DIR/common-mock-func.sh"
export BASH_ENV="$SBIN_DIR/logging"
export TMP_LOG_DIR="/tmp/logs"
export ERR_LOG_FILE_REALPATH
export DTS_LOG_FILE
export DTS_VERBOSE_LOG_FILE
export ERR_LOG_FILE
export SHELLOPTS
mkdir -p "$TMP_LOG_DIR"
# $ERR_LOG_FILE is fd that can only be written to: '>()'. To copy logs
# we need underlying file that can be copied
ERR_LOG_FILE_REALPATH="/var/local/dts-err_$(basename "$(tty)").log"
DTS_LOG_FILE="$TMP_LOG_DIR/dts_$(basename "$(tty)").log"
DTS_VERBOSE_LOG_FILE="$TMP_LOG_DIR/dts-verbose_$(basename "$(tty)").log"
# shellcheck source=./logging
source "$BASH_ENV"
start_trace_logging
start_logging
if [ -z "$ERR_LOG_FILE" ]; then
# pass everything written to $ERR_LOG_FILE to logger function and save it's
# output to $ERR_LOG_FILE_REALPATH file
exec {ERR_LOG_FILE}> >(logger >>"$ERR_LOG_FILE_REALPATH")
ERR_LOG_FILE="/proc/$$/fd/$ERR_LOG_FILE"
fi
# shellcheck source=../include/dts-environment.sh
source $DTS_ENV
# shellcheck source=../include/dts-functions.sh
source $DTS_FUNCS
# shellcheck source=../include/hal/dts-hal.sh
source $DTS_HAL
dts-scripts: Enhance mocking for purposes of profile comparison common-mock-func: set dmidecode to return 0 by default if test variable isn't defined this likely means that this value doesn't matter for test purposes. Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock-func: cbmem shouldn't exit in failure in normal check Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock-func: cbfstool: allow specifying fmap regions in binary Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> dts-functions: set_flashrom_update_params: don't use $1 directly It's hard to know exactly what this argument is for otherwise as this function isn't documented Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> deploy: don't use mktemp so profile arguments are always the same Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> dts-boot: create TEMP_DIR Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: cbfstool: return 1 if not coreboot Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> cbfstool: don't mock when we check update binary config Except in some cases where we want to possibly test for identical config between update binary and current firmware. Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> dasharo-deploy: add 2>>ERR_LOG_FILE redirection Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: cbmem: check if coreboot Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> dts-functions: download_keys: use 'mkdir -p' so it doesn't error out Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: add cbmem_common_mock which returns error if not coreboot Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: add msrtool and mei-amt-check common mock Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: ifdtool: call original ifdtool if used with update binary Fixes situation on QEMU that results in user not being asked whether to continue flashing without ME even though we want to test with ME enabled Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: flashrom: verify internal chip use Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: add bootsplash presence mocking Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: both flashrom and cbfstool allow writing over existing file Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: bootsplash region might exist without custom bootsplash Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> check_if_me_disabled: Don't use mocked functions with 'grep -q' Otherwise grep will break pipe immediately after matching searched string which will result in mocked function being immediately stopped even before finishing. It also results in e.g. tool wrapper not writing used command to profile Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: Add separate ME disabled and ME HAP disabled Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: add cbfstool smmstore mocking Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> common-mock: simplify fuse mock Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> dts-functions: check_if_boot_guard_enabled: hide rdmsr output remove non-existent command, likely pasted by mistake Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com> include: hal: add cbfstool_add_firmware_section_mock Signed-off-by: Daniil Klimuk <daniil.klimuk@3mdeb.com> use dont_mock instead of cbfstool_add_firmware_section_mock Signed-off-by: Daniil Klimuk <daniil.klimuk@3mdeb.com> common-mock: rename regions to _regions Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>
2025-08-11 16:20:49 +02:00
mkdir -p "$TEMP_DIR"
if [ -f $FUM_EFIVAR ]; then
$SBIN_DIR/dasharo-deploy update fum
else
$SBIN_DIR/dts
fi