Új hozzászólás Aktív témák

  • Tim82

    félisten

    Akkor úgy néz ki, hogy sikerült az aktuális roncsvadász prodzsektet, egy TB kontroller hibás T480-at feltámasztanom. Jöjjön tehát a #Thunderbolt kontroller EEPROM flash T480-nál Linux alól, CH341A és SOIC8 csipesz alkalmazásával.

    Ez a nem rossz guide volt a kiindulópont Reddit-ről: [link] csak én nem Raspberry Pi-ről toltam végig, hanem egy USB-s CH341A flasher segítségével egy Linux Mint-tel telepített T470-ről.

    A flashelendő EEPROM lokációjában ez a kép volt segítségemre: [link]

    A CH341A alkalmazásának megfelelően picit mások voltak a parancsok:

    1. először is teszteltem, hogy olvassa-e a chipet, annak tartalmáról backup-ot készítve (azt backup_test.bin-nek nevezve):
    flashrom --programmer ch341a_spi -r backup_test.bin

    2. másodszor a biztonság kedvéért egy pontosan 1 MiB méretű, csak nullákkal teli fájllal írtam felül a TB EEPROM chipet:
    flashrom --programmer ch341a_spi -w null.bin

    3. harmadik lépésként utána csipesz le, CH341A kihúz, T480 újraindít... beboot-ol, majd kikapcsol...

    4. negyedik lépésként pedig újra csiptetés, CH341A Linuxos gép USB portjába be, ezúttal az aktuális, Lenovo oldaláról letöltött TB firmware-rel (kiegészítve nullákkal, hogy az is 1 MiB méretű legyen pontosan) írtam a chipet:
    flashrom --programmer ch341a_spi -w TBT.bin
    Ha minden jól megy, nagyjából ez a kimenet:

    flashrom v1.2 on Linux 5.15.0-71-generic (x86_64)
    flashrom is free software, get the source code at https://flashrom.org
    Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
    Found Winbond flash chip "W25Q80.V" (1024 kB, SPI) on ch341a_spi.
    Reading old flash chip contents... done.
    Erasing and writing flash chip... Erase/write done.
    Verifying flash... VERIFIED.

    Utána leválasztás, T480 meg hirtelen elkezdett töltőről is működni az újabb bekapcsolással.

    Na, ez a rövid verzió.

    Buktatók:

    - a guide-ban lévő előre elkészített null.bin fájl működik, a szerző előkészített TBT.bin-je nem (valamiért nem ismeri fel 1 MiB-osnak a flashrom), szóval kellett letöltenem, kicsomagolnom a Lenovo oldaláról a legutóbbi Thunderbolt Firmware Utility-t, abból kicsomagolnom a TBT.bin-t és magamnak, kézzel, mint a mezők állatai gyártanom belőle egy biztosan 1 MiB méretű változatot (az egyik kommentben is írják erre a parancsot, szóval ez nem megoldhatatlan: dd if=/dev/null of=TBT.bin bs=1 seek=1048576 ). Ha valakinek esetleg kell, akkor innen letöltheti az én TBT.bin változatomat, saját felelősségre (csak és kizárólag T480-hoz lesz jó biztosan).

    - az idő nagy részét nem a parancsok kiadása és a flashelés veszi el, hanem a SOIC8 klipsznek az EEPROM chipre történő helyes felhelyezése, hogy lássa a CH341A-n keresztül a gép azt.

    - ebből következik olyan, hogy volt pont a TBT.bin felírásakor egy olyan pillanat is, amikor a látszólag jól felhelyezett klipsz és olvasásteszt (újabb backup_teszt.bin sikeres készítése) után azért úgy alakult, hogy elhasalt a folyamat, de nagyon csúnyán. Káromkodás, újabb nyűglődés a helyes felhelyezéssel, újabb olvasásteszt, ezután másodszorra sikeres írás.

    *

    Amiben nem vagyok biztos, hogy a második lépés (a nullákkal felülírás) és a harmadik lépés (a nullákkal felülírás utáni beboot-olás) tényleg szükséges-e, de nem akartam kockáztatni.

    Köszönet ath fórumtársnak az inspirációért. :R

Új hozzászólás Aktív témák