Forum: Mikrocontroller und Digitale Elektronik Reparatur Panasonic TX50-AXW804, eMMC Karte, Alzheimer


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von olaf (Gast)


Angehängte Dateien:

Lesenswert?

Moin Zusammen,

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
 1643 Fehler in 14 Blöcken von 1024Byte
17
Fehlerrate: 14 von 3784704
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.

Olaf

von olaf (Gast)


Angehängte Dateien:

Lesenswert?

Ganz vergessen, hier noch das kleine Programm das ich in 10min
zum vergleich der Images zusammengehackt habe.

Dokumentation = Source. :-D

Sollte sich aber dafuer auch auf jeder Distribution uebersetzen 
lassen...

Olaf

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Danke für den interessanten Bericht!

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".

Grüßle,
Volker

von olaf (Gast)


Lesenswert?

> 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:

https://de.aliexpress.com/item/32770360490.html

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.

Olaf

von olaf (Gast)


Lesenswert?

Hier noch der Adapter:

https://de.aliexpress.com/item/33005566932.html

Alleine die Existenz von so einer Platine zeigt ja das es offensichtlich
gerade einige Leute mit Bedarf gibt. :-D

Olaf

von Markus M. (adrock)


Lesenswert?

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.

http://www.hifi-forum.de/viewthread-151-32721.html

: Bearbeitet durch User
von olaf (Gast)


Lesenswert?

> 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.

Olaf

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

olaf schrieb:
> 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":
* Beitrag "Re: zuverlässige SD-Karte für Raspberry Pi"
* Beitrag "Re: Eure Erfahrungen mit SD-Karten"

Diesen Effekt sollte ein brauchbarer Levelling-Algorithmus kennen und 
können. Leider ist das auch bei Speichern mit "Industriequalität" oft 
nicht der Fall.

olaf schrieb:
> 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.

olaf schrieb:
> Shottky-Diode
Walter schrieb sich Schottky mit 'c'  ;-)
* https://de.wikipedia.org/wiki/Walter_Schottky

: Bearbeitet durch Moderator
von olaf (Gast)


Lesenswert?

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. .-)

Olaf

von Guenter H. (bigfix)


Lesenswert?

olaf schrieb:
> Das ist das EPG. Der TV beschreibt also seine eMMC dauerhaft mit neuen
> Daten. Das erklaert vielleicht auch wieso die Teile irgendwann ableben.

Wenn man den TV nur als HDMI Monitor mit externen Receiver betreibt, 
sollte er dann viel weniger schreiben ?

Oder malt das Linux trotzdem dauernd im Flash herum ?

von olaf (Gast)


Lesenswert?

> 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!

Olaf

von olaf (Gast)


Lesenswert?

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.

Alles in allem ein sehr interessantes Thema!

https://source.android.com/docs/core/perf/flash-wear

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

Olaf

von M.M.M (Gast)


Lesenswert?

olaf schrieb:

Der jährliche Wiedergänger:

> Man darf vermuten das SD-Karten kein WearLeveling haben, ausser es sind
> industrial-karten.

Das mag für Noname Billigkarten gelten. Zitiere ich mich mal wieder 
selbst aus
Beitrag "Re: SD Karte shutdown"

> 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."

> Alles in allem ein sehr interessantes Thema!
>
> https://source.android.com/docs/core/perf/flash-wear

Naja, da stehen jetzt aber auch nur Allgemeinplätze, die eigentlich 
sowieso jeder, der mit Flashspeicher umgeht, kennen sollte.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

olaf schrieb:
> 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.

olaf schrieb:
> Es gibt Register woraus man den Status einer solchen Karten auslesen
> kann. ISt aber wohl optional
Nennt sich ugs. S.M.A.R.T und wird leider nur von ganz wenigen Karten 
unterstützt.

: Bearbeitet durch Moderator
von olaf (Gast)


Lesenswert?

> Das mag für Noname Billigkarten gelten. Zitiere ich mich mal wieder
> selbst aus

Werfen wir mal einen Blick auf Kingston:

https://media.kingston.com/pdfs/MKF_283.1_Flash_Memory_Guide_DE.pdf

Da steht unter eMMC:

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.

Olaf

von olaf (Gast)


Lesenswert?

Habt ihr eigentlich die Zeiten gesehen die ich oben fuer das
Beschreiben der gesamten eMMC angegeben habe?

dd if=0xff_file.img of=/dev/sdg  (30min!)

dd if=0x00_file.img of=/dev/sdg (40min!)

dd if=golden04.img of=/dev/sdg (53min!)

Nach den ersten beiden Vorgaengen dachte ich noch, hm...0xff geht
bestimmt schneller weil nur loeschen einfacher ist.

