Ich erzaehle euch mal wie man mindestens einen Panasonic TX50-AXW804 TV repariert, sehr wahrscheinlich noch ein paar weitere Panasonic, ausserdem vermutlich auch ein paar Sony.
Vor zwei Wochen begab es sich das mein TV unzuverlaessig wurde. Er liess sich nicht immer einschalten, manchmal brauchte man mehrere Versuche. Irgendwann ging er garnicht mehr.
Eigentlich so ein Verhalten wo man zuerst an das Schaltnetzteil denkt.
Also erst mal bei der elektronischen Tanya das Servicemanual besorgt. Leider ist die Scanqualitaet des Manuals nicht besonders hoch. Da hilft aber ein Trick. Man kann auf der ersten Seite lesen das der Fernseher ein Chassis LA53 hat. Sucht man danach so findet man noch ein Manual zu einem TH-55AS800S dessen Scanqualitaet hoeher ist.
Das Netzteil selbst ist eigentlich ein klassisches Schaltnetzteil mit zwei Ausgangsspannungen. 16V und 24V. Die anderen Spannungen stellen sich die Platinen vor Ort her. Eigentlich ein super Design. Ueberhaubt merkt
man das Panasonic noch eine andere Qualitaet ist als so eine billige Schroedelkiste.
Interessanterweise verwendet Panasonic in seinem Netzteil keine Elkos von Panasonic sondern von Rubycon. Dagegen gibt es aber nichts zu sagen, die sind auch gut. Ich hab sie trotzdem alle durchgemessen, Kapazitaet und ESR in Ordnung.
Ich hab darauf verzichtet die zu ersetzen weil es relativ ungewoehnliche Bauformen sind damit der TV sehr flach sein kann. Elkos mit 18 oder 27V findet man vermutlich nicht einfach so mal eben. Und dicker ist doof! Sonst hat man eine Beule in der Rueckwand.
Okay, was kann es also noch sein? Recherche im Internet ergab das dieser TV und auch diverse andere darunter leiden das ihre eMMC-Karte Alzheimer bekommt.
Dazu muss man wissen das diese TVs im Prinzip Linuxrechner sind:
2014-12-12 02:08:31, image size: 25176414 bytes, Data Address:
0x68000000, Entry Point: 0x680 00000, data CRC: 0x5208A692,
OS: Linux, CPU: ARM, image type: OS Kernel Image, compression
type: gzip, image name: "ARM Linux Kernel"
Die Main-CPU verwendet dann eine eMMC H26M310036GMR als Festplatte von der sie bootet. Das Teil hat die Bauform eines BGA mit 153balls. (4GByte)
Erstaunlich wenn man bedenkt das 90% der Anschluesse N.C sind!
Der Schaltplan zeigt netterweise (siehe PDF) das saemtliche Leitungen zum MainController ueber Widerstaende oder Ls laufen. Man kann die alle abloeten und hat so die eMMC vom System abgetrennt. Dafuer wird man ein Mikroskop brauchen. Die Bauteile sind 0201 oder 0401. Jedenfalls deutlich kleiner wie
603 und sie sehen neben meiner 0.2mm Loetspitze recht winzig aus.
Ich habe dann RST auf Vcc gelegt, und VCC, GNC, CMD, SCK, D0 bis D4 auf einen MicroSD-SD Adapter geloetet. (siehe Anhang) Dabei habe ich auf die eMMC ein Stueck Lochraster mit UHU (geht wieder ab) geklebt. In jede Leitung kommt ein 68R Widerstand. Sieht wild aus, aber funktioniert.
Den Schreibschutz aktiviert und am PC angesteckt und ausgelesen.
dd if=/dev/sdg of=daten01.img
7569408+0 Datensätze ein
7569408+0 Datensätze aus
3875536896 Bytes (3,9 GB) kopiert, 157,288 s, 24,6 MB/s
Ich empfehle das unter Linux zu machen da manch andere Betriebsysteme die unselige Tendenz haben auf Karten rumzuschreiben und das wollt ihr auf keinen Fall!
Ich hab die eMMC mehrfach gelesen und die Images miteinander verglichen. Dazu war es notwendig ein kleines Programm zu schreiben das immer einen Block von 1024Bytes vergleicht.
Dabei kam es bei jedem vergleich zu 10-16 unterschiedlichen Bloecken mit insgesammt 600-1500 unterschiedlichen Bytes. Nicht reproduzierbar.
Das sieht dann z.B so aus:
1
Vergleich[Vorher1.img]und[Vorher2.img]
2
054a3f:Errors:18
3
0aaac2:Errors:31
4
0aaac3:Errors:48
5
0aaac5:Errors:360
6
0aaac7:Errors:52
7
0aaac8:Errors:55
8
0aaaca:Errors:52
9
0aaacd:Errors:419
10
0aaace:Errors:391
11
102e74:Errors:11
12
14de6a:Errors:22
13
14de6b:Errors:19
14
23af72:Errors:28
15
24ec57:Errors:137
16
1643Fehlerin14Blöckenvon1024Byte
17
Fehlerrate:14von3784704
Mit anderen Worten die eMMC ist wirklich kaputt, oder besser sie hat Alzheimer. Was tun? Man bekommt ja nirgendwo ein neues Image, zumal das genau zum TV passen muss. Da sind Verschluesselungscodes auf der Karte die mit der CPU geteilt werden. (Widevine, Netflix, HD, usw) Von Panasonic bereitgestellte Firmwareupdates sind verschluesselt.
Also probiert die Karte bei verschiedenen Temperaturen auszulesen (GEfrierschrank, Kaeltespray, Heissluftpistole) Es faellt auf das zwei direkt hintereinander ausgelesene Images bei Kaelte sich viel extremer unterscheiden. Waerme ist besser!
Also einen Foen drueber gehaengt, Thermometer danaben und jeweil alle drei Grad von 20Grad bis 80Grad und wieder zurueck gelesen.
Grosse Platte notwendig. :-D
Beim vergleich der Images faellt auf das die welche so bei 40-50Grad gelesen werden die wenigsten Fehler haben. Das geht bis auf nur 6 defekte Bloecke mit 240Fehler runter.
Immer noch eine Menge, aber der TV hat ein komplettes Linux mit bergeweise HTML-Seiten und PNGs auf der Platte. Wenn da irgendwo ein falsche Pixel sein sollte wird man das nicht merken. Wichtig ist nur der eine entscheidende Fehler der den Kernel vom booten abhaelt.
Und das ist der juengste Fehler wo die Elektronen im Flash noch knapp an der Grenze sind. Da also wo man die meiste Hoffnung haben kann die Ladung in den Arbeitsbereich der Comparatoren zu schieben.
Jetzt die Karte einmal komplett mit 0xff beschrieben.
dd if=0xff_file.img of=/dev/sdg (30min!)
Ausgelesen und verglichen. 0Fehler!
Dann alles mit 0x00 vollgeschrieben. (40min!)
Wieder gelesen und verglichen, alles super.
Dann alles mit meinem besten Image beschrieben (53min!)
Vergleich [Golden04.img] und [read_back.img]
0 Fehler in 0 Blöcken von 1024Byte
Fehlerrate: 0 von 3784704
Strike!
Den Adapter abgeloetet, die Widerstaende und Ls wieder drauf und eingebaut. TV laeuft wieder.
Interessant ist die Frage ob er nun wieder 7-8Jahre haelt oder ob das Problem schneller wieder kommt. Aber ich hab jetzt ja ein funktionierendes Images und koennte notfalls die eMMC auswechseln.
Ich hatte vor einigen Jahren einen ähnlichen Fall: Ein Iiyama Prolite B2274HDS TFT-Monitor schaltete sich knapp nach Ablauf der Gewährleistung in unregemläßigen Abständen, wenige Minuten nach dem Einschalten selbststätig ab.
Nachdem die Überprüfung aller erdenklichen Fehlerquellen, wie Elkos, Temperaturprobleme, Optokoppler, Lötverbindungen nicht zum Erfolg führten, lötete ich das Flash-ROM A25L020CO-F aus. Ich hatte es bereits einige Wochen zuvor ausgelötet und ausgelesen. Der Bereich 0x03F000—0x03FFFF hatte sich gegenüber des älteren Dumps teilweise geändert und wurde daraufhin von mir komplett gelöscht. Anschließend wurde der Code in ein neu beschafftes Flash programmiert und dieses in den Monitor gelötet.
Seit fünf Jahren funktioniert der Monitor nun problmemlos. Ich vermute, dass der Monitor seine Konfigurationsdaten in besagtem Bereich des Flashs speichert, denn es findet sich auf dem Board kein EEPROM, auf welches die MCU Zugriff hätte.
Auch habe ich die Benutzung des Monitors verändert: In kurzen Arbeitspausen wird er nun nicht mehr hart vom Netz getrennt sonden nur über seinen "Hauptschalter" deaktiviert. Es wäre möglich, dass der Monitor diese Stand-by-Pausen nutzt, um das Flash "aufzuräumen".
Ich hatte vor einigen Jahren einen ähnlichen Fall:
Ich vermute mal das mein Problem eine ganze Reihe von TVs treffen wird.
Wie schon erwaehnt hab ich dazu auch Meldungen von Sonykisten im Netz gefunden. Und ich denke mal das einem mit anderen Geraeten aehnliches passieren kann!
Im Prinzip sind das Linuxrechner wie ein Raspberry-Pi die immer auf ihrer Speicherkarte rumschreiben. Die Besonderheit ist halt nur das sie diese Karte mit dem Prozessor verknueppert haben weil da die Codes zum entschluesseln drauf sind.
Man denkt sich nur eigentlich das dieses Karten/BGAs irgendeine Form Defektmanagement haben, also im Zweifel auf Ersatzsektoren ummappen. Oder wenn die ausgehen dann halt wirklich defekt sind. Von daher fand ich es interessant das ich die Fehler einfach durch neu beschreiben wegbekommen habe.
Es war vorher ja so das ich dreimal hintereinander das Image auslesen konnte, dann dreimal sagen wir mal 12 defekte 1k grosse Sektoren hatte, also immer dieselben 12, aber die Bytefehler zwischen den Auslesungen wechseln immer. Da sind also wohl wirklich die Ladungen in den Speicherzellen gerade an der Grenze dessen was man lesen kann. Daher habe ich erstmal die Hoffnung das loeschen und neubeschreiben fuer viele Jahre funktioniert.
Flashs speichert, denn es findet sich auf dem Board kein EEPROM, auf
welches die MCU Zugriff hätte.
DAfuer hat meiner auch noch ein extra SPI-Flash. Da musste ich aber nicht ran.
In kurzen Arbeitspausen wird er nun nicht mehr hart vom Netz
getrennt sonden nur über seinen "Hauptschalter" deaktiviert.
Da kann man auch lange fabulieren, und zwar geraeteabhaengig. :-)
Meinen hatte ich immer nur in Standby geschaltet. Das heisst der Stromverbrauch geht von 250W auf 50W runter. Oder anders gesagt auch wenn der TV behauptet aus zu sein, der Linuxrechner da drin laeuft immer. Muss er ja eigentlich auch weil der TV dauernd das Programm empfangen muss um auf Wunsch Sendungen auf seiner Festplatte zu speichern. Erst wenn man ihn auf der Rueckseite am Schalter ausschaltet geht der Verbrauch auch unter 1W.
Stellt sich natuerlich die Frage ob das fuer die Lebensdauer besser waere!
Aber angesichts der aktuellen Situation bin ich jetzt auch eher fuer richtiges abschalten.
Ich hab mir bei Alieexpress mal drei von den eMMC bestellt. Bin mal gespannt ob die original sind. :-D
Die Chinesen haben auch einen ganzen Zoo an Zusatztool. Es gibt z.B Platinen fuer dieses eMMC BGAs nach USB. Oder spezielle Programmer mit Adaptern:
Oder ein Teil das heisst UFI-Box. Es haben wohl gerade viele Leute dieses Problem. Aber natuerlich meine Methode mit dem dranloeten von 10 Draehten ist einfacher als ein BGA zu wechseln.
Danke für den coolen Bericht! Davon sollte es hier gerne mehr geben.
Ich hatte mir letztlich auch mal den Schaltplan eines Consumergeräts mit eMMC angesehen und war ebenfalls überrascht, dass vom BGA Bauteil so viele Pins "NC" sind. Man möchte meinen, da soll es extra erschwert werden, das Bauteil auszulöten / auszulesen.
Ein ähnliches Problem mit korrupten Daten (allerdings im NAND-Flash - wimre) gab es auch mal mit Samsung TVs die nicht mehr starten wollten. Da war der Trick, den Flash runter zu kühlen beim Starten, so dass er dann irgendwie neu initialisiert wurde. Jedenfalls konnte ich so schon einen TV retten, der jetzt mehrere Jahre wieder läuft.
Man möchte meinen, da soll es extra erschwert werden, das Bauteil
auszulöten / auszulesen.
Das glaube ich nicht. Interessantweise hat Panasonic das Flash und auch die CPU mal sogar als Ersatzteil verkauft. Machen sie aber nicht mehr. Es war also zumindest mal vorgesehen das dies gewechselt werden sollte.
Aber ja, ich finde dieses Gehaeuse auch echt bizarr. Aber man kennt es ja von USB-Sticks auf denen mal viel schreibt das die danach sehr warm sind. Vielleicht ist das wirklich zum kuehlen gedacht.
Da war der Trick, den Flash runter zu kühlen beim Starten, so dass er
dann irgendwie neu initialisiert wurde.
Ich denke mal das ist etwas zufaellig. Bei mir war es bei Kaelte deutlich schlechter. Im Zweifel muss man beides ausprobieren. Was bei mir interessanterweise nichts gebracht hat war das aendern der Versorgungsspannung. Ich hatte mal eine Shottky-Diode in die Zuleitung geloetet und es hat die Lage weder verbessert noch verschlechtert.
Man denkt sich nur eigentlich das dieses Karten/BGAs irgendeine Form
Defektmanagement haben, also im Zweifel auf Ersatzsektoren ummappen.
Oder wenn die ausgehen dann halt wirklich defekt sind.
Da ist es dann wie bei microSD/SD-Karten: die Wearlevelling-Software bestimmt, ob die Karten gut oder schlecht sind. Such mal nach Xmore hier im Forum.
Von daher fand ich es interessant das ich die Fehler einfach durch neu
beschreiben wegbekommen habe.
Die Flashzellen werden durch Lösch- und Schreibvorgänge an physikalisch benachbarten Zellen jedesmal ein wenig "mitgelöscht":
Diesen Effekt sollte ein brauchbarer Levelling-Algorithmus kennen und können. Leider ist das auch bei Speichern mit "Industriequalität" oft nicht der Fall.
Interessant ist die Frage ob er nun wieder 7-8Jahre haelt
oder ob das Problem schneller wieder kommt.
Ich würde auf eine spürbar kürzere Zeit wetten. Bei mir waren microSD, die solche Effekte zeigten, nach dem "Neubeschreiben" recht schnell wieder korrupt.
Was im uebrigen auch noch interessant ist, wenn man das Image schon mal
auf der Platte hat dann lohnt auch ein Blick da rein.
Erste Erkenntnis. Es ist nicht verschluesselt! Die koennen auch keine
Pruefsummen abchecken weil sonst der TV vermutlich schon vor Jahren
beim ersten defekten Bit ausgestiegen waere.
Wie schon gesagt, da laeuft ein Linuxkernel drauf. Die eigentliche
Bedienoberflaeche liegt als HMTL-Seiten vor. (in dreiunddroelfzig Sprachen)
Und ploetzlich liesst man dann sowas wie: Maria findet endlich ihre grosse Liebe, aber auf dem Bauernhof....
WHAT? Mein TV treibt es mit Maria? :-D
Das ist das EPG. Der TV beschreibt also seine eMMC dauerhaft mit neuen Daten. Das erklaert vielleicht auch wieso die Teile irgendwann ableben.
Oh..und man koennte bei zuviel Langeweile natuerlich auf den Gedanken kommen das System mal auf links zu drehen wo man schon mal Zugriff drauf hat. .-)
Wenn man den TV nur als HDMI Monitor mit externen Receiver betreibt,
Ich haette sogar noch einen DVI Anschluss. :)
Oh..und auf dem Board war sogar noch 15pol VGA vorgesehen, wurde
aber nicht bestueckt.
Oder malt das Linux trotzdem dauernd im Flash herum ?
Tja, wer weiss das schon. Vermutlich noch nicht mal Panasonic selber. ICh meine 4GB FLash! Da kennen die garantiert nicht mehr jede Programmzeile die sie uns verkaufen. Die verwenden ja Linux weil es denen Arbeitszeit einspart.
Was mir allerdings aufgefallen ist, einmal den TV neu starten und man hat sofort an hunderten Stellen beabsichtigte Aenderungen im Flash.
Aber vielleicht brauchen auch manche eMMC es wenn gelegentlich etwas in ihnen geschrieben wird damit sie auf die Idee kommen wearlevelung zu betreiben und andere nicht. Es ist ja auch nicht gut wenn so ein Speicher lange ungenutzt in der Ecke rumliegt.
Letztlich ist das nur raten. Ich bin jedenfalls mal sehr gespannt wie lange die Kiste noch mit dem alten eMMC haelt!
Hab gerade mal ein bisschen das Internet quer gelesen zum Thema eMMC.
Ist ja vielfach diskutiert und keiner weiss genaues.
Man darf vermuten das SD-Karten kein WearLeveling haben, ausser es sind industrial-karten.
eMMC haben immer irgendeine Form von WearLeveling, allerdings stellt sich die Frage wie gut das ist da es wohl unterschiedlich implementiert werden kann.
Es gibt Register woraus man den Status einer solchen Karten auslesen kann. ISt aber wohl optional und wird wohl vermutlich auch nicht zwangsweise von einem SD-Kartenleser zum auslesen unterstuetzt.
Falls euer Auto nach 5-10Jahren stehen bleibt koennte das auch daran liegen. (vgl:Tesla) Ist aber nicht so schlimm wie es klingt weil heute die Motoren ja nur noch 5Jahre halten. :-D
Ernstzunehmende Hersteller haben das Feature schon seit gefühlt einer
Ewigkeit. Datenblätter für SD-Karten sind ja eher selten, daher aus
einem allgemeinen Dokument von Sandisk aus 2010!: "Wear leveling is an
intrinsic part of the erase pooling functionality of cards in the
SanDisk microSD Card Product Family using NAND memory."
Man darf vermuten das SD-Karten kein WearLeveling haben, ausser es sind
industrial-karten.
Jede SD-Karte muss Wearlevelling haben. Sonst ist die FAT nach 100 kopierten Dateien hinüber und die Karte kaputt.
Das "Basis-Wearlevelling" ist beim passenden Controller (z.B. den von Hyperstone) schon im Entwicklungspaket enthalten. Und dann kommt es drauf an, wie gut die kundenspezifischen Anpassungen gemacht werden.
Die eMMC-Architektur emuliert eine Festplatte für den Hostprozessor und aktiviert Lese- und Schreibfunktionen, die identisch mit denen einer Festplatte auf Sektorenbasis sind. Zu dem verwendet Kingstons eMMC-Controller virtuelles Abbilden, dynamisches Wear-Leveling, statisches Wear-Leveling und automatische Blockverwaltung, um höchste Datenzuverlässigkeit und eine maximale Lebensdauer zu garantieren.
Bei SD-Karten steht genau garnichts darueber. Was sagt einem die allgemeine Lebenserfahrung dazu? Wuerden sie nicht auch dort die Vorzuege ihrer Karten anpreisen wenn dies sowas koennten?
Jede SD-Karte muss Wearlevelling haben. Sonst ist die FAT nach 100
kopierten Dateien hinüber und die Karte kaputt.
Das Problem ist wohl das WL ein sehr weiter Begriff ist. Es mag ja sein das die Karten speziell ein bisschen WL im Bereich der FAT machen.
Immerhin gibt es ja einige Leute die mit SD-Karten in einem Raspberry so ihre Probleme haben. (ich allerdings bisher nicht) Andererseits lief die eMMC in meinem TV immerhin so 7-8Jahre Dauerbetrieb an einem Linuxrechner.
Und bei SD-Karten im Vergleich zu MMC preist man ja die Vorteile des "secures" an. Man sollte doch meinen das dies gerade fuer einen TV der dort diverse Schluessel ablegt, sagen wir mal interessant, sein koennte. Aber ging wohl nicht.
Ich wuerde jedenfalls nur annehmen das SD dies kann wenn der Hersteller das in seinem Datenblatt reinschreibt.
Das ist das EPG. Der TV beschreibt also seine eMMC dauerhaft mit neuen
Daten. Das erklaert vielleicht auch wieso die Teile irgendwann ableben.
M.E. ein klarer Fall entweder von Dummheit oder Absicht, um RAM zu sparen. Jeder Linuxanfänger weiss, das man solche Daten nicht ins Flash, sondern in eine RAM Disk schreibt. Ich befürchte sogar, das die Herren Programmierer sowas wie /var ins Flash packen.
Zu dem verwendet Kingstons eMMC-Controller virtuelles Abbilden,
dynamisches Wear-Leveling, statisches Wear-Leveling ..
Möglich, daß das sonst nicht als typische Eigenschaft angesehen wird.
Bei SD-Karten steht genau garnichts darueber.
Da steht doch auf Seite 3 allgemein zu Kingston Flashspeicherprodukten:
"Wear-Leveling-Technologie: In Kingston Flashspeichern sind Controller integriert,.."
Ich habe hier übrigens Dokument MKF_185_Flash_Memory_Guide von 2009
und da steht der gleiche Satz drin und zu der Zeit waren in dem Dokument weder eMMC noch SSD beschrieben.
Was sagt einem die
allgemeine Lebenserfahrung dazu? Wuerden sie nicht auch dort die
Vorzuege ihrer Karten anpreisen wenn dies sowas koennten?
Das Sandisk bereits 2010 Wear leveling für alle microSD reklamiert, wird wohl kaum ein Alleinstellungsmerkmal sein.
Abgesehen davon wurde Wear Leveling als eigenständiger Begriff noch nie besonders beworben. Lexar hatte das ehemals bei USB-Sticks dabeistehen. Von Cosair hab ich noch ein PDF von 2007, daß dynamisches WL für angebotene USB-Sticks als typisch reklamiert.
Jede SD-Karte muss Wearlevelling haben. Sonst ist die FAT nach 100
kopierten Dateien hinüber und die Karte kaputt.
Das Problem ist wohl das WL ein sehr weiter Begriff ist. Es mag ja sein
das die Karten speziell ein bisschen WL im Bereich der FAT machen.
Unwahrscheinlich. Bei heutigen Eraseblockgrößen kann man dann gleich die ganze Karte entsprechend behandeln. Eher ist noch vorstellbar, daß für definierte Bereiche "haltbarerer" Flashspeicher wie SLC verwendet wird.
Immerhin gibt es ja einige Leute die mit SD-Karten in einem Raspberry so
ihre Probleme haben. (ich allerdings bisher nicht) Andererseits lief die
eMMC in meinem TV immerhin so 7-8Jahre Dauerbetrieb an einem
Linuxrechner.
Wenn man nachgräbt, handelt es sich entweder um Karten reiner "Handelsmarken" oder um Karten aus zweifelhafter Quelle. Den ein oder anderen großen Onlinehändler, der seine Ware aus dem Regal zieht, ohne sich anzuschauen, wer die da hingelegt hat, zähle ich mit dazu.
Ich wuerde jedenfalls nur annehmen das SD dies kann wenn der Hersteller
das in seinem Datenblatt reinschreibt.
Eher ist noch vorstellbar, daß für definierte Bereiche "haltbarerer"
Flashspeicher wie SLC verwendet wird.
Da ist der Controller drin und das NAND-Flash. Mehr nicht. Und weil der Controller natürlich schon seit vielen Jahren zusammen mit der Flashtechnik weiterentwickelt wird, kommt er auch mit üblichem M/T/Q-LC zurecht, ohne noch extra SLC zu brauchen:
https://www.hyperstone.com/de/eMMC-SD-Controller-NAND-Flash-1897,12751.html
Nennt sich ugs. S.M.A.R.T und wird leider nur von ganz wenigen Karten
unterstützt.
Interessant. Hast Du ein Beispiel, bei welchen Karten (Hersteller) dies der Fall ist?
Ich Wahnsinniger sichere nämlich auch auf SD-Karten, allerdings rollierend, d.h. Datensicherung auf erster Karte, dann auf nächster Karte, auf dritter Karte und danach wieder auf der ersten Karten. Bisher ging es gut.
Aber S.M.A.R.T wäre wahrhaftig eine hilfreiche Info über den Zustand der SD-Card, ich habe davon nie gehört.
Nennt sich ugs. S.M.A.R.T und wird leider nur von ganz wenigen Karten
unterstützt.
Interessant. Hast Du ein Beispiel, bei welchen Karten (Hersteller) dies
der Fall ist?
Eine der Karten ist die von mir wiederholt gelobte, bei uns zigzehntausendfach weltweit eingesetzte und wiederholt bis zur Zerstörung getestete Xmore-Karte:
Euronics wirbt mit XMore-Karten und 10 Jahren Garantie, ist aber keine "industrial"-Ausführung, also sicher kein SLC und vermutlich nicht einmal MLC. Muss mich ja leider selbst bei SSD's schon mit TLC abfinden, seitdem es die Samsung 860 Pro nicht mehr gibt. :(
Von daher fand
ich es interessant das ich die Fehler einfach durch neu beschreiben
wegbekommen habe.
Da ist dann "ein Bit ranzig geworden", wie ich immer zu sagen pflege.
Bei älteren Steuergeräten (Gabelstapler), wo ab und an merkwürdige Fehler auftreten, mache ich das auch so. Und dann ist das meistens weg und für lange Zeit.
Da ist dann "ein Bit ranzig geworden", wie ich immer zu sagen pflege.
Nicht eins! Mehrere Tausend ueber einen laengeren Zeitraum!
Aber irgendwann erwischt es dann halt ein Bit das fuer das System wichtig
ist und nicht nur irgendein Pixel in einem Bild das nie aufgerufen wird weil es nur in der schwedischen Spracheversion genutzt wird.
Bemerkenswert ist aber, eMMC hat auf jedenfall irgendeine Form von WearLeveling, egal wie ausgebufft auch immer! Man wuerde also erwarten das der eMMC da selber etwas erkennt und macht. Wenn dann trotzdem noch nach aussen hin sichtbar deutliche Fehler auftreten, ich also bei zweimal direkt hintereinander auslesen jedesmal erhebliche, niemals identische, Unterschiede finde, dann liegt der Verdacht SEHR nahe das die Karte am Ende ihre Lebens ist.
Von daher ist also die Annahme das dieses Problem wieder auftaucht sehr berechtigt. Aber wie gesagt, ich habe mir bei AlieExpress mal drei Bausteine bestellt, die sehen soweit auch gut aus und koennte notfalls wechseln. Wechseln koennte ich deshalb weil ich durch meine Methode des beschreibens sichergestellt habe das ich ein funktionierendes Image habe das ich in den neuen Chip reinflashen koennte.
Daher sehe ich ganz entspannt in die Zukunft und schaue mal wie lange das nun haelt. Sollte es am 1.1.2024 immer noch funktionieren werde ich das hier kundtun... :-D
Leider sind die echten Details bei SK-Hynix im restricted Bereich, aber als eMMC sollte das H26M31003 wear-levelling unterstützen. Die Frage ist aber, in wie fern das Dateisystem im Linux ihm eine Chance gelassen hat. Viele Produkte nutzen zwar ein durchaus brauchbares ext Dateisystem, aber eben ohne die unnötigen Zeitstempel abzuschalten. So würde jeder Lese-Zugriff auch einen Schreibzugriff erzeugen, der das letzte "Anfassen" einer Datei in der Verwaltung ablegt. Ein leider häufig gemachter Fehler. Aber wenn Ihr das Image schon auf der Platte habt, könnt Ihr ja mal in der /etc/fstab nachsehen, ob da zusätzliche Parameter abgelegt wurden.
Wir haben in einem Projekt mal die geringsten Schreibzugriffe auf einem System mit eMMC durch die Verwendung von ext2 mit abgeschalteten Time-Stamping erreicht. Das kann man aber nicht immer machen, wenn man z.B. im Hintergrund aktualisierte Daten in einen Cache lädt, dann muss man ja wissen, welche die letzten aktuellen Daten sind.
Das SPI Flash macht mich Neugierig... Ich kenne das bei solchen Produkten eher so, dass die das uboot enthalten und maximal noch das boot-Environment. Im SPI ist das vor dem verlöten schon drauf, das eMMC ist gerne mal komplett leer bei der Verarbeitung. Nach dem Bestücken bekommen die Platinen eine Test-Firmware um die Hardware zu checken und danach laufen sie durch einen Programmer, der das aktuelle Release aufspielt.
Ob man das uboot Environment auf dem SPI oder dem eMMC ablegt ist Geschmackssache. Die SPI Flash sind aber i.d.R. SLC Flash oder sogar NOR Flash und daher eher nicht für häufiges Überschreiben geeignet. Daher werden Sachen wie die "der letzte Kanal" und "die letzte Lautstärke" eher nich im SPI Flash landen, sondern als Datei in normalen Linux Pfad.
Bei den ganzen NAND Flash werden keine Nachbarzellen "angelöscht" sondern die Erase-Blocks sind immer aus mehreren Write-Blocks zusammen gesetzt. Man kann also Sektoren von z.B. 4096 Bytes schreiben, aber Löschen muss man immer Blöcke von 32k oder 64k.
So lange eine Datei einfach anwächst, ist das kein Problem, denn dann schreibt man sequenziell die Daten in diese 4096 Byte Sektoren. Werden daten aber ungültig, müsste man sie ja löschen, das markiert man aber nur.
Man versucht so lange leere Sektoren zu beschreiben, bis kaum noch welche übrig sind. Dann hat man entweder Glück und findet einen Erase-Block, der komplett aus ungültigen Sektoren besteht, oder man muss eben die noch gültigen Sektoren aus einem zu löschenden Block in einen noch freien Bereich kopieren und da dann due neuen Daten hinzufügen. Dann kann der nun veraltete Erase-block gelöscht werden.
Bei Löschen werden massiv Elektronen bewegt und manchmal verklemmen die sich dann in der falschen Schicht. Das sind dann Stuck-Bits und dauerhaft 1. Das ist der häufigste Fehler und daher versucht man eben auch so selten wie möglich zu löschen.
Um ein Betriebssystem zu schützen, hat man sich was schlaues einfallen lassen. Man kann Partitions definieren. Wear-Levelling findet dann nur innerhalb einer Partition statt. Was mir schon untergekommen ist, war ein System bei dem die Entwickler dachten, es wäre Schlau uboot, Linux, das Rootfs und das data-fs in 4 separate Partitionen zu setzen, da in den ersten drei nie geschrieben wird, außer bei einem Firmware-Update, kann diesen Systemen nie was passieren. Leider bestand dann das data-fs nur noch aus webiger als 1/4 des Flashes, und dem stand dann auch nur 1/4 der Wear-Levelling Kapazität zur Verfügung und es war dann auch 4x schneller hin, als das datenblatt des Flashes es vermuten ließ.
Daher wäre es mal spannend zu sehen, wie die Partitionen des Panasonic aufgeteilt sind, falls vorhanden. Oder wie das Kernel Bootlog aussieht.
Tatsache ist aber, wenn das FLASH bereits angeschossen ist, dann wird es in immer kürzeren Abständen wieder failen. Denn durch die Analyse und vorübergehende Reparatur wurde weder der Wear-Levelling Mechanismus ausgetauscht noch die (wenn vorhanden) Partions-Größen aufgehoben.
Ich weiss nicht was du mit SPI-Flash hast? Den gibt es zwar auch noch im
TV, aber damit gibt es keine Probleme. Ich rede hier immer ausschliesslich
von der eMMC. Und da ist auch der Linuxkernel drin.
Um zu mounten muesste ich erstmal die Anfaenge der Partitionen finden.
Aber so wichtig das jetzt zu machen war mir das nicht. Den das groesste Probleme bei einem TV besteht letztlich darin das es ein TV ist. Man steckt einen gewissen Aufwand rein, repariert die Kiste und denkt, hmm...geht wieder, was kucke ich jetzt? Ach so, lohnt eigentlich nicht. :-D
ICh sehe das Teil eher als Dialeinwand fuer 2D und 3D Fotos. Besonders wegen letzterem war es mir wichtig den zu reparieren. Es gibt ja keine neuen 3D-Kisten mehr.
Ach der SPI Flash war nur der Vollständigkeit wegen. Irgendwo oben ist geschrieben, dass da die laufenden Settings gespeichert würden und das halte ich eben für unwahrscheinlich. Es ist eher so, dass darin das uboot sitzt, das dann aus dem von Dir gesicherten eMMC das darin befindliche linux lädt und startet.
Wenn Panasonic das Image nicht als RAW Image abgespeichert hat, kannst Du in einem Linux Rechner das Image auch mal mit "sudo fdisk -L /path/to/image.img" analysieren. Eventuell hast Du da die Partitionierung schon auf dem Bildschirm. Dann muss man die Block-Nummern noch in Sektoren umrechnen und kann das rootfs mit offset mounten.
Aber musst Du nicht. Ich habe keinen Panasonic, und Dein TV läuft wieder. Daher war das nur etwas Zusatz-Wissen drum herum.
Meinen hatte ich immer nur in Standby geschaltet. Das heisst der
Stromverbrauch geht von 250W auf 50W runter. Oder anders gesagt auch
wenn der TV behauptet aus zu sein, der Linuxrechner da drin laeuft
immer. Muss er ja eigentlich auch weil der TV dauernd das Programm
empfangen muss um auf Wunsch Sendungen auf seiner Festplatte zu
speichern. Erst wenn man ihn auf der Rueckseite am Schalter ausschaltet
geht der Verbrauch auch unter 1W.
AUTSCH! Bei den aktuellen Strompreisen verdaddelt die Kiste im Jahr 200€ im Standby. Auch wenn ich eigentlich für Reparatur und Nachhaltigkeit bin - einen solchen Stromfresser sollte man eigentlich austauschen oder immer per Schalter oder Schaltsteckdose abschalten. Ein Kollege hat seinen Sony Bravia mit 22W im Standby gemessen, scheint also auch andere Hersteller zu betreffen.
Unser 55" Philips, Soundbar, Edision Receiver und Wii brauchen zusammen 8W im Ruhezustand. Gerade noch ok, wobei der Edision den größten Anteil brauchen dürfte.
einen solchen Stromfresser sollte man eigentlich austauschen oder
Das geht nicht weil man keine modernen TVs mit 3D kaufen kann.
Ausserdem so um die 2000Euro muss man dann schon rechnen. Das sind
schon ein paar Jahre Stromkosten oder?
immer per Schalter oder Schaltsteckdose abschalten.
Das mach ich auch, geht halt mit dem Schalter auf der Rueckseite.
Das Problem mit dem Stromverbrauch kommt wohl daher das das Linux
immer laufen muss wenn man diverse Luxusfunktionen nutzen will.
Also z.B die Aufnahme von TV-Sendungen, oder Sat-IP Streaming auf ein Handy.
Unser 55" Philips, Soundbar, Edision Receiver und Wii brauchen zusammen
8W im Ruhezustand.
Hatte letzte Woche auf Dienstreise im Hotel einen Philips. Der war so extrem grottenlahm das ich das kaum glauben konnte. Da tuckert vermutlich noch immer ein MCS51 als Hauptprozessor drin rum. :)
Ich habe hier einen TX-42ASN658 mit vermutlich diesem Problem. Manchmal läßt er sich noch starten, alle Ubs sind in Ordnung.
In einem Panasonic Manual wird ein Prozeß beschrieben, der die Daten auf einen USB Stick ausliest und diese (gerade für den Ersatz des Mainboards!) wieder zurück schreibt. Das geht mit diversen Passwörtern und auch nur einmal.
Würde das dieses Problem nicht auch lösen solange vor dem Auslesen der TV sauber gestartet ist? Oder schreibe ich mir dieselben Fehler wieder ins Memory zurück???
Nach einigen Schleifen werde ich es jetzt wohl versuchen. Ein Freund steht mit einem Linuxrechner bereit ;-))
Allerdings bin ich eher ein "analoger" Reparateur: in meinem Panasonic hat der betreffende Speicherchip D0 bis D7, also drei Data Anschlüsse mehr als hier beschrieben? Oder verstehe ich das etwas falsch?
in meinem Panasonic
hat der betreffende Speicherchip D0 bis D7, also drei Data Anschlüsse
mehr als hier beschrieben? Oder verstehe ich das etwas falsch?
Vermutlich falsch verstanden, D0 bis D7 sind 8 Bit und damit der Standard. 5 Bit Chips gibts nicht.
in meinem Panasonic
hat der betreffende Speicherchip D0 bis D7, also drei Data Anschlüsse
mehr als hier beschrieben? Oder verstehe ich das etwas falsch?
Vermutlich falsch verstanden, D0 bis D7 sind 8 Bit und damit der
Standard. 5 Bit Chips gibts nicht.
Kommt mir auch komisch vor. Jedoch wird weiter oben ausdrücklich nur von D0 bis D4 geschrieben. Was mache ich mit den anderen drei?
Der verbaute Chip ist ein THGBM5G5A1JBAIRH2H von Toshiba. Im Datenblatt steht übrigens Interessantes zur Zuverlässigkeit.
Wie du auf dem ersten Bild dieses Threads siehst werden nur die Bits D0 bis D3 genutzt, also die unteren vier Bits. Der Emmc hat auch einen Modi mit 8 bit, aber die benutzt ein einfacher USB-Adapter nicht.
Theoretisch waere sogar nur 1Bit moeglich, aber das klappt nicht.
Der USB-SD/MMC Adapter liesst mit einem Bit die Identregister der Karte
aus. Dann weiss er was diese Karte alles unterstuezt. Da er aber auch
weiss das er selber nur 4bit kann, werden nur die Bits 0 bis 3 wirklich
genutzt. Die anderen sind egal.
Hallo
Ich habe der selbener Probleme mit dem Panasonic 50axw804.
Ich habe vie Olaf mit einen SDcard Adapter der eMMC Speicher mit Computers verbunden und Daten geliesen. Ich weiss nicht ob ich etwas falsch gemacht habe oder der Speicher ganz defekt ist.
Ich kann nur 1GB ablesen.
$ sudo fdisk -l /dev/sdb zeigt nur auch 1GB.
Außerdem kann mann nicht aufschreiben:
$ sudo dd if=/dev/zero of=/dev/sdb
dd: failed to open '/dev/sdb': Read-only file.
Danke schön für Hilfe.
Wollte ja berichten wie es weitergeht mit meinem TV.
Er hat mit der neu beschriebenen eMMC erstmal 8Monate unauffaellig funktioniert. Danach viel mir auf das er langsamer wurde. Also einschalten, Menue aufrufen, alles was irgendwie auf die Speicherkarte zugreift wurde deutlich merkbar langsamer. Nach etwas 10Monaten bootete er dann garnicht mehr.
Also hab ich mich voller Hoffnung ans Werk gemacht. :-)
Theoretisch koennte man sicher das BGA wechseln, allerdings da nur relativ wenige der 153Balls genutzt werden erschien mir das zu aufwendig, ausserdem ist es notwendig das Teil mehrmals mit einem Computer zu verbinden. Dazu spaeter mehr.
Ich hab mir also selber eine Speicherkarte gebaut. Dazu hab ich den BGA verkehrtrum auf ein Stueck Platine geklebt, direkt an den Anschluessen ein paar 0603er geloetet. (Sollte wohl mal 0402 in mein Lager aufnehmen :-)
Danach alles mit duennem 0.15er Faedeldraht verdrahtet. (Bild 2)
Am Ende hat man dann eine eigene MMC/SD-karte gebaut. (Bild 3)
Dann noch schnell einen Adapter gebaut (Bild 04) und man kann seine "Karte problemlos in einen beliebigen Kartenleser stecker und beschreiben.
Leider reicht das aber noch nicht aus. Ich konnte auf diese Weise problemlos das Image schreiben mit dem der Linuxrechner im PC laeuft. Im uebrigen laesst sich meine neue eMMC obwohl es der gleiche Typ wie der alte ist DEUTLICH schneller beschreiben!
Aber er bootet so nicht!
Man muss jetzt wissen das so eine eMMC intern in vier verschiedene Areas aufgeteilt ist.
boot0
boot1
rpmb
user
Im Prinzip sind das vier Partitionen, allerdings werden die von einem
ueblichen Kartenleser nicht angezeigt. Lediglich die user Partition
wird dann unter Linux als /dev/sdb angezeigt. Man bekommt so keinen
Zugriff auf die anderen drei Bereiche. Aber es gibt einen Trick. .-)
Ein Raspberry PI bootet von einer SD karte und bietet Zugriff.
Also erstmal einen Raspberry dazu bringen das er von einem USB-Stick
bootet. Dazu gibt es diverse Anleitungen im Netz.
Dann hab ich meine neue Karte "angesteckt" (Adapter an die Kontakte des PI loeten)
So kann man problemlos die beiden Bootbloecke der alten eMMC lesen:
Boot1 wird dabei aber wohl nicht vom TV verwendet. Boot0 aber schon.
Die eMMC haben dazu einen besonderen Modus wo sie beim einschalten
vermutlich aehnlich eines QSPI-Flash die Daten einen SOC liefern.
Wobei man in der Karte umschalten kann ob sie dann boot0 oder boot1 liefert.
Jetzt ist die Karte bootfaehig und hat bereits eine userpartition mit den Linux-Systemdaten. Damit ist das System eigentlich lauffaehig.
Leider gibt es noch die rpmb Partition. Dort kann man nur zugreifen wenn man einen Key hat. Bei einer neuen eMMC, wie ich sie habe, kann man den Key einmalig vergeben. Nur kennt man natuerlich leider nicht den Key der defekten eMMC. Deshalb kann man die nicht auslesen!
Meine Hoffnung war nun das der TV erkennen wird das er "neu" ist und die Keys selber generiert, also dann nur nicht mehr auf gespeicherte Filme auf einer externen Festplatte zugreifen kann. Dem war aber nicht so. Er erwartet wohl das dies alles bei der Produktion korrekt beschrieben wurde.
So bootet er kurz und schaltet sich dann sofort wieder aus. RATTEN!
An der Stelle noch einen interessanten Einschub ueber eMMC.
Die drei Partitionen boot0, boot1 und rpmb sind SLC-Speicher. Die user Partition ist MLC. Deshalb geht die auch kaputt! Die eMMC haben aber ein Kommando mit dem man einmalig das MLC der user Partition in SLC umwandeln kann. Dann wird aus einer 4GByte eMMC aber eine 2GByte Karte. Auserdem wuerde die Karte dann 10-100x laenger halten. Aber das hat Panasonic nicht gemacht. Entweder weil sie zu geizig sind oder weil ihre unfaehigen Programmierer den Leuten ein Linux mit einer Million HTML Seiten in droelfzig Sprachen als eigenes Betriebsystem "My Home Screen" verkaufen und jedes Byte brauchen. Und man weiss ja das Programmierer heute nicht mehr selbstaendig denken koennen und 90% ihrer sogenannten Arbeitsleistung aus Kopien der Arbeit anderer Leute besteht. Aufblaehen ist ihre erste Arbeitsleistung.
Man koennte jetzt natuerlich den Brute Force Ansatz einleiten, die Firmware decompilieren oder mal einen Logicanalyzer auf den Bus setzen und schauen wie die Firmware die eMMC/rpmb mit ihrem Key freischaltet. Die Faehigkeit haette ich sicherlich, allerdings muss man bedenken das es hier ja nur um einen TV, also ein Fenster in eine Welt von Muell und Werbung geht. Nichts wo man bereit ist ernsthaft Aufwand rein zu stecken.
Ich hab dann nochmal probiert den zu Anfang ausgefuehrten Trick mit loeschen und neu beschreiben der alten eMMC zu wiederholen. Dabei ist die alte Karte aber stehengeblieben und sie behauptet jetzt anstatt 4GByte nur noch 1.7GByte Gross zu sein. Dort ist die user-Partition also endgueltig platt.
Also ist es wohl an der Zeit ueber einen neuen TV nachzudenken. (Sinnkrise, Meditation, usw) Eigentlich braeuchte man ein TV heute ja kaum mehr, allerdings nutze ich das Teil auch als "DIA-Projektor", so rechtfertigt sich dann die Anschaffung. Man sollte allerdings wissen das man heute aktuelle TVs nicht mehr ohne Bewachung in Internet lassen kann. Die nehmen Zugriff auf hunderte von Servern um denen eure Verhaltensdaten mitzuteilen und euer Hirn mit Werbung zu verbloeden. Also erstmal einen Raspi in die Ecke stellen und da ein pi-hole drauf.
Was fuer eine armselige Scheisswelt haben uns heute diese kranken Marketing und Wirtschaftheinis beschert! Frueher hat man sich mal gefreut wenn man was neues gekauft hat was irgendwie besser war, mittlerweile musst du dir zuerst Gedanken machen wie du den Dreck dieser Leute draussen haelst.
Ich weiss nicht ob ich etwas
falsch gemacht habe oder der Speicher ganz defekt ist.
Kannst deinen TV beerdigen! Da ist nichts mehr zu machen ausser
du kaufst dir ein neues Mainboard.
Olaf
Danke schön für Antwort.
Trotzdem ich werde deinen Trick mit den Raspberry pi ausprobieren.
Ich Verstehen nur nicht warum muss mann RPi von einem USB-Stick bootet? Kann mann nicht die Betriebssystem auf dem MicroSD Karte lassen?
Entschuldigung für blöde Fragen aber ich immer lerne noch😊
LG Daniel
Danke schön für Antwort.
Trotzdem ich werde deinen Trick mit den Raspberry pi ausprobieren.
Ich Verstehen nur nicht warum muss mann RPi von einem USB-Stick bootet?
Kann mann nicht die Betriebssystem auf dem MicroSD Karte lassen?
Du greifst mit dem SDIO-Interface auf die externe eMMC zu. Das geht nicht wenn du deine Boot-SD dran hängen hast.
Danke schön für Antwort.
Trotzdem ich werde deinen Trick mit den Raspberry pi ausprobieren.
Ich Verstehen nur nicht warum muss mann RPi von einem USB-Stick bootet?
Kann mann nicht die Betriebssystem auf dem MicroSD Karte lassen?
Du greifst mit dem SDIO-Interface auf die externe eMMC zu. Das geht
nicht wenn du deine Boot-SD dran hängen hast.
Interessant ist die Frage ob er nun wieder 7-8Jahre haelt oder ob das
Problem schneller wieder kommt. Aber ich hab jetzt ja ein
funktionierendes Images und koennte notfalls die eMMC auswechseln.
Olaf
Herzlichen Glückwunsch Herr Olaf. Ich habe eine Service-Firmware für den TX-50AXW804 und wenn Sie den EMMС-Flash durch einen neuen ersetzen möchten, um die Lebensdauer Ihres Fernsehers für lange Zeit zu verlängern, könnte ich Ihnen einen Dump zur Verfügung stellen. Aber ich habe nicht viel Erfahrung mit EMMС und habe ein Problem damit, zwei erweiterte Partitionen GPP0 und GPP1 unbedingt mit ENH-Attribut zu erstellen. Vielleicht machen Sie es nach Ihrer Methode zu Ihrem eigenen? Bitte helfen Sie dabei. Mit freundlichen Grüßen Ihor.