unify err functions across scripts
include/err.sh this new handling also does mundane things, such as tell you what script b0rked Signed-off-by: Leah Rowe <leah@libreboot.org>btrfsvols
parent
b3fbcdf66e
commit
57adbc6eb1
39
fetch
39
fetch
|
@ -5,6 +5,8 @@
|
||||||
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
|
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
|
||||||
# SPDX-License-Identifier: GPL-3.0-only
|
# SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
name=""
|
name=""
|
||||||
revision=""
|
revision=""
|
||||||
location=""
|
location=""
|
||||||
|
@ -15,7 +17,7 @@ depend=""
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
[ -z "${1+x}" ] && err 'Error: name not set'
|
[ -z "${1+x}" ] && fail 'Error: name not set'
|
||||||
name=${1}
|
name=${1}
|
||||||
|
|
||||||
read_config
|
read_config
|
||||||
|
@ -51,9 +53,9 @@ EOF
|
||||||
|
|
||||||
verify_config()
|
verify_config()
|
||||||
{
|
{
|
||||||
[ -z "${revision+x}" ] && err 'Error: revision not set'
|
[ -z "${revision+x}" ] && fail 'Error: revision not set'
|
||||||
[ -z "${location+x}" ] && err 'Error: location not set'
|
[ -z "${location+x}" ] && fail 'Error: location not set'
|
||||||
[ -z "${url+x}" ] && err 'Error: url not set'
|
[ -z "${url+x}" ] && fail 'Error: url not set'
|
||||||
}
|
}
|
||||||
|
|
||||||
clone_project()
|
clone_project()
|
||||||
|
@ -61,19 +63,19 @@ clone_project()
|
||||||
tmp_dir=$(mktemp -dt "${name}_XXXXX")
|
tmp_dir=$(mktemp -dt "${name}_XXXXX")
|
||||||
|
|
||||||
git clone ${url} ${tmp_dir} || git clone ${bkup_url} ${tmp_dir} || \
|
git clone ${url} ${tmp_dir} || git clone ${bkup_url} ${tmp_dir} || \
|
||||||
err "ERROR: could not download ${name}"
|
fail "ERROR: could not download ${name}"
|
||||||
(
|
(
|
||||||
cd ${tmp_dir} || err "tmpdir not created"
|
cd ${tmp_dir} || fail "tmpdir not created"
|
||||||
git reset --hard ${revision} || err "Cannot reset revision"
|
git reset --hard ${revision} || fail "Cannot reset revision"
|
||||||
)
|
)
|
||||||
patch_project
|
patch_project
|
||||||
|
|
||||||
[ ! -d "${location}" ] || \
|
[ ! -d "${location}" ] || \
|
||||||
rm -Rf ${location} || err "Can't remove directory '${location}'"
|
rm -Rf ${location} || fail "Can't remove directory '${location}'"
|
||||||
mv ${tmp_dir} ${location} && return 0
|
mv ${tmp_dir} ${location} && return 0
|
||||||
|
|
||||||
printf "ERROR: Could not copy temp file to destination.\n"
|
printf "ERROR: Could not copy temp file to destination.\n"
|
||||||
err " ${tmp_dir} > ${location} check permissions"
|
fail " ${tmp_dir} > ${location} check permissions"
|
||||||
}
|
}
|
||||||
|
|
||||||
patch_project()
|
patch_project()
|
||||||
|
@ -83,12 +85,19 @@ patch_project()
|
||||||
for patchfile in ${PWD}/${patchdir}/*.patch ; do
|
for patchfile in ${PWD}/${patchdir}/*.patch ; do
|
||||||
[ -f "${patchfile}" ] || continue
|
[ -f "${patchfile}" ] || continue
|
||||||
(
|
(
|
||||||
cd ${tmp_dir} || err "tmpdir not created"
|
cd ${tmp_dir} || fail "tmpdir not created"
|
||||||
git am ${patchfile} || err "Cannot patch project: $name"
|
git am ${patchfile} || fail "Cannot patch project: $name"
|
||||||
)
|
)
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fail()
|
||||||
|
{
|
||||||
|
usage
|
||||||
|
rm -Rf "${tmp_dir}" > /dev/null 2>&1 | :
|
||||||
|
err "${1}"
|
||||||
|
}
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
cat <<- EOF
|
cat <<- EOF
|
||||||
|
@ -99,12 +108,4 @@ usage()
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "${@}\n"
|
|
||||||
usage
|
|
||||||
rm -Rf ${tmp_dir} >/dev/null 2>&1
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
_target=""
|
_target=""
|
||||||
tree=""
|
tree=""
|
||||||
rev=""
|
rev=""
|
||||||
|
@ -175,10 +177,4 @@ prepare_new_tree()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "ERROR, %s, %s\n" $0 $1 1>&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Copyright (c) 2022, 2023 Leah Rowe <info@minifree.org>
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
err()
|
||||||
|
{
|
||||||
|
printf "ERROR %s: %s\n" "${0}" "${1}" 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
25
lbmk
25
lbmk
|
@ -24,6 +24,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
projectname="$(cat projectname)"
|
projectname="$(cat projectname)"
|
||||||
buildpath=""
|
buildpath=""
|
||||||
mode=""
|
mode=""
|
||||||
|
@ -31,8 +33,8 @@ option=""
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
[ "${0##*/}" = "lbmk" ] && die "Don't run this script directly."
|
[ "${0##*/}" = "lbmk" ] && err "Don't run this script directly."
|
||||||
[ $# -lt 1 ] && die "Too few arguments. Try: ${0} help"
|
[ $# -lt 1 ] && err "Too few arguments. Try: ${0} help"
|
||||||
|
|
||||||
buildpath="./resources/scripts/${0##*/}"
|
buildpath="./resources/scripts/${0##*/}"
|
||||||
|
|
||||||
|
@ -41,7 +43,7 @@ main()
|
||||||
[ "${mode}" = "help" ] && usage ${0} && exit 0
|
[ "${mode}" = "help" ] && usage ${0} && exit 0
|
||||||
[ $# -lt 2 ] && usage ${0} && exit 1
|
[ $# -lt 2 ] && usage ${0} && exit 1
|
||||||
if [ "${mode}" = "dependencies" ]; then
|
if [ "${mode}" = "dependencies" ]; then
|
||||||
install_dependencies $@ || die "Could not install dependencies"
|
install_dependencies $@ || err "Could not install dependencies"
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
./resources/scripts/misc/versioncheck
|
./resources/scripts/misc/versioncheck
|
||||||
|
@ -62,13 +64,13 @@ main()
|
||||||
*)
|
*)
|
||||||
if [ ! -d "${buildpath}/${mode}" ]; then
|
if [ ! -d "${buildpath}/${mode}" ]; then
|
||||||
usage $0
|
usage $0
|
||||||
die "Invalid mode '${mode}'. Run: ${0} help"
|
err "Invalid mode '${mode}'. Run: ${0} help"
|
||||||
elif [ ! -f "${buildpath}/${mode}/${option}" ]; then
|
elif [ ! -f "${buildpath}/${mode}/${option}" ]; then
|
||||||
usage $0
|
usage $0
|
||||||
printf "Invalid option for '%s'." ${mode}
|
printf "Invalid option for '%s'." ${mode}
|
||||||
die "Run: ${0} ${mode} list'."
|
err "Run: ${0} ${mode} list'."
|
||||||
fi
|
fi
|
||||||
"${buildpath}/${mode}/${option}" $@ || die "lbmk error"
|
"${buildpath}/${mode}/${option}" $@ || err "lbmk error"
|
||||||
esac
|
esac
|
||||||
|
|
||||||
./.gitcheck clean
|
./.gitcheck clean
|
||||||
|
@ -76,12 +78,12 @@ main()
|
||||||
|
|
||||||
install_dependencies()
|
install_dependencies()
|
||||||
{
|
{
|
||||||
[ -f "resources/dependencies/${2}" ] || die "Unsupported target"
|
[ -f "resources/dependencies/${2}" ] || err "Unsupported target"
|
||||||
|
|
||||||
aur_notice=""
|
aur_notice=""
|
||||||
. "resources/dependencies/${2}"
|
. "resources/dependencies/${2}"
|
||||||
|
|
||||||
${pkg_add} ${pkglist} || die "Error installing dependencies"
|
${pkg_add} ${pkglist} || err "Error installing dependencies"
|
||||||
[ "${aur_notice}" != "" ] && \
|
[ "${aur_notice}" != "" ] && \
|
||||||
printf "You must install these AUR packages: %s\n" \
|
printf "You must install these AUR packages: %s\n" \
|
||||||
"${aur_notice}" 1>&2
|
"${aur_notice}" 1>&2
|
||||||
|
@ -120,11 +122,4 @@ listmodes()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
die()
|
|
||||||
{
|
|
||||||
./.gitcheck clean
|
|
||||||
printf "Error: %s\n" "${@}" 1>&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
projectname="$(cat projectname)"
|
projectname="$(cat projectname)"
|
||||||
opts=""
|
opts=""
|
||||||
boards=
|
boards=
|
||||||
|
@ -116,9 +118,4 @@ buildrom() {
|
||||||
./build boot roms_helper ${1}${opts}
|
./build boot roms_helper ${1}${opts}
|
||||||
}
|
}
|
||||||
|
|
||||||
err() {
|
|
||||||
printf '%s\n' "${1}" 1>&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -30,11 +30,7 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
err()
|
. "include/err.sh"
|
||||||
{
|
|
||||||
printf "ERROR: build/boot/roms: %s\n" "${1}" 1>&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
projectname="$(cat projectname)"
|
projectname="$(cat projectname)"
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
printf "Cleaning crossgcc builds in all coreboot archives\n"
|
printf "Cleaning crossgcc builds in all coreboot archives\n"
|
||||||
|
@ -34,10 +36,4 @@ main()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "%s: %s\n" $0 $1
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
ich9gen="util/ich9utils/ich9gen"
|
ich9gen="util/ich9utils/ich9gen"
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
@ -36,10 +38,4 @@ main()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "%s: %s\n" $0 $1
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
printf "Building GRUB\n"
|
printf "Building GRUB\n"
|
||||||
|
@ -41,10 +43,4 @@ build_grub()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "%s: error: %s\n" $0 $1
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
projectname="$(cat projectname)"
|
projectname="$(cat projectname)"
|
||||||
version="version-unknown"
|
version="version-unknown"
|
||||||
versiondate="version-date-unknown"
|
versiondate="version-date-unknown"
|
||||||
|
@ -165,10 +167,4 @@ strip_rom_image()
|
||||||
${cbfstool} "${romfile}" remove -n "pci10de,06eb.rom" || exit 1
|
${cbfstool} "${romfile}" remove -n "pci10de,06eb.rom" || exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "%s: %s\n" $0 $1
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
projectname="$(cat projectname)"
|
projectname="$(cat projectname)"
|
||||||
|
|
||||||
trees_fetch_list="coreboot u-boot"
|
trees_fetch_list="coreboot u-boot"
|
||||||
|
@ -161,9 +163,4 @@ create_release_archive()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "%s: %s\n" $0 $1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
mode=""
|
mode=""
|
||||||
project=""
|
project=""
|
||||||
|
|
||||||
|
@ -61,10 +63,4 @@ main()
|
||||||
|| err "cannot clean project src, ${project}"
|
|| err "cannot clean project src, ${project}"
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
|
||||||
{
|
|
||||||
printf "ERROR: build/src: %s\n" "${1}" 1>&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
projectname="$(cat projectname)"
|
projectname="$(cat projectname)"
|
||||||
our_version="$(cat version)"
|
our_version="$(cat version)"
|
||||||
|
|
||||||
|
@ -58,20 +60,20 @@ main()
|
||||||
mode="menuconfig"
|
mode="menuconfig"
|
||||||
shift ;;
|
shift ;;
|
||||||
*)
|
*)
|
||||||
err "Invalid option" ;;
|
fail "Invalid option" ;;
|
||||||
esac
|
esac
|
||||||
project="${OPTARG}"
|
project="${OPTARG}"
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
[ -z "${mode}" ] && err "mode not given (-m, -u or -b)"
|
[ -z "${mode}" ] && fail "mode not given (-m, -u or -b)"
|
||||||
|
|
||||||
elfdir="elf/${project}"
|
elfdir="elf/${project}"
|
||||||
|
|
||||||
cfgsdir="resources/${project}"
|
cfgsdir="resources/${project}"
|
||||||
[ -d "${cfgsdir}" ] || err "directory, ${cfgsdir}, does not exist"
|
[ -d "${cfgsdir}" ] || fail "directory, ${cfgsdir}, does not exist"
|
||||||
|
|
||||||
listfile="${cfgsdir}/build.list"
|
listfile="${cfgsdir}/build.list"
|
||||||
[ -f "${listfile}" ] || err "list file, ${listfile}, does not exist"
|
[ -f "${listfile}" ] || fail "list file, ${listfile}, does not exist"
|
||||||
|
|
||||||
# Build for all targets if no argument is given
|
# Build for all targets if no argument is given
|
||||||
if [ "$#" -eq 0 ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
|
@ -90,7 +92,7 @@ main()
|
||||||
printf "Running 'make %s' for project '%s, target '%s''\n" \
|
printf "Running 'make %s' for project '%s, target '%s''\n" \
|
||||||
"${mode}" "${project}" "${target}"
|
"${mode}" "${project}" "${target}"
|
||||||
[ "${project}" != "coreboot" ] || [ "${mode}" != "all" ] || \
|
[ "${project}" != "coreboot" ] || [ "${mode}" != "all" ] || \
|
||||||
./update blobs download ${target} || err "blobutil"
|
./update blobs download ${target} || fail "blobutil"
|
||||||
handle_defconfig || exit 1
|
handle_defconfig || exit 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -125,15 +127,15 @@ handle_dependencies()
|
||||||
arch="undefined"
|
arch="undefined"
|
||||||
|
|
||||||
[ ! -f "${target_dir}/target.cfg" ] && \
|
[ ! -f "${target_dir}/target.cfg" ] && \
|
||||||
err "build/${project} ${target}: Missing target.cfg"
|
fail "build/${project} ${target}: Missing target.cfg"
|
||||||
|
|
||||||
# Override the above defaults using target.cfg
|
# Override the above defaults using target.cfg
|
||||||
. "${target_dir}/target.cfg" # source
|
. "${target_dir}/target.cfg" # source
|
||||||
|
|
||||||
[ "${tree}" = "undefined" ] && \
|
[ "${tree}" = "undefined" ] && \
|
||||||
err "build/${project} %{target}: tree undefined"
|
fail "build/${project} %{target}: tree undefined"
|
||||||
[ "${arch}" = "undefined" ] && \
|
[ "${arch}" = "undefined" ] && \
|
||||||
err "build/${project} ${target}: undefined cpu type"
|
fail "build/${project} ${target}: undefined cpu type"
|
||||||
|
|
||||||
codedir="${project}/${tree}"
|
codedir="${project}/${tree}"
|
||||||
[ -d "${codedir}" ] || \
|
[ -d "${codedir}" ] || \
|
||||||
|
@ -141,7 +143,7 @@ handle_dependencies()
|
||||||
|
|
||||||
# u-boot and coreboot are both compiled with coreboot's crossgcc
|
# u-boot and coreboot are both compiled with coreboot's crossgcc
|
||||||
if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then
|
if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then
|
||||||
[ "${mode}" != "all" ] || check_cross_compiler || err "crossgcc"
|
[ "${mode}" != "all" ] || check_cross_compiler || fail "crossgcc"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +164,7 @@ check_cross_compiler()
|
||||||
# only true if not building coreboot:
|
# only true if not building coreboot:
|
||||||
[ -d "${cbdir}" ] || \
|
[ -d "${cbdir}" ] || \
|
||||||
./fetch_trees coreboot ${cbdir#coreboot/} || \
|
./fetch_trees coreboot ${cbdir#coreboot/} || \
|
||||||
err "check_cross_compiler"
|
fail "check_cross_compiler"
|
||||||
|
|
||||||
if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then
|
if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ]; then
|
||||||
[ -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ] || \
|
[ -d "${cbdir}/util/crossgcc/xgcc/i386-elf/" ] || \
|
||||||
|
@ -201,7 +203,7 @@ check_cross_compiler()
|
||||||
check_config()
|
check_config()
|
||||||
{
|
{
|
||||||
[ ! -f "${config}" ] && \
|
[ ! -f "${config}" ] && \
|
||||||
err "build/${project} ${target}: configs missing"
|
fail "build/${project} ${target}: configs missing"
|
||||||
|
|
||||||
dest_dir="${elfdir}/${target}/${config_name}"
|
dest_dir="${elfdir}/${target}/${config_name}"
|
||||||
for elftest in "${dest_dir}"/*; do
|
for elftest in "${dest_dir}"/*; do
|
||||||
|
@ -215,15 +217,15 @@ check_config()
|
||||||
|
|
||||||
run_make_command()
|
run_make_command()
|
||||||
{
|
{
|
||||||
make -C "${codedir}" distclean || err "run_make_command"
|
make -C "${codedir}" distclean || fail "run_make_command"
|
||||||
|
|
||||||
cp "${config}" "${codedir}/.config" || err "run_make_command"
|
cp "${config}" "${codedir}/.config" || fail "run_make_command"
|
||||||
[ "${mode}" != "all" ] || make -C "${codedir}" silentoldconfig || \
|
[ "${mode}" != "all" ] || make -C "${codedir}" silentoldconfig || \
|
||||||
make -C "${codedir}" oldconfig || : # don't error on oldconfig
|
make -C "${codedir}" oldconfig || : # don't error on oldconfig
|
||||||
|
|
||||||
[ "${project}" = "coreboot" ] && [ "${mode}" = "all" ] && \
|
[ "${project}" = "coreboot" ] && [ "${mode}" = "all" ] && \
|
||||||
printf "%s\n" "${our_version}" > "${codedir}/.coreboot-version"
|
printf "%s\n" "${our_version}" > "${codedir}/.coreboot-version"
|
||||||
make -C "${codedir}" -j$(nproc) ${mode} || err "run_make_command"
|
make -C "${codedir}" -j$(nproc) ${mode} || fail "run_make_command"
|
||||||
}
|
}
|
||||||
|
|
||||||
copy_elf()
|
copy_elf()
|
||||||
|
@ -233,17 +235,16 @@ copy_elf()
|
||||||
done
|
done
|
||||||
|
|
||||||
make -C "${codedir}" distclean || \
|
make -C "${codedir}" distclean || \
|
||||||
make -C "${codedir}" clean || err "copy_elf"
|
make -C "${codedir}" clean || fail "copy_elf"
|
||||||
}
|
}
|
||||||
|
|
||||||
err()
|
fail()
|
||||||
{
|
{
|
||||||
[ -z "${codedir}" ] || \
|
[ -z "${codedir}" ] || \
|
||||||
make -C "${codedir}" distclean \
|
make -C "${codedir}" distclean \
|
||||||
|| make -C "${codedir}" clean || :
|
|| make -C "${codedir}" clean || :
|
||||||
|
|
||||||
printf "build/defconfig error %s\n" "${1}" 1>&2
|
err "build/defconfig error ${1}"
|
||||||
exit 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
|
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
|
||||||
# SPDX-License-Identifier: GPL-3.0-only
|
# SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
agent="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
|
agent="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
|
||||||
|
|
||||||
ec_url=""
|
ec_url=""
|
||||||
|
@ -54,9 +56,9 @@ main()
|
||||||
boarddir="${cbcfgsdir}/${board}"
|
boarddir="${cbcfgsdir}/${board}"
|
||||||
|
|
||||||
[ ! -d "${boarddir}" ] && \
|
[ ! -d "${boarddir}" ] && \
|
||||||
fail "Board target, ${board}, not defined"
|
err "Board target, ${board}, not defined"
|
||||||
[ ! -f "${boarddir}/target.cfg" ] && \
|
[ ! -f "${boarddir}/target.cfg" ] && \
|
||||||
fail "Target missing target.cfg"
|
err "Target missing target.cfg"
|
||||||
|
|
||||||
no_config="printf \"No config for target, %s\\n\" ${board} 1>&2; exit 0"
|
no_config="printf \"No config for target, %s\\n\" ${board} 1>&2; exit 0"
|
||||||
for x in "${boarddir}"/config/*; do
|
for x in "${boarddir}"/config/*; do
|
||||||
|
@ -153,16 +155,16 @@ build_dependencies()
|
||||||
{
|
{
|
||||||
[ -d ${cbdir} ] || \
|
[ -d ${cbdir} ] || \
|
||||||
./fetch_trees coreboot ${cbdir##*/} || \
|
./fetch_trees coreboot ${cbdir##*/} || \
|
||||||
fail "can't download to ${cbdir}"
|
err "can't download to ${cbdir}"
|
||||||
for d in uefitool biosutilities bios_extract me_cleaner; do
|
for d in uefitool biosutilities bios_extract me_cleaner; do
|
||||||
[ -d "${d}" ] && continue
|
[ -d "${d}" ] && continue
|
||||||
./fetch ${d} || fail "can't download ${d}"
|
./fetch ${d} || err "can't download ${d}"
|
||||||
done
|
done
|
||||||
[ -f uefitool/uefiextract ] || \
|
[ -f uefitool/uefiextract ] || \
|
||||||
./build src for -b uefitool || fail "can't build uefitool"
|
./build src for -b uefitool || err "can't build uefitool"
|
||||||
[ -f ${cbdir}/util/kbc1126/kbc1126_ec_dump ] || \
|
[ -f ${cbdir}/util/kbc1126/kbc1126_ec_dump ] || \
|
||||||
make -BC ${cbdir}/util/kbc1126 || \
|
make -BC ${cbdir}/util/kbc1126 || \
|
||||||
fail "can't build kbc1126_ec_dump"
|
err "can't build kbc1126_ec_dump"
|
||||||
}
|
}
|
||||||
|
|
||||||
download_blobs()
|
download_blobs()
|
||||||
|
@ -183,7 +185,7 @@ download_blobs()
|
||||||
done
|
done
|
||||||
|
|
||||||
[ -z ${_failed+x} ] || \
|
[ -z ${_failed+x} ] || \
|
||||||
fail "failed to obtain ${_failed}\nTry manual extraction?"
|
err "failed to obtain ${_failed}\nTry manual extraction?"
|
||||||
}
|
}
|
||||||
|
|
||||||
download_blob_intel_me()
|
download_blob_intel_me()
|
||||||
|
@ -214,10 +216,10 @@ extract_blob_intel_me()
|
||||||
innoextract ${dl_path} -d ${appdir} || \
|
innoextract ${dl_path} -d ${appdir} || \
|
||||||
7z x ${dl_path} -o${appdir} || \
|
7z x ${dl_path} -o${appdir} || \
|
||||||
unar "${dl_path}" -o "${appdir}" || \
|
unar "${dl_path}" -o "${appdir}" || \
|
||||||
fail "Could not extract vendor update"
|
err "Could not extract vendor update"
|
||||||
|
|
||||||
bruteforce_extract_blob_intel_me "$(pwd)/${_me_destination}" \
|
bruteforce_extract_blob_intel_me "$(pwd)/${_me_destination}" \
|
||||||
"$(pwd)/${appdir}" || fail "Could not extract Intel ME firmware"
|
"$(pwd)/${appdir}" || err "Could not extract Intel ME firmware"
|
||||||
|
|
||||||
printf "Truncated and cleaned me output to ${_me_destination}\n"
|
printf "Truncated and cleaned me output to ${_me_destination}\n"
|
||||||
}
|
}
|
||||||
|
@ -314,7 +316,7 @@ extract_blob_kbc1126_ec()
|
||||||
mv Rom.bin ec.bin
|
mv Rom.bin ec.bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -f ec.bin ] || fail "could not extract ec.bin for board, ${board}"
|
[ -f ec.bin ] || err "could not extract ec.bin for board, ${board}"
|
||||||
"${kbc1126_ec_dump}" ec.bin
|
"${kbc1126_ec_dump}" ec.bin
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -367,10 +369,10 @@ extract_e6400vga()
|
||||||
tail -c +${e6400_vga_offset} "${dl_path##*/}" \
|
tail -c +${e6400_vga_offset} "${dl_path##*/}" \
|
||||||
| gunzip > bios.bin
|
| gunzip > bios.bin
|
||||||
[ -f "bios.bin" ] || \
|
[ -f "bios.bin" ] || \
|
||||||
fail "Could not extract bios.bin from Dell E6400 update"
|
err "Could not extract bios.bin from Dell E6400 update"
|
||||||
"${e6400_unpack}" bios.bin || printf "TODO: fix dell extract util\n"
|
"${e6400_unpack}" bios.bin || printf "TODO: fix dell extract util\n"
|
||||||
[ -f "${e6400_vga_romname}" ] || \
|
[ -f "${e6400_vga_romname}" ] || \
|
||||||
fail "Could not extract VGA ROM from Dell E6400 BIOS update"
|
err "Could not extract VGA ROM from Dell E6400 BIOS update"
|
||||||
)
|
)
|
||||||
|
|
||||||
cp "${appdir}"/"${e6400_vga_romname}" "${_vga_destination}"
|
cp "${appdir}"/"${e6400_vga_romname}" "${_vga_destination}"
|
||||||
|
@ -483,10 +485,4 @@ vendor_checksum()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
fail()
|
|
||||||
{
|
|
||||||
printf "\nERROR: $@\n"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
|
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
|
||||||
# SPDX-License-Identifier: GPL-3.0-only
|
# SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
sname=""
|
sname=""
|
||||||
board=""
|
board=""
|
||||||
vendor_rom=""
|
vendor_rom=""
|
||||||
|
@ -29,7 +31,7 @@ _ifd_destination=""
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
sname=${0}
|
sname=${0}
|
||||||
[ $# -lt 2 ] && fail "Missing arguments (fewer than two)."
|
[ $# -lt 2 ] && err "Missing arguments (fewer than two)."
|
||||||
|
|
||||||
board="${1}"
|
board="${1}"
|
||||||
vendor_rom="${2}"
|
vendor_rom="${2}"
|
||||||
|
@ -43,21 +45,21 @@ main()
|
||||||
check_board()
|
check_board()
|
||||||
{
|
{
|
||||||
[ -f "${vendor_rom}" ] || \
|
[ -f "${vendor_rom}" ] || \
|
||||||
fail "file does not exist: ${vendor_rom}"
|
err "file does not exist: ${vendor_rom}"
|
||||||
[ -d "${boarddir}" ] || \
|
[ -d "${boarddir}" ] || \
|
||||||
fail "build/roms ${board}: target not defined"
|
err "build/roms ${board}: target not defined"
|
||||||
[ -f "${boarddir}/target.cfg" ] || \
|
[ -f "${boarddir}/target.cfg" ] || \
|
||||||
fail "build/roms ${board}: missing target.cfg"
|
err "build/roms ${board}: missing target.cfg"
|
||||||
}
|
}
|
||||||
|
|
||||||
build_dependencies()
|
build_dependencies()
|
||||||
{
|
{
|
||||||
[ -d me_cleaner ] || \
|
[ -d me_cleaner ] || \
|
||||||
./fetch me_cleaner || fail "can't fetch me_cleaner"
|
./fetch me_cleaner || err "can't fetch me_cleaner"
|
||||||
[ -d ${cbdir} ] || \
|
[ -d ${cbdir} ] || \
|
||||||
./fetch_trees coreboot default || fail "can't fetch coreboot"
|
./fetch_trees coreboot default || err "can't fetch coreboot"
|
||||||
[ -f ${ifdtool} ] || \
|
[ -f ${ifdtool} ] || \
|
||||||
make -C "${ifdtool%/ifdtool}" || fail "can't build ifdtool"
|
make -C "${ifdtool%/ifdtool}" || err "can't build ifdtool"
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_blobs()
|
extract_blobs()
|
||||||
|
@ -69,7 +71,7 @@ extract_blobs()
|
||||||
. "${boarddir}/target.cfg"
|
. "${boarddir}/target.cfg"
|
||||||
|
|
||||||
[ "$CONFIG_HAVE_MRC" != "y" ] || \
|
[ "$CONFIG_HAVE_MRC" != "y" ] || \
|
||||||
./update blobs mrc || fail "could not download mrc"
|
./update blobs mrc || err "could not download mrc"
|
||||||
|
|
||||||
_me_destination=${CONFIG_ME_BIN_PATH#../../}
|
_me_destination=${CONFIG_ME_BIN_PATH#../../}
|
||||||
_gbe_destination=${CONFIG_GBE_BIN_PATH#../../}
|
_gbe_destination=${CONFIG_GBE_BIN_PATH#../../}
|
||||||
|
@ -81,7 +83,7 @@ extract_blobs()
|
||||||
# Cleans up other files extracted with ifdtool
|
# Cleans up other files extracted with ifdtool
|
||||||
rm -f flashregion*.bin 2> /dev/null
|
rm -f flashregion*.bin 2> /dev/null
|
||||||
|
|
||||||
[ -f ${_ifd_destination} ] || fail "Could not extract IFD"
|
[ -f ${_ifd_destination} ] || err "Could not extract IFD"
|
||||||
printf "gbe, ifd, and me extracted to %s\n" \
|
printf "gbe, ifd, and me extracted to %s\n" \
|
||||||
${_me_destination%/*}
|
${_me_destination%/*}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +96,7 @@ extract_blob_intel_me()
|
||||||
-M ${_me_destination} ${vendor_rom} -t -r -S || \
|
-M ${_me_destination} ${vendor_rom} -t -r -S || \
|
||||||
${me7updateparser} \
|
${me7updateparser} \
|
||||||
-O ${_me_destination} ${vendor_rom} || \
|
-O ${_me_destination} ${vendor_rom} || \
|
||||||
fail "me_cleaner failed to extract blobs from rom"
|
err "me_cleaner failed to extract blobs from rom"
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_blob_intel_gbe_nvm()
|
extract_blob_intel_gbe_nvm()
|
||||||
|
@ -102,14 +104,7 @@ extract_blob_intel_gbe_nvm()
|
||||||
printf "extracting gigabit ethernet firmware"
|
printf "extracting gigabit ethernet firmware"
|
||||||
./${ifdtool} -x ${vendor_rom}
|
./${ifdtool} -x ${vendor_rom}
|
||||||
mv flashregion*gbe.bin ${_gbe_destination} || \
|
mv flashregion*gbe.bin ${_gbe_destination} || \
|
||||||
fail 'could not extract gbe'
|
err 'could not extract gbe'
|
||||||
}
|
|
||||||
|
|
||||||
fail()
|
|
||||||
{
|
|
||||||
print_help
|
|
||||||
printf "\n%s: ERROR: %s\n" ${sname} $@
|
|
||||||
exit 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print_help()
|
print_help()
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
|
# SPDX-FileCopyrightText: 2023 Leah Rowe <info@minifree.org>
|
||||||
# SPDX-License-Identifier: GPL-3.0-only
|
# SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
sname=""
|
sname=""
|
||||||
archive=""
|
archive=""
|
||||||
_filetype=""
|
_filetype=""
|
||||||
|
@ -41,7 +43,7 @@ main()
|
||||||
{
|
{
|
||||||
sname="${0}"
|
sname="${0}"
|
||||||
|
|
||||||
[ $# -lt 1 ] && fail "No options specified."
|
[ $# -lt 1 ] && err "No options specified."
|
||||||
[ "${1}" = "listboards" ] && listboards && exit 0
|
[ "${1}" = "listboards" ] && listboards && exit 0
|
||||||
|
|
||||||
archive="${1}"
|
archive="${1}"
|
||||||
|
@ -72,21 +74,21 @@ check_board()
|
||||||
{
|
{
|
||||||
if ! check_release ${archive} ; then
|
if ! check_release ${archive} ; then
|
||||||
[ -f "${rom}" ] || \
|
[ -f "${rom}" ] || \
|
||||||
fail "${rom} is not a valid path"
|
err "${rom} is not a valid path"
|
||||||
[ -z ${rom+x} ] && \
|
[ -z ${rom+x} ] && \
|
||||||
fail 'no rom specified'
|
err 'no rom specified'
|
||||||
[ ! -z ${board+x} ] || \
|
[ ! -z ${board+x} ] || \
|
||||||
board=$(detect_board ${rom}) || \
|
board=$(detect_board ${rom}) || \
|
||||||
fail 'no board specified'
|
err 'no board specified'
|
||||||
else
|
else
|
||||||
release=true
|
release=true
|
||||||
releasearchive="${archive}"
|
releasearchive="${archive}"
|
||||||
board=$(detect_board ${archive}) || \
|
board=$(detect_board ${archive}) || \
|
||||||
fail 'Could not detect board type'
|
err 'Could not detect board type'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
boarddir="${cbcfgsdir}/${board}"
|
boarddir="${cbcfgsdir}/${board}"
|
||||||
[ -d "${boarddir}" ] || fail "board ${board} not found"
|
[ -d "${boarddir}" ] || err "board ${board} not found"
|
||||||
}
|
}
|
||||||
|
|
||||||
check_release()
|
check_release()
|
||||||
|
@ -120,9 +122,9 @@ detect_board()
|
||||||
build_dependencies()
|
build_dependencies()
|
||||||
{
|
{
|
||||||
[ -d "${cbdir}" ] || ./fetch_trees coreboot default
|
[ -d "${cbdir}" ] || ./fetch_trees coreboot default
|
||||||
./build coreboot utils default || fail "could not build cbutils"
|
./build coreboot utils default || err "could not build cbutils"
|
||||||
./update blobs download ${board} || \
|
./update blobs download ${board} || \
|
||||||
fail "Could not download blobs for ${board}"
|
err "Could not download blobs for ${board}"
|
||||||
}
|
}
|
||||||
|
|
||||||
inject_blobs()
|
inject_blobs()
|
||||||
|
@ -139,17 +141,17 @@ patch_release_roms()
|
||||||
{
|
{
|
||||||
_tmpdir=$(mktemp -d "/tmp/${board}_tmpXXXX")
|
_tmpdir=$(mktemp -d "/tmp/${board}_tmpXXXX")
|
||||||
tar xf "${releasearchive}" -C "${_tmpdir}" || \
|
tar xf "${releasearchive}" -C "${_tmpdir}" || \
|
||||||
fail 'could not extract release archive'
|
err 'could not extract release archive'
|
||||||
|
|
||||||
for x in ${_tmpdir}/bin/*/*.rom ; do
|
for x in ${_tmpdir}/bin/*/*.rom ; do
|
||||||
echo "patching rom $x"
|
echo "patching rom $x"
|
||||||
patch_rom ${x} || fail "could not patch ${x}"
|
patch_rom ${x} || err "could not patch ${x}"
|
||||||
done
|
done
|
||||||
|
|
||||||
(
|
(
|
||||||
cd ${_tmpdir}/bin/*
|
cd ${_tmpdir}/bin/*
|
||||||
sha1sum --status -c blobhashes || \
|
sha1sum --status -c blobhashes || \
|
||||||
fail 'ROMs did not match expected hashes'
|
err 'ROMs did not match expected hashes'
|
||||||
)
|
)
|
||||||
|
|
||||||
if [ "${modifygbe}" = "true" ]; then
|
if [ "${modifygbe}" = "true" ]; then
|
||||||
|
@ -223,11 +225,11 @@ inject_blob_intel_me()
|
||||||
|
|
||||||
rom="${1}"
|
rom="${1}"
|
||||||
[ -z ${CONFIG_ME_BIN_PATH} ] && \
|
[ -z ${CONFIG_ME_BIN_PATH} ] && \
|
||||||
fail "CONFIG_ME_BIN_PATH not set"
|
err "CONFIG_ME_BIN_PATH not set"
|
||||||
|
|
||||||
_me_location=${CONFIG_ME_BIN_PATH#../../}
|
_me_location=${CONFIG_ME_BIN_PATH#../../}
|
||||||
[ ! -f "${_me_location}" ] && \
|
[ ! -f "${_me_location}" ] && \
|
||||||
fail "CONFIG_ME_BIN_PATH points to missing file"
|
err "CONFIG_ME_BIN_PATH points to missing file"
|
||||||
|
|
||||||
${ifdtool} -i me:${_me_location} ${rom} -O ${rom} || exit 1
|
${ifdtool} -i me:${_me_location} ${rom} -O ${rom} || exit 1
|
||||||
}
|
}
|
||||||
|
@ -310,19 +312,19 @@ modify_gbe()
|
||||||
rom=${1}
|
rom=${1}
|
||||||
|
|
||||||
[ -z ${CONFIG_GBE_BIN_PATH} ] && \
|
[ -z ${CONFIG_GBE_BIN_PATH} ] && \
|
||||||
fail "CONFIG_GBE_BIN_PATH not set"
|
err "CONFIG_GBE_BIN_PATH not set"
|
||||||
|
|
||||||
_gbe_location=${CONFIG_GBE_BIN_PATH#../../}
|
_gbe_location=${CONFIG_GBE_BIN_PATH#../../}
|
||||||
|
|
||||||
[ -f "${_gbe_location}" ] || \
|
[ -f "${_gbe_location}" ] || \
|
||||||
fail "CONFIG_GBE_BIN_PATH points to missing file"
|
err "CONFIG_GBE_BIN_PATH points to missing file"
|
||||||
[ -f ${nvmutil} ] || \
|
[ -f ${nvmutil} ] || \
|
||||||
make -C util/nvmutil || fail 'failed to build nvmutil'
|
make -C util/nvmutil || err 'failed to build nvmutil'
|
||||||
|
|
||||||
_gbe_tmp=$(mktemp -t gbeXXXX.bin)
|
_gbe_tmp=$(mktemp -t gbeXXXX.bin)
|
||||||
cp ${_gbe_location} ${_gbe_tmp}
|
cp ${_gbe_location} ${_gbe_tmp}
|
||||||
${nvmutil} "${_gbe_tmp}" setmac ${new_mac} || \
|
${nvmutil} "${_gbe_tmp}" setmac ${new_mac} || \
|
||||||
fail 'failed to modify mac address'
|
err 'failed to modify mac address'
|
||||||
|
|
||||||
${ifdtool} -i GbE:${_gbe_tmp} "${rom}" -O "${rom}" || exit 1
|
${ifdtool} -i GbE:${_gbe_tmp} "${rom}" -O "${rom}" || exit 1
|
||||||
|
|
||||||
|
@ -339,14 +341,6 @@ listboards()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
fail()
|
|
||||||
{
|
|
||||||
[ -z ${@+x} ] || \
|
|
||||||
printf "\n%s: ERROR: ${@}\n" ${sname}
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
cat <<- EOF
|
cat <<- EOF
|
||||||
|
|
|
@ -17,6 +17,9 @@
|
||||||
|
|
||||||
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
[ "x${DEBUG+set}" = 'xset' ] && set -v
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
|
. "include/err.sh"
|
||||||
|
|
||||||
export PATH="${PATH}:/sbin"
|
export PATH="${PATH}:/sbin"
|
||||||
|
|
||||||
# This file is forked from util/chromeos/crosfirmware.sh in coreboot cfc26ce278
|
# This file is forked from util/chromeos/crosfirmware.sh in coreboot cfc26ce278
|
||||||
|
@ -51,8 +54,8 @@ main()
|
||||||
printf "Downloading Intel MRC blobs\n"
|
printf "Downloading Intel MRC blobs\n"
|
||||||
|
|
||||||
check_existing && exit 0
|
check_existing && exit 0
|
||||||
build_dependencies || fail "could not build dependencies"
|
build_dependencies || err "could not build dependencies"
|
||||||
fetch_mrc || fail "could not fetch mrc.bin"
|
fetch_mrc || err "could not fetch mrc.bin"
|
||||||
}
|
}
|
||||||
|
|
||||||
check_existing()
|
check_existing()
|
||||||
|
@ -85,7 +88,7 @@ fetch_mrc()
|
||||||
[ -f ${_file} ] || \
|
[ -f ${_file} ] || \
|
||||||
download_image ${_url2} ${_file} ${_sha1sum}
|
download_image ${_url2} ${_file} ${_sha1sum}
|
||||||
[ -f $_file ] || \
|
[ -f $_file ] || \
|
||||||
fail "%{_file} not downloaded / verification failed."
|
err "%{_file} not downloaded / verification failed."
|
||||||
|
|
||||||
extract_partition ROOT-A ${_file} root-a.ext2
|
extract_partition ROOT-A ${_file} root-a.ext2
|
||||||
extract_shellball root-a.ext2 chromeos-firmwareupdate-${_board}
|
extract_shellball root-a.ext2 chromeos-firmwareupdate-${_board}
|
||||||
|
@ -93,7 +96,7 @@ fetch_mrc()
|
||||||
extract_coreboot chromeos-firmwareupdate-${_board}
|
extract_coreboot chromeos-firmwareupdate-${_board}
|
||||||
|
|
||||||
../../${cbfstool} coreboot-*.bin extract -f mrc.bin -n mrc.bin \
|
../../${cbfstool} coreboot-*.bin extract -f mrc.bin -n mrc.bin \
|
||||||
-r RO_SECTION || fail "Could not fetch mrc.bin"
|
-r RO_SECTION || err "Could not fetch mrc.bin"
|
||||||
rm -f "chromeos-firmwareupdate-${_board}" coreboot-*.bin \
|
rm -f "chromeos-firmwareupdate-${_board}" coreboot-*.bin \
|
||||||
"${_file}" "root-a.ext2"
|
"${_file}" "root-a.ext2"
|
||||||
|
|
||||||
|
@ -166,11 +169,4 @@ extract_coreboot()
|
||||||
rm -r "${_unpacked}"
|
rm -r "${_unpacked}"
|
||||||
}
|
}
|
||||||
|
|
||||||
fail()
|
|
||||||
{
|
|
||||||
printf "%s: ERROR: %s\n"
|
|
||||||
${sname} ${1}
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
Loading…
Reference in New Issue