@Heinz
Bardzo dziekuje za wskazowki, udalo sie zreanimowac router i to za pierwszym podejsciem.
Opisze caly proces, bo znajac zycie za rok najdzie mnie ochota na zmiane softu, zapomne co i jak, wiec oszczedze sobie calego procesu poznawczego od poczatku. A moze komus sie tez przyda taki opis.
Najlepsze, ze udalo sie wszystko zrobic bez przelutowywania SOC i bez programatora.
Zamiast tego uzylem takiego klipsu:
allegro.pl/oferta/soic8-sop8-klips-pomiarowy-2x-podstawka-8960731196
oraz raspberry pi 2B v1.1
Do podlaczenia klipsu do RPI posilkowalem sie tymi instrukcjami:
tomvanveen.eu/flashing-bios-chip-raspberry-pi/
pwassi.privatedns.org/lede/archerc20i/
Z tego najwazniejsza jest rozpiska pinow:
Na samej RPI sa to konkretnie te piny z obszaru zaznaczonego na czerwono (czerwone numery to piny SOC, ktore wpialem do pinow RPI z czerwonej ramki):
tutaj tylko nalezy dodac, ze mozna uniknac tej zabawy z RPI uzywajac takiego klipsu z jakims programatorem - nie uzywalem, ale podejrzewam, ze wystarczy cos takiego: allegro.pl/oferta/programator-ch341a-pamiec-spi-flash-eeprom-ttl-7804573873 )
Na RPI nalezalo wlaczyc SPI interfacing (z ww. instrukcji):
Enable the SPI interfaces by typing "sudo raspi-config" and selecting "P4 SPI" under the "Interfacing options."
Cala zabawa na RPI odbywa sie programem flashrom. Jesli nie ma - doinstalowac z apt (sudo apt install flashrom).
Doinstalowalem tez paczki z ww. instrukcji, nie wiem czy sa potrzebne, ja to zrobilem: (sudo apt install git libpci-dev libusb-1.0 libusb-dev).
Do RPI podlaczamy oczywiscie bez zasilania zadnego ze strony routera.
Sam klips podlaczyl sie na SOC dosc slabo... po pierwszych nieudanych probach komunikacji z chipem:
komenda: sudo flashrom -p linux_spi:dev=/dev/spidev0.0
output:
flashrom v1.2 on Linux 4.19.75-v7+ (armv7l)
flashrom is free software, get the source code at flashrom .org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Using default 2000kHz clock. Use 'spispeed' parameter to override.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
w akcie desperacji docisnalem palcami obie strony klipsu (nie trzymalem, docisnalem tylko) i... diodka usb na routerze mignela, jak przy zwyklym (uceglonym) odpalaniu ze swojego zasilania. W tym momencie juz pelen nadziei sprawdzilem jeszcze raz komenda i faktycznie okazalo sie, ze RPI rozpoznalo chip!
sudo flashrom -p linux_spi:dev=/dev/spidev0.0
flashrom v1.2 on Linux 4.19.75-v7+ (armv7l)
flashrom is free software, get the source code at flashrom .org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Using default 2000kHz clock. Use 'spispeed' parameter to override.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on linux_spi.
No operations were specified.
Tutaj juz korzystajac z porady @Heinz zrobilem kopie aktualnego - uceglonego softu:
flashrom -r c20_brick.bin -p linux_spi:dev=/dev/spidev0.0
Sciagnalem oryginalny firmware ze strony producenta www.tp-link .com/en/support/download/archer-c20/v1/#Firmware
wget https://static.tp-link.com/res/down/soft/Archer_C20(EU)_V1_160427.zip
jego nazwe od razu zmienilem na archer_c20_original.bin
Wycialem pierwsze 512 bajtow:
dd if=archer_c20_original.bin of=original_stripped.bin bs=512 skip=1
Zrobilem kopie tych obrazow, gdyz w kolejnych krokach nadpisze ten uceglony zrzut.
Nastepnie nadpisalem poczatek zbrickowanego obrazu oryginalnym softem bez poczatkowych 512b:
dd conv=notrunc if=original_stripped.bin of=c20_brick.bin
ta komenda nadpisze poczatek c20_brick.bin zawartoscia pliku original_stripped.bin
nazwe c20_brick.bin zmienilem na ArcherC20V1_tp_recovery.bin dla przejrzystosci i sflashowalem komenda:
flashrom -w ArcherC20V1_tp_recovery.bin -p linux_spi:dev=/dev/spidev0.0
caly proces zajal pare minut:
flashrom v1.2 on Linux 4.19.75-v7+ (armv7l)
flashrom is free software, get the source code at flashrom .org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Using default 2000kHz clock. Use 'spispeed' parameter to override.
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.
Klips odpialem, Router wystartowal na oryginalnym firmware bez problemu.
Podsumowujac: zabawy z RPI i platanina kabli mozna zapewne uniknac kupujac ten programator wymieniony wyzej i wpinajac klips przejsciowka, ktora dostalem razem z klipsem. Sam klips oszczedzil lutowania, wiec z niego jestem zadowolony.
Tutaj jak to spialem (wykorzystalem przejsciowke zeby na pospinac wszystko wygodnie na plytce stykowej):
Szczezre mowiac nie sadzilem, ze pojdzie tak latwo
Linki nieklikalne i ze spacjami, bo mam ograniczenie jako nowy user.