Skip to content

Commit 7d3a28a

Browse files
authored
Merge pull request #2119 from tlaurion/dasharo-shared-toolchain
circleci,modules/coreboot,doc: share crossgcc toolchain across Dasharo 24.12 forks; blobs: add lib.sh and unify hash pre-checks
2 parents f73b9b0 + 377b69c commit 7d3a28a

14 files changed

Lines changed: 577 additions & 558 deletions

.circleci/config.yml

Lines changed: 114 additions & 124 deletions
Large diffs are not rendered by default.

blobs/lib.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Common functions for blob download/processing scripts.
2+
# Source this file from individual blob scripts.
3+
# source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
4+
5+
# Verify sha256sum for a file. Exit with error on mismatch.
6+
chk_sha256sum() {
7+
local sha256_hash="$1"
8+
local filename="$2"
9+
echo "$sha256_hash" "$filename" "$(pwd)"
10+
sha256sum "$filename"
11+
if ! echo "${sha256_hash} ${filename}" | sha256sum --check; then
12+
echo "ERROR: SHA256 checksum for ${filename} doesn't match."
13+
exit 1
14+
fi
15+
}
16+
17+
# Check that output files exist and match expected hashes.
18+
# Each arg is "<hash> <path>" (hash optionally followed by filename).
19+
# Returns 0 if all files exist AND hashes match.
20+
# Prints which files are missing and which have mismatched hashes.
21+
check_outputs() {
22+
local all_ok=y
23+
local pair hash path
24+
for pair in "$@"; do
25+
pair="$(echo "$pair" | tr -s ' ')"
26+
hash="${pair%% *}"
27+
path="${pair#* }"
28+
echo -n "CHECKING: ${path}... "
29+
if [[ ! -f "$path" ]]; then
30+
echo "MISSING"
31+
all_ok=
32+
elif echo "${hash} ${path}" | sha256sum --check >/dev/null 2>&1; then
33+
echo "OK"
34+
else
35+
echo "HASH MISMATCH"
36+
all_ok=
37+
fi
38+
done
39+
if [[ -n "$all_ok" ]]; then
40+
return 0
41+
fi
42+
return 1
43+
}

blobs/p8z77-m_pro/download_BIOS_clean.sh

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/usr/bin/env bash
2+
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
23
# P7 ASUS
34

