| Index: utility/dev_debug_vboot
|
| diff --git a/utility/dev_debug_vboot b/utility/dev_debug_vboot
|
| index 18e76fa12f67c15a3e3a954f06ed6d732af81eb9..faefd93395c467353a88bb306e49eb4c34ebeecb 100755
|
| --- a/utility/dev_debug_vboot
|
| +++ b/utility/dev_debug_vboot
|
| @@ -3,9 +3,26 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
| #
|
| +# Usage: dev_debug_vboot [ --cleanup | DIRECTORY ]
|
| +#
|
| +# This extracts some useful debugging information about verified boot. A short
|
| +# summary is printed on stdout, more detailed information and working files are
|
| +# left in a log directory.
|
| +#
|
|
|
| +TMPDIR=/tmp/debug_vboot
|
| LOGFILE=noisy.log
|
|
|
| +# TODO(wfrichar): Need to support ARM. The hard disk path is likely different.
|
| +HD=/dev/sda
|
| +ACPI=/sys/devices/platform/chromeos_acpi
|
| +
|
| +cleanup() {
|
| + if [ -n "${CLEANUP}" ]; then
|
| + find "${TMPDIR}" -type f -not -name "${LOGFILE}" -exec rm {} ";"
|
| + fi
|
| +}
|
| +
|
| die() {
|
| echo "$*" 1>&2
|
| exit 1
|
| @@ -40,17 +57,32 @@ result() {
|
| fi
|
| }
|
|
|
| -# Optional directory name containing "bios.rom" and "*kern*.blob" files. If not
|
| -# provided, we'll attempt to extract them ourselves.
|
| -if [ -d "$1" ]; then
|
| - TMPDIR="$1"
|
| - [ -d ${TMPDIR} ] || die "${TMPDIR} doesn't exist"
|
| - USE_EXISTING=yes
|
| -else
|
| - TMPDIR=/tmp/debug_vboot
|
| - [ -d ${TMPDIR} ] || mkdir -p ${TMPDIR}
|
| +require_chromeos_bios() {
|
| + log cgpt show "${HD}"
|
| + log rootdev -s
|
| + if [ ! -e "${ACPI}/HWID" ]; then
|
| + info "Not running Chrome OS BIOS, no further information available"
|
| + exit 0
|
| + fi
|
| + # including /dev/null just to get final "\n"
|
| + log head "${ACPI}"/*ID "${ACPI}"/BINF* "${ACPI}"/CHSW /dev/null
|
| +}
|
| +
|
| +# Here we go...
|
| +trap cleanup EXIT
|
| +
|
| +# Parse args
|
| +if [ -n "$1" ]; then
|
| + if [ "$1" = "--cleanup" ]; then
|
| + CLEANUP=1
|
| + else
|
| + TMPDIR="$1"
|
| + [ -d ${TMPDIR} ] || die "${TMPDIR} doesn't exist"
|
| + USE_EXISTING=yes
|
| + fi
|
| fi
|
|
|
| +[ -d ${TMPDIR} ] || mkdir -p ${TMPDIR} || exit 1
|
| cd ${TMPDIR}
|
| echo "$0 $*" > "$LOGFILE"
|
| log date
|
| @@ -62,12 +94,12 @@ BIOS=bios.rom
|
| if [ -n "$USE_EXISTING" ]; then
|
| info "Using images in $(pwd)/"
|
| else
|
| + require_chromeos_bios
|
| info "Extracting BIOS image from flash..."
|
| log flashrom -r ${BIOS}
|
|
|
| - # FIXME: support ARM
|
| - HD_KERN_A=/dev/sda2
|
| - HD_KERN_B=/dev/sda4
|
| + HD_KERN_A="${HD}2"
|
| + HD_KERN_B="${HD}4"
|
| tmp=$(rootdev -s -d)2
|
| if [ "$tmp" != "$HD_KERN_A" ]; then
|
| USB_KERN_A="$tmp"
|
|
|