From 489603d6d95ee41309bae07ba68d92386c6ac8a3 Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Sun, 15 Feb 2015 01:42:01 -0500 Subject: ich9macchange: assume that the script is being run from _util Do not act on all ROM images, but instead take as input a path to a single ROM image. --- diff --git a/docs/hcl/gm45_remove_me.html b/docs/hcl/gm45_remove_me.html index eff0eac..47a60f8 100644 --- a/docs/hcl/gm45_remove_me.html +++ b/docs/hcl/gm45_remove_me.html @@ -67,6 +67,14 @@

+ Two new files will be created: +

+ + +

You can find out your MAC address from ip addr or ifconfig in GNU/Linux. Alternatively, if you are running libreboot already (with the correct MAC address in your ROM), dump it (flashrom -r) and read the first 6 bytes from position 0x1000 (or 0x2000) in a hex editor @@ -81,18 +89,11 @@

- A bash script is also included in libreboot which will change the mac address (using ich9gen) + A bash script is also included in libreboot_util which will change the mac address (using ich9gen) on all GM45 ROM images. For instance:
- $ ./ich9macchange XX:XX:XX:XX:XX:XX + $ ./ich9macchange path/to/libreboot.rom XX:XX:XX:XX:XX:XX romsize
+ romsize should be 4 or 8, depending on whether the ROM image is for a 4MiB or 8MiB flash chip.

- -

- Two new files will be created: -

-

ich9gen executables can be found under ./ich9deblob/ statically compiled in diff --git a/ich9macchange b/ich9macchange index 683fb62..353ab5f 100755 --- a/ich9macchange +++ b/ich9macchange @@ -32,33 +32,30 @@ else exit 1 fi -if (( $# != 1 )); then - echo "Usage: ./ich9macchange XX:XX:XX:XX:XX:XX" +if (( $# != 3 )); then + echo "Usage: ./ich9macchange path/to/ich9libreboot.rom XX:XX:XX:XX:XX:XX romsize" + echo "'romsize' is a number in MiB. Example: 8" echo "(XX replaced with hex from your desired MAC address)" exit 1 fi +rompath=$1 +macaddress=$2 +romsize=$3 -path="unknown" -if [ -f "DEBLOB" ]; then - path="./resources/utilities/ich9deblob/ich9gen" -else - path="./ich9deblob/$arch/ich9gen" +if [ ! -f "$rompath" ]; then + echo "ich9macchange: ROM image specified not found." + exit 1 +fi +if [ "$romsize" != "8" ]; then + if [ "$3" != "4" ]; then + echo "Invalid ROM size specified. It must be 4 or 8." + exit 1 + fi fi -$(echo $path) --macaddress $1 +./ich9deblob/$arch/ich9gen --macaddress $macaddress -for board in "x200" "r400" -do - for size in "8m" "4m" - do - cd bin/"$board"_"$size"b/ - for rom in $(ls) - do - dd if=../../ich9fdgbe_"$size".bin of="$rom" bs=1 count=12k conv=notrunc - done - cd ../../ - done -done +dd if=ich9fdgbe_"$romsize"m.bin of="$rompath" bs=1 count=12k conv=notrunc rm -f ich9fdgbe_4m.bin rm -f ich9fdgbe_8m.bin -- cgit v0.9.1