45
function printusage {
@@ -44,13 +45,15 @@ fi
4445

4546
CAP_ZIP_SHA256SUM="baf7f513227542c507e46735334663f63a0df5be9f6632d7b0f0cca5d3b9f980 P8Z77-M-PRO-ASUS-2203.zip"
4647
CAP_FILE_SHA256SUM="d9bf292778655d4e20f5db2154cd6a2229e42b60ce670a68d759f1dac757aaf0 P8Z77-M-PRO-ASUS-2203.CAP"
47-
FINAL_IFD_SHA256SUM="702570d59c11b9b70ab9d54b26ff0906a07edf15eebe63f40bcecb04b955969f ifd.bin"
48-
FINAL_ME_SHA256SUM="8dda1e8360fbb2da05bfcd187f6e7b8a272a67d66bc0074bbfd1410eb35e3e17 me.bin"
48+
FINAL_IFD_SHA256SUM="702570d59c11b9b70ab9d54b26ff0906a07edf15eebe63f40bcecb04b955969f $BLOB_DIR/ifd.bin"
49+
FINAL_ME_SHA256SUM="8dda1e8360fbb2da05bfcd187f6e7b8a272a67d66bc0074bbfd1410eb35e3e17 $BLOB_DIR/me.bin"
4950
ZIPURL="https://dlcdnets.asus.com/pub/ASUS/mb/LGA1155/P8Z77-M_PRO/P8Z77-M-PRO-ASUS-2203.zip"
5051

5152
ZIPFILENAME=`echo $ZIPURL | sed 's/.*\///'`
5253
ROMFILENAME=`echo $ZIPFILENAME | sed 's/\.zip$/\.ROM/'`
5354

55+
check_outputs "$FINAL_IFD_SHA256SUM" "$FINAL_ME_SHA256SUM" && { echo "All outputs match. Nothing to do."; exit 0; }
56+
5457
extractdir=$(mktemp -d)
5558
echo "### Creating temp dir $extractdir "
5659
cd "$extractdir"
@@ -73,18 +76,15 @@ echo "### Applying me_cleaner to neuter and truncate."
7376
$MECLEAN -S -r -t -d -O /tmp/unneeded.bin -D "ifd.bin" -M "me.bin" P8Z77-M-PRO-ASUS-2203.ROM
7477

7578
if [[ "${CONFIG_ZERO_IFD_VSCC}" =~ ^(Y|y)$ ]]; then
76-
FINAL_IFD_SHA256SUM="092caeee117de27c0eb30587defcb6449a33c7c325b6f3c47b5a7a79670b5c3f ifd.bin"
79+
FINAL_IFD_SHA256SUM="092caeee117de27c0eb30587defcb6449a33c7c325b6f3c47b5a7a79670b5c3f $BLOB_DIR/ifd.bin"
7780
echo "### Modifying VSCC length and identifiers"
7881
printf '\x00' | dd of=ifd.bin bs=1 seek=3837 count=1 conv=notrunc
7982
printf '\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF' | dd of=ifd.bin bs=1 seek=3568 count=32 conv=notrunc
80-
echo "### Verifying expected hashes"
81-
else
82-
echo "### Skipping VSCC modification by config"
8383
fi
84-
echo "$FINAL_IFD_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on generated IFD bin..." && exit 1; }
85-
mv ifd.bin $BLOB_DIR/ifd.bin
86-
echo "$FINAL_ME_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on generated ME binary..." && exit 1; }
87-
mv me.bin $BLOB_DIR/me.bin
84+
mv ifd.bin $BLOB_DIR/ifd.bin || { echo "ERROR: failed to move ifd.bin to $BLOB_DIR"; exit 1; }
85+
mv me.bin $BLOB_DIR/me.bin || { echo "ERROR: failed to move me.bin to $BLOB_DIR"; exit 1; }
86+
check_outputs "$FINAL_IFD_SHA256SUM" || exit 1
87+
check_outputs "$FINAL_ME_SHA256SUM" || exit 1
8888

8989
echo "###Cleaning up..."
9090
cd -

blobs/xx20/download_parse_me.sh

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
#!/usr/bin/env bash
2+
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
23

34
BLOBDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
45

56
FINAL_ME_BIN_SHA256SUM="1eef6716aa61dd844d58eca15a85faa1bf5f82715defd30bd3373e79ca1a3339 $BLOBDIR/me.bin"
67
ME_EXE_SHA256SUM="48f18d49f3c7c79fa549a980f14688bc27c18645f64d9b6827a15ef5c547d210 83rf46ww.exe"
78
ME7_5M_UPD_PRODUCTION_SHA256SUM="760b0776b99ba94f56121d67c1f1226c77f48bd3b0799e1357a51842c79d3d36 app/ME7_5M_UPD_Production.bin"
89

9-
if [ -e "$BLOBDIR/me.bin" ]; then
10-
echo "$BLOBDIR/me.bin found..."
11-
if ! echo "$FINAL_ME_BIN_SHA256SUM" | sha256sum --check; then
12-
echo "$BLOBDIR/me.bin doesn't pass integrity validation. Continuing..."
13-
rm -f "$BLOBDIR/me.bin"
14-
else
15-
echo "$BLOBDIR/me.bin already extracted and neutered outside of BUP"
16-
exit 0
17-
fi
18-
fi
10+
check_outputs "$FINAL_ME_BIN_SHA256SUM" && { echo "All outputs match. Nothing to do."; exit 0; }
1911