Beim dritten mal kam ich dann aber ins gruebeln. Sieht so aus als
wenn es jedesmal langsamer wird.

Hoffen wir mal das bedeutet nix boeses. TV geht jedenfalls noch. :)

Olaf

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

olaf schrieb:
> 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.

von M.M.M (Gast)


Lesenswert?

olaf schrieb:

> Werfen wir mal einen Blick auf Kingston:
>
> https://media.kingston.com/pdfs/MKF_283.1_Flash_Memory_Guide_DE.pdf
>
> Da steht unter eMMC:
.
> 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.

Für professionellen Einsatz sehe ich das ebenso.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

M.M.M schrieb:
> 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

von Rainer Z. (netzbeschmutzer)


Lesenswert?

Lothar M. schrieb:
> 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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rainer Z. schrieb:
> Aber S.M.A.R.T wäre wahrhaftig eine hilfreiche Info über den Zustand der
> SD-Card, ich habe davon nie gehört.

Delkin brüstet sich, sowas zu haben:
https://www.delkin.com/blog/what-are-smart-microsd-cards/
Aber es ist schon bezeichnend, das da eine 256Mb(!) Karte abgebildet 
ist.
Ansonsten gibts da einige Verwirrung. Da die Medien alle mehr oder 
weniger wie SCSI behandelt werden, gibts oft Unterstützung für den alten 
SMART Standard, aber es kann sein, das das nur Fake Antworten sind, um 
den Request zu erfüllen:
https://superuser.com/questions/1064119/usb-flash-drives-or-sd-cards-with-s-m-a-r-t

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rainer Z. schrieb:
> Lothar M. schrieb:
>> 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:
* 
https://www.xmore.de/News/Zuverlaessig-und-flexibel-mit-fixer-Bill-of-Material-SD-und-MicroSD-Speicherkarten-von-Xmore.html

Und dann gibt es noch die von Innodisk:
* 
https://www.innodisk.com/en/products/flash-storage/sd-card-and-microsd-card

Da muss ich auch mal wieder ein paar ordern und testen... ;-)

von Rainer Z. (netzbeschmutzer)


Lesenswert?

Danke für die Links. Das sind sogar Karten mit SLC-Speicher, 
Donnerwetter.

Die Preise für die XMore-Karte sind leider entsprechend. Verkäufer sind 
schwer zu finden, einer hier:

https://www.mercateo.com/p/115-30172451/SDHC_Karte_4GB_30MB_s_25MB_s.html?ViewName=live~secureMode

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. :(

https://www.euronics.de/markenwelt/xmore/

von Jük P. (tik-tak)


Lesenswert?

Hi Olaf,
Ihre Freude zu früh. Speicherchip ist am Ende und muss ersetzt werden. 
In kürze werden Sie es erfahren müssen.

von olaf (Gast)


Lesenswert?

> Ihre Freude zu früh. Speicherchip ist am Ende und muss ersetzt werden.
> In kürze werden Sie es erfahren müssen.

Bis jetzt geht er noch, aber ist doch kein Problem. Ich hab
schon 3Stueck von dem Speicher als Ersatz hier liegen. .-)


Olaf

von Jük P. (tik-tak)


Lesenswert?

"kleines Programm"
Läuft unter Linux? Können Sie die Code zeigen?
In C++ geschrieben?
Panasonic nutzt UFS2 File System in seinen Geräten.

von olaf (Gast)


Lesenswert?

> Läuft unter Linux? Können Sie die Code zeigen?

Haengt doch oben irgendwo mit dran.

> In C++ geschrieben?

Nein, good old plain C.

Olaf

von Frank O. (frank_o)


Lesenswert?

olaf schrieb:
> 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.

von olaf (Gast)


Lesenswert?

> 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

Olaf

von Ulrich P. (uprinz)


Lesenswert?

Moin!

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.

von olaf (Gast)


Lesenswert?

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.

Olaf

von Ulrich P. (uprinz)


Lesenswert?

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.

von Bernhard S. (b_spitzer)


Lesenswert?

olaf schrieb:
> 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.

von olaf (Gast)


Lesenswert?

> 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. :)

Bisher laeuft er uebrigens noch....

Olaf

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

olaf schrieb:
> Der war so
> extrem grottenlahm das ich das kaum glauben konnte.

Dann hast du noch keinen moderneren Loewe unter der Fernbedienung 
gehabt. Der hat noch einen Intel 4004 :-P

von Thomas R. (thomasr)


Lesenswert?

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???

von Vanye R. (vanye_rijan)


Lesenswert?

> Würde das dieses Problem nicht auch lösen solange vor dem Auslesen der
> TV  sauber gestartet ist?

Nein, das sind andere Daten. Dabei geht um die Systemeinstellungen, also
z.B programmierte Sender, WLAN-Passwort usw.

