Browse Source

Initial Commit

master
Froz 4 years ago
commit
6e5cd815dc
  1. BIN
      2022.04.17 Original Firmware/badflash.rom
  2. BIN
      2022.04.17 Original Firmware/vpd.bin
  3. 128
      CopyPastedNotes.txt
  4. BIN
      Haswell Panther/Modified MAC with vpdbin/coreboot_tiano-panther-mrchromebox_20220409.rom
  5. BIN
      Haswell Panther/coreboot_tiano-panther-mrchromebox_20220409.rom
  6. 38
      README.md
  7. BIN
      RaspberryPI SPI.png
  8. BIN
      RaspberryPi Pinout.jpeg

BIN
2022.04.17 Original Firmware/badflash.rom

Binary file not shown.

BIN
2022.04.17 Original Firmware/vpd.bin

Binary file not shown.

128
CopyPastedNotes.txt

@ -0,0 +1,128 @@ @@ -0,0 +1,128 @@
T D <taidao90@gmail.com>
5:45 PM (1 minute ago)
to Sergei
I figured out how to get the latest rom now. Thank you for your tutorial btw! I didn't have an SPI flash programmer but did have a raspberry pi around!
There was a section in "https://wiki.mrchromebox.tech/Unbricking"
- The custom UEFI firmware for the device
If you were flashing the UEFI firmware when things went sideways, then that's the easiest way to proceed. You can download the UEFI firmware for your device by examining the sources.sh file from the Firmware Utility Script github repo. Simply concatenate the device-specific filename to the Full ROM base path:
wget <Full ROM base path><device specific filename>
eg for the Acer Chromebook 14 CB3-431 (EDGAR)
wget https://mrchromebox.tech/files/firmware/full_rom/coreboot_tiano-edgar-mrchromebox_20180827.rom
Don't forget to get the sha1 file for verification:
wget https://mrchromebox.tech/files/firmware/full_rom/coreboot_tiano-edgar-mrchromebox_20180827.rom.sha1
Then verify the download:
sha1sum -c coreboot_tiano-edgar-mrchromebox_20180827.rom.sha1
All I had to do was wget and use the specific file name in the github repo. I'm guessing the older versions get removed.
https://wiki.mrchromebox.tech/Unbricking
### Unbricking Asus Chromebox CN60
src: https://sergei.nz/unbricking-asus-chromebox-cn60/
Asus CN60 is a good platform to re-purpose to run vanilla Linux on, since they come with decent CPU, while RAM can be upgraded to 16GB, and SSD to 512GB.
Unfortunately out of the box they come locked down by Google, with non-standard BIOS/UEFI, making it not possible to wipe the useless ChromeOS in favour of something like Ubuntu.
Fortunately there is a way to un-Google-fy it.
I followed these instructions with 50% (1 out of 2) success rate. For some reason second Chromebox (identical to first) got bricked. Possibly it got bricked because I had to recover the ChromeOS due to SSD being blank. BTW even though Google insist on using Chrome App on Windows or Mac, it can be done on linux via this shell script.
By bricked I mean no power to USB and no display output. It would power on for ~30seconds and power off.
After searching for solution it seems the only way is to re-flash the BIOS/UEFI Flash via SPI. I followed (to a degree) these instructions.
The difference was is that I didn’t had patience or wanted to spend money on SPI adapters so I settled for a compromise: Raspberry Pi.
Raspberry Pi comes with an SPI bus feature via GPIO pins. I was in luck that the flash (Winbond 25Q64FVSIG) was 3V and not 1.8V.
Always check the datasheet for voltage of your flash, also make sure it is Winbond 25Q and not 25Z (not BIOS/UEFI).
Unfortunately to get to the flash one needs to remove the board and the CPU fan.
Winbond 25Q64FVSIG
To enable SPI on rPi (I had rPi Zero W) I ran raspi-config and selected SPI.
On rPi I also needed to install flashrom (apt-get install flashrom).
Using flashrom on rPi is pretty straight forward. Obviously the mainboard must be un-powered at all times (!!!). I removed all removable items (RAM, SSD, WiFi, SD card slot, RTC/BIOS battery).
Due to lack of patience (and having no chip clip harness) I directly soldered the connections between Flash and rPi.
Note: pin #1 on the flash chip has a dot, and #8 is opposite to it (counted in circle).
I wired the chip in following way:
#1 Flash (/CS) -> #24 rPi (GPIO8)
#2 Flash (DO) -> #21 rPi (GPIO9)
#3 Flash (/WP) -> #17 rPi (3V3)
#4 Flash (GND) -> #25 rPi (GND)
#5 Flash (DI) -> #19 rPi (GPIO10)
#6 Flash (CLK) -> #23 rPi (GPIO11)
#7 Flash (/HOLD) -> #17 rPi (3V3)
#8 Flash (VCC) -> #17 rPi (3V3)
I have wired pins 3,7 and 8 together on the flash to minimise the amount of wires going in between (only one went to the pin 17 on rPi).
dodgy connections
Testing the connection:
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000
flashrom v0.9.9-r1954 on Linux 4.19.66+ (armv6l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop… OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
No operations were specified.
The deviations from this guide are following:
I have installed the cbfstool on my machine (as opposed to rPi) since it is compiled for x86. All operations with extracting the MAC addresses were done on my machine. I.E. I have saved the bad rom from via:
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -r badflash.rom
flashrom v0.9.9-r1954 on Linux 4.19.66+ (armv6l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop… OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
Reading flash… done.
I transferred it to my machine so I could use the cbfstool to embed back the MAC/serial info into the firmware.
The correct firmware for Asus CN60 is https://mrchromebox.tech/files/firmware/full_rom/coreboot_tiano-guado-mrchromebox_20191201.rom
As the codename is GUADO.
After embedding the MAC/Serial with cbfstool (see here) I transferred the file to the rPi, ready for flashing.
Flashing is done via following command:
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -w coreboot_tiano-guado-mrchromebox_20191201.rom
flashrom v0.9.9-r1954 on Linux 4.19.66+ (armv6l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop… OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
Reading old flash chip contents… done.
Erasing and writing flash chip… Erase/write done.
Verifying flash… VERIFIED.
Verifying just in case:
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -v coreboot_tiano-guado-mrchromebox_20191201.rom
flashrom v0.9.9-r1954 on Linux 4.19.66+ (armv6l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop… OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
Reading old flash chip contents… done.
Verifying flash… VERIFIED.
After verifications I de-soldered the wires and reassembled the machine. This time I got the bunny logo and was able to boot from the USB (press ESC in first 5 seconds).
BTW if you have chip clip harness you could use this guide to completely bypass the whole unlocking and requiring to have functional ChromeOS, as you have to open the machine anyway to remove the write protect screw.

BIN
Haswell Panther/Modified MAC with vpdbin/coreboot_tiano-panther-mrchromebox_20220409.rom

Binary file not shown.

BIN
Haswell Panther/coreboot_tiano-panther-mrchromebox_20220409.rom

Binary file not shown.

38
README.md

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
Important CMOS Battery out
Flash
Power in
CMOS battery in
test on
# list devices
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000
# wget custom firmware
Look at sources in browser: https://github.com/MrChromebox/scripts/blob/master/sources.sh
```wget <Full ROM base path><device specific filename>```
Example for CN60:
```wget https://mrchromebox.tech/files/firmware/full_rom/coreboot_tiano-panther-mrchromebox_20220409.rom```
# modify custom firmware by pulling macaddress from old firmware
```wget https://mrchromebox.tech/files/util/cbfstool.tar.gz && tar -zxf cbfstool.tar.gz```
get tool chmod +x if you have to
extract rom from original device
sudo ./flashrom -p ch341a_spi -r badflash.rom
extract vpd.bin from badflash.rom
./cbfstool badflash.rom extract -n vpd.bin -f vpd.bin
inject VPD to firmware image to be flashed
./cbfstool <Full ROM filename> add -n vpd.bin -f vpd.bin -t raw
# Flash firmware
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -w coreboot_tiano-panther-mrchromebox_20220409.rom
# Verify Flash
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -v coreboot_tiano-panther-mrchromebox_20220409.rom

BIN
RaspberryPI SPI.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 KiB

BIN
RaspberryPi Pinout.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Loading…
Cancel
Save