2012
echo "### Creating temp dir"
2113
extractdir=$(mktemp -d)
@@ -36,8 +28,7 @@ echo "$ME7_5M_UPD_PRODUCTION_SHA256SUM" | sha256sum --check || { echo "Failed sh
3628
echo "###Generating neuter+deactivate+maximize reduction of ME on app/ME7_5M_UPD_Production.bin, outputting minimized ME under $BLOBDIR/me.bin... "
3729
( python3 "$BLOBDIR/me7_update_parser.py" -O "$BLOBDIR/me.bin" app/ME7_5M_UPD_Production.bin ) || { echo "Failed to generate ME binary..." && exit 1; }
3830

39-
echo "### Verifying expected hash of me.bin"
40-
echo "$FINAL_ME_BIN_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on final binary..." && exit 1; }
31+
check_outputs "$FINAL_ME_BIN_SHA256SUM" || exit 1
4132

4233

4334
echo "###Cleaning up..."

blobs/xx30/download_clean_me.sh

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
#!/usr/bin/env bash
2+
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
23

3-
function printusage {
4+
function usage {
45
echo "Usage: $0 -m <me_cleaner>(optional)"
56
}
67

78
ME_BIN_HASH="c140d04d792bed555e616065d48bdc327bb78f0213ccc54c0ae95f12b28896a4"
89

9-
if [ -e "${output_dir}/me.bin" ]; then
10-
echo "me.bin already exists"
11-
if echo "${ME_BIN_HASH} ${output_dir}/me.bin" | sha256sum --check; then
12-
echo "SKIPPING: SHA256 checksum for me.bin matches."
13-
exit 0
14-
fi
15-
echo "me.bin exists but checksum doesn't match. Continuing..."
16-
fi
17-
1810
if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
1911
if [[ "${1:-}" == "--help" ]]; then
2012
usage
@@ -26,34 +18,29 @@ if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
2618

2719
output_dir="$(realpath "${1:-./}")"
2820

29-
if [[ ! -f "${output_dir}/me.bin" ]]; then
30-
# Unpack Lenovo's Windows installer into a temporary directory and
31-
# extract the Intel ME blob.
32-
pushd "$(mktemp -d)" || exit
33-
34-
curl -O https://download.lenovo.com/pccbbs/mobiles/g1rg24ww.exe
35-
innoextract g1rg24ww.exe
36-
37-
mv app/ME8_5M_Production.bin "${COREBOOT_DIR}/util/me_cleaner"
38-
rm -rf ./*
39-
popd || exit
40-
41-
# Neutralize and shrink Intel ME. Note that this doesn't include
42-
# --soft-disable to set the "ME Disable" or "ME Disable B" (e.g.,
43-
# High Assurance Program) bits, as they are defined within the Flash
44-
# Descriptor.
45-
# https://github.com/corna/me_cleaner/wiki/External-flashing#neutralize-and-shrink-intel-me-useful-only-for-coreboot
46-
pushd "${COREBOOT_DIR}/util/me_cleaner" || exit
47-
48-
python me_cleaner.py -r -t -O me_shrinked.bin ME8_5M_Production.bin
49-
rm -f ME8_5M_Production.bin
50-
mv me_shrinked.bin "${output_dir}/me.bin"
51-
popd || exit
52-
fi
21+
check_outputs "${ME_BIN_HASH} ${output_dir}/me.bin" && { echo "All outputs match. Nothing to do."; exit 0; }
5322

54-
if ! echo "${ME_BIN_HASH} ${output_dir}/me.bin" | sha256sum --check; then
55-
echo "ERROR: SHA256 checksum for me.bin doesn't match."
56-
exit 1
57-
fi
23+
pushd "$(mktemp -d)" || exit
24+
25+
curl -O https://download.lenovo.com/pccbbs/mobiles/g1rg24ww.exe
26+
innoextract g1rg24ww.exe
27+
28+
mv app/ME8_5M_Production.bin "${COREBOOT_DIR}/util/me_cleaner"
29+
rm -rf ./*
30+
popd || exit
31+
32+
# Neutralize and shrink Intel ME. Note that this doesn't include
33+
# --soft-disable to set the "ME Disable" or "ME Disable B" (e.g.,
34+
# High Assurance Program) bits, as they are defined within the Flash
35+
# Descriptor.
36+
# https://github.com/corna/me_cleaner/wiki/External-flashing#neutralize-and-shrink-intel-me-useful-only-for-coreboot
37+
pushd "${COREBOOT_DIR}/util/me_cleaner" || exit
38+
39+
python me_cleaner.py -r -t -O me_shrinked.bin ME8_5M_Production.bin
40+
rm -f ME8_5M_Production.bin
41+
mv me_shrinked.bin "${output_dir}/me.bin"
42+
popd || exit
43+
44+
check_outputs "${ME_BIN_HASH} ${output_dir}/me.bin" || exit 1
5845
fi
5946
fi

blobs/xx30/download_clean_me_manually.sh

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
#!/usr/bin/env bash
2-
3-
function printusage {
4-
echo "Usage: $0 -m <me_cleaner>(optional)"
5-
}
2+
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
63

74
BLOBDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
85
FINAL_ME_BIN_SHA256SUM="c140d04d792bed555e616065d48bdc327bb78f0213ccc54c0ae95f12b28896a4 $BLOBDIR/me.bin"
96
ME_EXE_SHA256SUM="f60e1990e2da2b7efa58a645502d22d50afd97b53a092781beee9b0322b61153 g1rg24ww.exe"
107
ME8_5M_PRODUCTION_SHA256SUM="821c6fa16e62e15bc902ce2e958ffb61f63349a471685bed0dc78ce721a01bfa app/ME8_5M_Production.bin"
118

12-
if [ "$#" -eq 0 ]; then printusage; fi
9+
if [ "$#" -eq 0 ]; then echo "Usage: $0 -m <me_cleaner>(optional)"; fi
1310

1411
while getopts ":m:" opt; do
1512
case $opt in
@@ -23,16 +20,7 @@ while getopts ":m:" opt; do
2320
esac
2421
done
2522

26-
if [ -e "$BLOBDIR/me.bin" ]; then
27-
echo "$BLOBDIR/me.bin found..."
28-
if ! echo "$FINAL_ME_BIN_SHA256SUM" | sha256sum --check; then
29-
echo "$BLOBDIR/me.bin doesn't pass integrity validation. Continuing..."
30-
rm -f "$BLOBDIR/me.bin"
31-
else
32-
echo "$BLOBDIR/me.bin already extracted and neutered outside of ROMP and BUP"
33-
exit 0
34-
fi
35-
fi
23+
check_outputs "$FINAL_ME_BIN_SHA256SUM" && { echo "All outputs match. Nothing to do."; exit 0; }
3624

3725
if [ -z "$MECLEAN" ]; then
3826
MECLEAN=$(command -v "$BLOBDIR/../../build/x86/coreboot-"*/util/me_cleaner/me_cleaner.py 2>&1 | head -n1)
@@ -56,12 +44,9 @@ innoextract ./g1rg24ww.exe || { echo "Failed calling innoextract. Tool installed
5644
echo "### Verifying expected hash of app/ME8_5M_Production.bin"
5745
echo "$ME8_5M_PRODUCTION_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on extracted binary..." && exit 1; }
5846

