diff options
Diffstat (limited to 'lenovobios_secondflash')
-rwxr-xr-x | lenovobios_secondflash | 75 |
1 files changed, 65 insertions, 10 deletions
diff --git a/lenovobios_secondflash b/lenovobios_secondflash index 9c5ec108..25d70f5f 100755 --- a/lenovobios_secondflash +++ b/lenovobios_secondflash @@ -22,6 +22,19 @@ # set -u -e -v set -v +if [ $(uname -i) = "i686" ] || [ $(uname -m) = "i686" ] + then + echo "Running on i686. ok." + sleep 5 +elif [ $(uname -i) = "x86_64" ] || [ $(uname -m) = "x86_64" ] + then + echo "Running on x86_64. ok." + sleep 5 +else + echo "This script must be run on an i686 or x86_64 host. x86_64 is recommended." + exit 1 +fi + if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" exit 1 @@ -44,13 +57,55 @@ if [ ! -f $1 ]; then fi # Flash it a 2nd time, to write upper 64K block -./flashrom/flashrom -p internal -w $1 - -# Advised. Reset back to 0. -{ # try - ./bucts/bucts 0 -} || { # catch - echo "WARNING: bucts not found, but if the image was flashed then it's probably safe." - echo "A dd'd image (like libreboot's images) flashed with bucts=1 is ok. If the image is not dd'd and bucts=1," - echo "then you should run ./bucts 0 now, or remove the yellow cmos/nvram battery for a minute." -} +if [ -f "DEBLOB" ]; then + # Means we are in src archive or git + ./flashrom/flashrom -p internal -w $1 +elif [ $(uname -i) = "i686" ] || [ $(uname -m) = "i686" ] + then + # Means we are in bin archive and on an i686 host + ./flashrom/i686/flashrom -p internal -w $1 +elif [ $(uname -i) = "x86_64" ] || [ $(uname -m) = "x86_64" ] + then + # Means we are in bin archive and on an x86_64 host + ./flashrom/x86_64/flashrom -p internal -w $1 +fi + +# Reset bucts back to zero +$errOut = " \ + WARNING: bucts not found, but if the image was flashed then it's probably safe \ + A dd'd image (like libreboot's images) flashed with bucts=1 is ok. If the image is not dd'd and bucts=1, \ + then you should run ./bucts 0 now, or remove the yellow cmos/nvram battery for a minute. \ + " +if [ ! -f "DEBLOB" ] + then + # this means we are working in bin + if [ $(uname -i) = "i686" ] || [ $(uname -m) = "i686" ] + then + # i686 + # needed for first flashing, otherwise machine will be bricked + { # try + ./bucts/i686/bucts 0 + } || { # catch + echo "$errOut" + exit 1 + } + else + # x86_64 + # needed for first flashing, otherwise machine will be bricked + { # try + ./bucts/x86_64/bucts 0 + } || { # catch + echo "$errOut" + exit 1 + } +else + # this means we are working in src + # needed for first flashing, otherwise machine will be bricked + { # try + ./bucts/bucts 0 + } || { # catch + echo "$errOut" + exit 1 + } +fi + |