Die Probleme macht aber die Firmware selber. Im schlimmsten Falle also
sogar der Linuxkernel.

von Thomas R. (thomasr)


Lesenswert?

Alles klar, Danke!

Also die Ochsentour :-((

von Thomas R. (thomasr)


Lesenswert?

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?

Nachhilfe erbeten.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas R. schrieb:
> 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.

von Thomas R. (thomasr)


Angehängte Dateien:

Lesenswert?

Matthias S. schrieb:
> Thomas R. schrieb:
>> 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.

von Thomas R. (thomasr)


Angehängte Dateien:

Lesenswert?

Hier noch der Auszug aus dem Schaltplan zum Anschluß des eMMC.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die Nummerierung geht etwas durcheinander, aber es sind alle 8 Bit 
vorhanden.

von Thomas R. (thomasr)


Lesenswert?

Ja, aber der TO hat für seine Reparatur nur D0 bis D4 verwendet. Kann 
man die anderen alle weglassen?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ah, jetzt ja. Das eMMC Interface und auch SD benutzt nur diese Bits.

von Thomas R. (thomasr)


Lesenswert?

Matthias S. schrieb:
> Ah, jetzt ja. Das eMMC Interface und auch SD benutzt nur diese Bits.

Das wollte ich wissen, DANKE!

von Vanye R. (vanye_rijan)


Lesenswert?

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.

von Daniel (regan3000)


Lesenswert?

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.

von Olaf K. (darkover)


Lesenswert?

> 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

von Olaf K. (darkover)


Angehängte Dateien:

Lesenswert?

So, Leute,

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.

Olaf

von Olaf K. (darkover)


Lesenswert?

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:

dd if=/dev/mmcblk0boot0 of=boot0_n.bin
dd if=/dev/mmcblk0boot1 of=boot1_n.bin

Dann zur eMMC neuen wechseln. Dort muss man den Schreibschutz aufheben:

echo 0 > /sys/block/mmcblk0boot0/force_ro

Und kann dann so schreiben:
dd if=boot0_n.bin  of=/dev/mmcblk0boot0

Nochmal fuer die boot1
echo 0 > /sys/block/mmcblk0boot1/force_ro
dd if=boot1_n.bin  of=/dev/mmcblk0boot1

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.

Olaf

von Markus M. (adrock)


Lesenswert?

@Olaf: Sehr cooler Bericht! Respekt vor Deinem Durchhaltevermögen, auch 
wenn es am Ende leider nicht funktioniert hat.

Eine Frage noch: Woher weiß denn das OS, wie groß die einzelnen Bereiche 
auf der eMMC sind? Gibt es da auch so eine Art "Partitionstabelle"?

von Olaf K. (darkover)


Angehängte Dateien:

Lesenswert?

> wenn es am Ende leider nicht funktioniert hat.

Man lernt dabei eine Menge ueber eMMC. Das ist im PRinzip ein
cooles Konzept.

> Eine Frage noch: Woher weiß denn das OS, wie groß die einzelnen Bereiche
> auf der eMMC sind? Gibt es da auch so eine Art "Partitionstabelle"?

Es gibt Funktionen um das auszulesen und auch eine tool-chain.

https://docs.kernel.org/driver-api/mmc/mmc-tools.html

Ich haenge mal die Systemdaten der eMMCs an.

Das hier ist ganz lesenwert und erklaert die Grundlagen:

https://www.embeddedartists.com/wp-content/uploads/2020/04/Working_with_eMMC.pdf

Man kann dann die Groesse dieser Areas auslesen und ich glaube sogar 
veraendern.

Olaf

von Daniel (regan3000)


Lesenswert?

Olaf K. schrieb:
>> 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

von Klaus R. (klaus2)


Lesenswert?

Sehr schöner Bericht, RESPEKT über für die Vorgehensweise & dein 
Durchhaltevermögen...

Hatte das mal mit nem SPI Flash bei nem Miele Ind.-Kochfeld, konnte man 
aber über die Temperaturmethode auslesen & auf nen neuen Chip kopieren.

Klaus.

: Bearbeitet durch User
von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

Daniel schrieb:

> 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.

von Daniel (regan3000)


Lesenswert?

Michael X. schrieb:
> Daniel schrieb:
>
>> 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, jetzt habe ich verstanden😉

von Jük P. (tik-tak)


Lesenswert?

Super Leistung)
Bitte Ihr Mainboard nicht entsorgen) Zb. bei Ebay als defekt anbieten)

von Daniel (regan3000)


Lesenswert?

Ok fast alles gemacht aber was mit dem zwei Partition mmcblk0gp0 und 
mmcblk0gp1?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.