59-
bioscopy="some_value" # Assign a value to the bioscopy variable
60-
61-
echo "### Applying me_cleaner to neuter+deactivate+maximize reduction of ME on $bioscopy, outputting minimized ME under $BLOBDIR/me.bin... "
47+
echo "### Applying me_cleaner to neuter+deactivate+maximize reduction of ME, outputting minimized ME under $BLOBDIR/me.bin... "
6248
"$MECLEAN" -r -t -O "$BLOBDIR/me.bin" app/ME8_5M_Production.bin
63-
echo "### Verifying expected hash of me.bin"
64-
echo "$FINAL_ME_BIN_SHA256SUM" | sha256sum --check || { echo "Failed sha256sum verification on final binary..." && exit 1; }
49+
check_outputs "$FINAL_ME_BIN_SHA256SUM" || exit 1
6550

6651
echo "### Cleaning up..."
6752
cd - >/dev/null

blobs/xx30/optiplex_7010_9010.sh

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
#!/usr/bin/env bash
2+
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
3+
24
EC_BLOB_HASH=20060eba91367b71a21c7757271ac642fa0376809f8c1b51066510246ac97bdb
35
ACM_BLOB_HASH=b00d10f6615cf1b28f4fb4adac6631bf6e332db524e45dfafb92e539767d22a0
46
SINIT_BLOB_HASH=1e888aebc78d637d119c489adffa95387b53429125dc3ad61f10a5cad0496834
57

