Naprawa CMU zablokowanego
Cześć,
Właściwie, Twoje CMU jest zablokowane. Zrobiłem dokładnie to samo, co Ty, kiedy mój samochód został wyłączony tuż po zainstalowaniu pakietu failsafe. Na szczęście istnieje sposób na odzyskanie, co nie jest takie proste, ale jest całkiem wykonalne, jeśli nie boisz się zdemontować CMU, otworzyć go i podłączyć kilka przewodów.
Pełne wyjaśnienie:
Dzięki tej stronie:
http://www.2x4logic.com oszczędza mi dużo czasu, aby dowiedzieć się, jak działa system. Proces aktualizacji CMU jest rzeczywiście bardzo źle zaprojektowany, ponieważ ma wiele punktów awarii, w których kończy się zablokowanym urządzeniem, które już się nie uruchomi. Najłatwiejszym sposobem na to jest wyłączenie CMU po zainstalowaniu pakietu failsafe. Zasadniczo dzieje się tak: mały układ flash, który zawiera program rozruchowy, ma flagę, która decyduje o tym, w którym systemie ma się uruchomić. Może to być albo normalny system Mazdy, albo oprogramowanie «
failsafe». Kiedy instalujesz pakiet aktualizacji failsafe bez drugiego pakietu ponownej instalacji, tryb wyboru rozruchu układu flash jest ustawiony na uruchamianie na partycji ibc1, która nie pasuje do obecnego systemu Mazdy. Ta partycja ibc1 jest aktualizowana przez pakiet ponownej instalacji. Jest więc zablokowany, ponieważ nie może się już uruchomić.
Najłatwiejszym rozwiązaniem jest zmiana wartości wyboru rozruchu na układzie flash, aby uruchomić się na ibc2 (failsafe). Zwykle odbywa się to w procesie aktualizacji, po sprawdzeniu integralności pakietu ponownej instalacji. Tutaj zrobimy to, wymuszając rozruch. Uruchomi oprogramowanie instalacyjne «
failsafe», które poinformuje nas, że instalacja się nie powiodła i że możemy spróbować ponownie, wkładając do samochodu klucz USB z poprawnym pakietem ponownej instalacji. Następnie instalacja będzie kontynuowana i zakończona.
Samouczek:
Oto krok po kroku instrukcja, jak to osiągnąć. Należy pamiętać, że może to być trudne, jeśli nie rozumiesz, co robisz. Ale w przypadku, gdy Twoje CMU jest zablokowane (czarny ekran po nieudanej aktualizacji lub coś w tym stylu), nie masz nic do stracenia, prawda? Zabranie samochodu do dealera nie pomoże, po prostu obciążą Cię pełną wymianą CMU, a to kosztuje dużo...
Układ flash znajduje się z tyłu płytki drukowanej CMU. To jest NOR SPI Flash. Chodzi o bezpośrednie połączenie z tym układem i użycie raspberry pi (który ma magistralę SPI) do przeprogramowania pamięci.
Wymagany sprzęt:
- Raspberry Pi
- Zacisk testowy programatora SOIC16 lub 6x zaciski testowe IC (użyłem zacisków testowych)
- Płytka stykowa do wykonania połączeń
Na raspberry pi musisz zainstalować Raspbian (wersja Lite jest ok). Po świeżej instalacji Rasbiana skonfiguruj pi, aby włączyć SPI, uruchamiając:
Code:
sudo raspi-config
(włącz SPI w Interfacing Options*)
sudo reboot
Zainstaluj niektóre wymagane narzędzia:
Code:
sudo apt-get update
sudo apt-get install build-essential libusb-1.0-0-dev libusb-dev git wget curl libpci-dev
Pobierz nowszą wersję flashrom:
Code:
git clone https://github.com/flashrom/flashrom
cd flashrom
make
sync
Wyłącz zasilanie maliny.
Teraz malina jest gotowa. Zdemontuj CMU z samochodu (poszukaj na YouTube filmu instruktażowego, jak to zrobić, to proste), odkręć płytkę drukowaną od CMU i podłącz przewody z maliny do układu flash, tak jak tutaj (patrz załączony obrazek) i
http://www.2x4logic.com/mcbot-annotated.jpg
Włącz malinę. I sprawdź, czy flash jest wykrywany:
Code:
cd flashrom
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
To powie, czy układ jest wykrywany, czy nie. Jeśli nie, okablowanie jest nieprawidłowe. Kiedy coś zostanie wykryte, flashrom może poinformować Cię, że wykryto wiele różnych układów. Dzieje się tak dlatego, że niektóre układy tego samego producenta mogą mieć ten sam protokół. Musisz odczytać właściwy model urządzenia z tego, co jest napisane na układzie. Miałem MX25L6445E. Wiem, że niektóre inne CMU mogą mieć inny model układu. Powinno to również działać, jeśli flashrom może to wykryć.
Następnie spróbuj odczytać pamięć i zrobić kopię zapasową:
Code:
./flashrom -r backup-cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Uważnie przeczytaj, co robi flashrom, aby sprawdzić, czy nie ma żadnych błędów. Musiałem użyć opcji -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F", aby wybrać właściwy model układu w flashrom, ponieważ został on napisany podczas korzystania z opcji -p (wyświetl wszystkie wykryte urządzenia)
Po utworzeniu kopii zapasowej modyfikujemy bajt wyboru rozruchu w pliku
Code:
cp backup-cmu.bin cmu-mod.bin
printf '\x00' | dd of=cmu-mod.bin bs=1 seek=65536 count=1 conv=notrunc
Teraz czas zapisać zmodyfikowany plik na flash:
Code:
./flashrom -w cmu-mod.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Odczytaj ponownie flash, aby sprawdzić, czy zadziałało
Code:
./flashrom -r cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Sprawdź, czy plik pasuje, weryfikując sumę kontrolną
Code:
sha1sum cmu.bin cmu-mod.bin
Suma kontrolna powinna pasować, jeśli tak jest, procedura jest zakończona. Czas odłączyć wszystko i włożyć CMU z powrotem do samochodu. CMU powinien uruchomić się w systemie odzyskiwania failsafe i poprosić o klucz USB z pakietem ponownej instalacji.
Powodzenia i miłego hakowania!