CMU-Brick-Reparatur
Hallo,
Tatsächlich ist Ihr CMU defekt. Ich habe genau das Gleiche getan wie Sie, als mein Auto kurz nach der Installation des Ausfallsicherungspakets ausgeschaltet wurde. Glücklicherweise gibt es eine Möglichkeit zur Wiederherstellung, die nicht so einfach ist, aber durchaus machbar ist, wenn Sie keine Angst haben, das CMU auszubauen, es zu öffnen und einige Kabel anzuschließen.
Vollständige Erklärung:
Dank dieser Website:
http://www.2x4logic.com erspart es mir viel Zeit, herauszufinden, wie das System funktioniert. Der CMU-Aktualisierungsprozess ist in der Tat sehr schlecht konzipiert, da er viele Fehlerpunkte aufweist, die mit einem defekten Gerät enden, das nicht mehr startet. Der einfachste Weg, dies zu tun, ist, das CMU nach der Installation des Ausfallsicherungspakets auszuschalten. Grundsätzlich geschieht Folgendes: Ein kleiner Flash-Chip, der das Boot-Programm enthält, hat ein Flag, das entscheidet, auf welchem System es booten soll. Es kann entweder das normale Mazda-System oder die «
Ausfallsicherungs»-Software sein. Wenn Sie das Ausfallsicherungs-Update-Paket ohne das 2. Neuinstallationspaket installieren, wird der Boot-Select-Modus des Flash-Chips so eingestellt, dass er auf der ibc1-Partition bootet, die nicht mit dem aktuellen Mazda-System übereinstimmt. Diese ibc1-Partition wird durch das Neuinstallationspaket aktualisiert. Es ist also defekt, weil es nicht mehr booten kann.
Die einfachste Lösung ist hier, den Boot-Select-Wert auf dem Flash-Chip so zu ändern, dass er auf ibc2 (die Ausfallsicherung) bootet. Dies geschieht normalerweise durch den Aktualisierungsprozess, nachdem das Neuinstallationspaket auf Integrität geprüft wurde. Hier werden wir es tun, indem wir den Boot erzwingen. Es startet die «
Ausfallsicherungs»-Installationssoftware, die uns mitteilt, dass die Installation fehlschlägt und dass wir es erneut versuchen können, indem wir einen USB-Stick mit einem korrekten Neuinstallationspaket in das Auto stecken. Dann wird die Installation fortgesetzt und beendet.
Tutorial:
Hier ist eine Schritt-für-Schritt-Anleitung, wie Sie dies erreichen können. Beachten Sie, dass dies schwierig sein kann, wenn Sie nicht verstehen, was Sie tun. Aber falls Ihr CMU defekt ist (schwarzer Bildschirm nach einem fehlgeschlagenen Upgrade oder so), haben Sie nichts zu verlieren, oder? Wenn Sie das Auto zu einem Händler bringen, hilft das nicht, sie berechnen Ihnen nur einen vollständigen CMU-Ersatz, und das kostet eine Menge...
Der Flash-Chip befindet sich auf der Rückseite der CMU-Leiterplatte. Es ist ein NOR SPI Flash. Die Idee ist, sich direkt mit diesem Chip zu verbinden und einen Raspberry Pi (der einen SPI-Bus hat) zu verwenden, um den Speicher neu zu programmieren.
Erforderliche Hardware:
- Ein Raspberry Pi
- Ein Programmierer-Testclip SOIC16 oder 6x IC-Testclips (ich habe Testclips verwendet)
- Ein Breadboard, um die Verbindungen herzustellen
Auf dem Raspberry Pi müssen Sie Raspbian installieren (die Lite-Version ist in Ordnung). Richten Sie den Pi nach einer Neuinstallation von Rasbian ein, um SPI zu aktivieren, indem Sie Folgendes ausführen:
Code:
sudo raspi-config
(SPI in Interfacing Options* aktivieren)
sudo reboot
Installieren Sie einige erforderliche Tools:
Code:
sudo apt-get update
sudo apt-get install build-essential libusb-1.0-0-dev libusb-dev git wget curl libpci-dev
Holen Sie sich eine neuere Version von flashrom:
Code:
git clone [url]https://github.com/flashrom/flashrom[/url]
cd flashrom
make
sync
Schalten Sie den Raspberry aus.
Jetzt ist der Raspberry Pi bereit. Bauen Sie das CMU aus Ihrem Auto aus (sehen Sie sich auf YouTube ein Video dazu an, wie das geht, es ist einfach), schrauben Sie die Leiterplatte vom CMU ab und schließen Sie die Kabel vom Raspberry an den Flash-Chip an, wie hier (siehe angehängtes Bild) und
http://www.2x4logic.com/mcbot-annotated.jpg
Schalten Sie den Raspberry Pi ein. Und überprüfen Sie, ob der Flash erkannt wird:
Code:
cd flashrom
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Dies zeigt an, ob ein Chip erkannt wird oder nicht. Wenn nicht, stimmt Ihre Verkabelung nicht. Wenn etwas erkannt wird, kann flashrom Ihnen mitteilen, dass mehrere verschiedene Chips erkannt werden. Das liegt daran, dass einige Chips desselben Herstellers dasselbe Protokoll haben können. Sie müssen das richtige Gerätemodell aus dem lesen, was auf dem Chip steht. Ich hatte einen MX25L6445E. Ich weiß, dass einige andere CMUs ein anderes Chipmodell haben können. Es sollte auch funktionieren, wenn flashrom es erkennen kann.
Versuchen Sie dann, den Speicher zu lesen und ein Backup zu erstellen:
Code:
./flashrom -r backup-cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Lesen Sie sorgfältig, was flashrom tut, um Fehler zu überprüfen. Ich musste die Option -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" verwenden, um das richtige Chipmodell in flashrom auszuwählen, da es beim Verwenden der Option -p (alle erkannten Geräte auflisten) geschrieben wurde.
Sobald Sie das Backup haben, ändern wir das Boot-Select-Byte in der Datei
Code:
cp backup-cmu.bin cmu-mod.bin
printf '\x00' | dd of=cmu-mod.bin bs=1 seek=65536 count=1 conv=notrunc
Jetzt ist es an der Zeit, die modifizierte Datei auf den Flash zu schreiben:
Code:
./flashrom -w cmu-mod.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Lesen Sie den Flash zurück, um zu überprüfen, ob er funktioniert hat
Code:
./flashrom -r cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Überprüfen Sie, ob die Datei übereinstimmt, indem Sie die Prüfsumme überprüfen
Code:
sha1sum cmu.bin cmu-mod.bin
Die Prüfsumme sollte übereinstimmen, wenn dies der Fall ist, ist die Prozedur abgeschlossen. Es ist Zeit, alles abzuziehen und das CMU wieder in das Auto einzubauen. Das CMU sollte in das Ausfallsicherungs-Wiederherstellungssystem booten und Sie nach einem USB-Stick mit dem Neuinstallationspaket fragen.
Viel Glück und viel Spaß beim Hacken!