68
output_dir="$(realpath "${1:-./}")"
79

8-
if [[ ! -f "${output_dir}/IVB_BIOSAC_PRODUCTION.bin" ]] || [[ ! -f "${output_dir}/sch5545_ecfw.bin" ]] || [[ ! -f "${output_dir}/SNB_IVB_SINIT_20190708_PW.bin" ]] ; then
10+
check_outputs \
11+
"${EC_BLOB_HASH} ${output_dir}/sch5545_ecfw.bin" \
12+
"${ACM_BLOB_HASH} ${output_dir}/IVB_BIOSAC_PRODUCTION.bin" \
13+
"${SINIT_BLOB_HASH} ${output_dir}/SNB_IVB_SINIT_20190708_PW.bin" && { echo "All outputs match. Nothing to do."; exit 0; }
14+
915
# Unpack Dell's Windows installer into a temporary directory and
1016
# extract the EC and ACM blobs
1117

@@ -45,25 +51,9 @@ if [[ ! -f "${output_dir}/IVB_BIOSAC_PRODUCTION.bin" ]] || [[ ! -f "${output_dir
4551
echo "Can't download sinit blob, failing"
4652
exit 1
4753
fi
48-
fi
49-
50-
if ! echo "${EC_BLOB_HASH} ${output_dir}/sch5545_ecfw.bin" | sha256sum --check; then
51-
echo "ERROR: SHA256 checksum for sch5545_ecfw.bin doesn't match. Try again"
52-
rm -f "${output_dir}/sch5545_ecfw.bin"
53-
exit 1
54-
fi
55-
5654

57-
if ! echo "${ACM_BLOB_HASH} ${output_dir}/IVB_BIOSAC_PRODUCTION.bin" | sha256sum --check; then
58-
echo "ERROR: SHA256 checksum for IVB_BIOSAC_PRODUCTION.bin doesn't match. Try again"
59-
rm -f "${output_dir}/IVB_BIOSAC_PRODUCTION.bin"
60-
exit 1
61-
fi
62-
63-
64-
if ! echo "${SINIT_BLOB_HASH} ${output_dir}/SNB_IVB_SINIT_20190708_PW.bin" | sha256sum --check; then
65-
echo "ERROR: SHA256 checksum for SNB_IVB_SINIT_20190708_PW.bin doesn't match. Try again"
66-
rm -f "${output_dir}/SNB_IVB_SINIT_20190708_PW.bin"
67-
exit 1
68-
fi
55+
check_outputs \
56+
"${EC_BLOB_HASH} ${output_dir}/sch5545_ecfw.bin" \
57+
"${ACM_BLOB_HASH} ${output_dir}/IVB_BIOSAC_PRODUCTION.bin" \
58+
"${SINIT_BLOB_HASH} ${output_dir}/SNB_IVB_SINIT_20190708_PW.bin" || exit 1
6959

blobs/xx30/vbios_t530.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/usr/bin/env bash
2+
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
23

34
BLOBDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
45
ROMPARSER="94a615302f89b94e70446270197e0f5138d678f3"
@@ -9,8 +10,10 @@ ROM_PARSER_SHA256SUM="f3db9e9b32c82fea00b839120e4f1c30b40902856ddc61a84bd3743996
910
UEFI_EXTRACT_SHA256SUM="c9cf4066327bdf6976b0bd71f03c9e049ae39ed19ea3b3592bae3da8615d26d7 UEFIExtract_NE_A58_linux_x86_64.zip"
1011
VBIOS_FINDER_SHA256SUM="bd07f47fb53a844a69c609ff268249ffe7bf086519f3d20474087224a23d70c5 c2d764975115de466fdb4963d7773b5bc8468a06.zip"
1112
BIOS_UPDATE_SHA256SUM="6fc652b5fa10e5ea1ddc0e8477a2f1cfe56e00df76a94629f9b736faaee6199c g4uj41us.exe"
12-
DGPU_ROM_SHA256SUM="3efe4886530086c0b612d1e669fbb4459ec93ec949b25a909e7ad273f4f01015 vbios_10de_0def_1.rom"
13-
IGPU_ROM_SHA256SUM="10b292c19322e7bb7db53350d2775d37b72a784292ea5686cd0f92af929f4916 vbios_8086_0106_1.rom"
13+
DGPU_ROM_SHA256SUM="3efe4886530086c0b612d1e669fbb4459ec93ec949b25a909e7ad273f4f01015 $BLOBDIR/10de,0def.rom"
14+
IGPU_ROM_SHA256SUM="10b292c19322e7bb7db53350d2775d37b72a784292ea5686cd0f92af929f4916 $BLOBDIR/8086,0106.rom"
15+
16+
check_outputs "$DGPU_ROM_SHA256SUM" "$IGPU_ROM_SHA256SUM" && { echo "All outputs match. Nothing to do."; exit 0; }
1417

1518
echo "### Creating temp dir"
1619
extractdir=$(mktemp -d)
@@ -63,14 +66,11 @@ innoextract "$extractdir"/rom-parser-"$ROMPARSER"/VBiosFinder-"$VBIOSFINDER"/"$B
6366
echo "### Finding, extracting and saving vbios"
6467
sudo ./vbiosfinder extract "$extractdir"/rom-parser-"$ROMPARSER"/VBiosFinder-"$VBIOSFINDER"/"app/G4ETB7WW/\$01D5100.FL1" || { echo "Failed to extract FL1" && exit 1; }
6568

66-
echo "Verifying expected hash of extracted roms"
6769
cd output
68-
echo "$DGPU_ROM_SHA256SUM" | sha256sum --check || { echo "dGPU rom failed sha256sum verification..." && exit 1; }
69-
echo "$IGPU_ROM_SHA256SUM" | sha256sum --check || { echo "iGPU rom Failed sha256sum verification..." && exit 1; }
70-
7170
echo "### Moving extracted roms to blobs directory"
7271
sudo mv vbios_10de_0def_1.rom $BLOBDIR/10de,0def.rom
7372
sudo mv vbios_8086_0106_1.rom $BLOBDIR/8086,0106.rom
73+
check_outputs "$DGPU_ROM_SHA256SUM" "$IGPU_ROM_SHA256SUM" || exit 1
7474

7575
echo "### Cleaning Up"
7676
cd "$BLOBDIR"

blobs/xx30/vbios_w530.sh

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/usr/bin/env bash
2+
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../lib.sh"
23

34
BLOBDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
45
ROMPARSER="94a615302f89b94e70446270197e0f5138d678f3"
@@ -9,9 +10,11 @@ ROM_PARSER_SHA256SUM="f3db9e9b32c82fea00b839120e4f1c30b40902856ddc61a84bd3743996
910
UEFI_EXTRACT_SHA256SUM="c9cf4066327bdf6976b0bd71f03c9e049ae39ed19ea3b3592bae3da8615d26d7 UEFIExtract_NE_A58_linux_x86_64.zip"
1011
VBIOS_FINDER_SHA256SUM="bd07f47fb53a844a69c609ff268249ffe7bf086519f3d20474087224a23d70c5 c2d764975115de466fdb4963d7773b5bc8468a06.zip"
1112
BIOS_UPDATE_SHA256SUM="4769fdcfe34c40d285b8c7290305f04eb91d692f4bf25acd291d114353a958c2 g5uj39us.exe"
12-
K2000M_ROM_SHA256SUM="5005b582019b16d2073cec8cd384ec908d8ff38ab286a6dd65eadc0e89bfb4a8 vbios_10de_0ffb_1.rom"
13-
K1000M_ROM_SHA256SUM="6e28abb61cd4c69be7bd64e487681164cb487a48d77276f3108e3f192ceeee16 vbios_10de_0ffc_1.rom"
14-
IGPU_ROM_SHA256SUM="10b292c19322e7bb7db53350d2775d37b72a784292ea5686cd0f92af929f4916 vbios_8086_0106_1.rom"
13+
K2000M_ROM_SHA256SUM="5005b582019b16d2073cec8cd384ec908d8ff38ab286a6dd65eadc0e89bfb4a8 $BLOBDIR/10de,0ffb.rom"
14+
K1000M_ROM_SHA256SUM="6e28abb61cd4c69be7bd64e487681164cb487a48d77276f3108e3f192ceeee16 $BLOBDIR/10de,0ffc.rom"
15+
IGPU_ROM_SHA256SUM="10b292c19322e7bb7db53350d2775d37b72a784292ea5686cd0f92af929f4916 $BLOBDIR/8086,0106.rom"
16+
17+
check_outputs "$K2000M_ROM_SHA256SUM" "$K1000M_ROM_SHA256SUM" "$IGPU_ROM_SHA256SUM" && { echo "All outputs match. Nothing to do."; exit 0; }
1518

1619
echo "### Creating temp dir"
1720
extractdir=$(mktemp -d)
@@ -64,16 +67,12 @@ innoextract "$extractdir"/rom-parser-"$ROMPARSER"/VBiosFinder-"$VBIOSFINDER"/"$B
6467
echo "### Finding, extracting and saving vbios"
6568
sudo ./vbiosfinder extract "$extractdir"/rom-parser-"$ROMPARSER"/VBiosFinder-"$VBIOSFINDER"/"app/G5ETB6WW/\$01D5200.FL1" || { echo "Failed to extract FL1" && exit 1; }
6669

67-
echo "Verifying expected hash of extracted roms"
6870
cd output
69-
echo "$K2000M_ROM_SHA256SUM" | sha256sum --check || { echo "K2000M rom failed sha256sum verification..." && exit 1; }
70-
echo "$K1000M_ROM_SHA256SUM" | sha256sum --check || { echo "K1000M rom failed sha256sum verification..." && exit 1; }
71-
echo "$IGPU_ROM_SHA256SUM" | sha256sum --check || { echo "iGPU rom Failed sha256sum verification..." && exit 1; }
72-
7371
echo "### Moving extracted roms to blobs directory"
7472
sudo mv vbios_10de_0ffb_1.rom "$BLOBDIR"/10de,0ffb.rom
7573
sudo mv vbios_10de_0ffc_1.rom "$BLOBDIR"/10de,0ffc.rom
7674
sudo mv vbios_8086_0106_1.rom "$BLOBDIR"/8086,0106.rom
75+
check_outputs "$K2000M_ROM_SHA256SUM" "$K1000M_ROM_SHA256SUM" "$IGPU_ROM_SHA256SUM" || exit 1
7776

7877
echo "### Cleaning Up"
7978
cd "$BLOBDIR"

0 commit comments

Comments
 (0)