Probleme mit ubifs

  • Kurze Erklärung zu der Bad Block Geschichte:


    Das Problem ist dass viele weil es so bequem ist mit dFlash und damit mit dem writenfi Flashen und weil das keine neuen Bad blocks erkennen und markieren kann wird dann so ein unmarkierter Bad Block benutzt bis es schief geht. Der entsprechende Disclaimer ist ja nicht umsonst im Plugin drinnen, nur wird der halt ignoriert bis es schief geht. Und dann ist DreamUp mit Receover Bad sectors halt eine einfache Methode das ein solcher neuer Bad block erkannt und markiert wird und dann geht wieder alles wie vorher.


    Ich muss mir eh mal überlegen ob ich das writenfi nicht aufbohre das es auch Bad Blocks kann (ist dann halt langsamer weil es schreiben und lesen muss um zu checken). Andererseits macht bei den heutigen Imagegrößen das writenfi badl eh keinen Sinn mehr weil Ihm ab 128MB nfi Größe sowieso das Memory ausgeht, und dann geht es sowieso nur mehr mit nandwrite zu Flashen das einfach das File sequentiell in den Flash schreibt ohne soviel Memory zu allozieren.


    Wenn man mit nadnwrite Flasht das sehr wohl auch neue Bad Blocks markieren kann passiert das ja nicht, also werde ich wahrscheinlich komplett darauf umsteigen oder das
    ubiformat /dev/mtd3 -f ubi.img
    zum Flashen verwenden (was ja eigentlich die supportete Methode zum Flashen bei ubifs wäre).


    Und ich beschwere mich auch nicht deswegen, das writenfi ist halt nur für den Loader gedacht, das wir es für ganze Images missbrauchen ist ja nicht Eure Schuld.


    Aber das hat nicht wirklich was mit dem ubifs Problem zu tun, ich will das nur nicht im Raum stehen lassen ohne den Hintergrund zu erklären.


    LG
    gutemine

    • Offizieller Beitrag

    Hi,


    hmm ja.. also das bad block handling im writenfi ist sehr minimal.. bad blocks werden da nur erkannt wenn das löschen schief geht.


    Aber naja.. sooo krass ist das alles nicht weil eigentlich die blöcke ja auch während dem normalen betrieb der box als bad markiert werden wenn der Treiber feststellt, dass da etwas schief ist.


    Bzw.. nun macht ubi das ja. Hmm und neue Bad blocks erkennt der 2nd stage loader auch OHNE das man das bad block recovery anschaltet. Das Bad Block recovery sorgt eigentlich nur dafür, dass blöcke die eigentlich als bad markiert sind als "gut" angesehen werden. Sprich der 2nd stage loader ignoriert das bad flag einfach.. löscht den block.. und schreibt rein und macht am ende noch ein verify.. und wenn eines dieser 3 Dinge dann schief geht wird dieser Block wieder als Bad markiert. Diese 3 Dinge tut der 2nd stage loader aber auch wenn man das bad block recovery NICHT anschaltet!


    Also Bad Block recovery macht wie gesagt nur sinn, wenn man übermässig viele Blöcke als bad markiert hat... sei es durch einen kernel fehler .. oder einen fehler beim flashtool.


    cya

  • Ja das weis ich, aber es werden nicht ständig alle bad blocks gescanned, womit die Treiber erst draufkommen wenn sie was schreiben.


    Deswegen habe ich ja gesagt man sollte wenn files verschwinden schauen ob plötzlich die Bad Block Anzahl sprunghaft ansteigt, dann wäre es möglich das etwas passiert was nicht sollte. Wenn das gleich bleibt dann bitte woanders weitersuchen :smiling_face:

  • Zitat

    Bzw.. nun macht ubi das ja. Hmm und neue Bad blocks erkennt der 2nd stage loader auch OHNE das man das bad block recovery anschaltet. Das Bad Block recovery sorgt eigentlich nur dafür, dass blöcke die eigentlich als bad markiert sind als "gut" angesehen werden. Sprich der 2nd stage loader ignoriert das bad flag einfach.. löscht den block.. und schreibt rein und macht am ende noch ein verify.. und wenn eines dieser 3 Dinge dann schief geht wird dieser Block wieder als Bad markiert. Diese 3 Dinge tut der 2nd stage loader aber auch wenn man das bad block recovery NICHT anschaltet!


    Auch wenn das immer wieder gesagt wird, so verstehe ich dann die Ergebnisse nicht.
    Denn wenn der SSL auch beim normalen Flashen neue bad Blocks erkennen sollte, warum kam Ricardos Box dann erst nach einem Flashen mit Recover Bad Sectors wieder hoch?
    Ich habe mit meinen Boxen ähnliche Erfahrungen gemacht..


    Mir kommt es eher so vor, als würden beim normalen Flashen nur die bereits als bad bekannten Blocks berücksichtigt.
    Beim Flashen mit Bad Block Recovery wird dann hingegen jeder Block geprüft und gegebenenfalls als bad markiert; mit der unerwünschten "Nebenwirkung", dass unzuverlässige Blocks gegebenenfalls auch wieder als good markiert werden, weil sie im Moment des Tests keine Probleme machen.


    Wünschenswerter wäre eine Option, die beim Flashen kaputte Blöcke erkennt und markiert, dabei aber bereits als kaputt markierte Blöcke ignoriert.
    Sollte das also wirklich so im SSL beim normalen Flashen integriert sein, dann verstehe ich die Erfahrungen, die wir über die Jahre mit der "Recover Bad Sectors"-Option gemacht haben, einfach nicht..

  • Ähm ich denke genau so ist es implementiert, deswegen musste man ja diese zusätzliche Einstellung dazu machen wenn mal falsch markiert wurde.


    Ich habe mir das mal zu Forschungfszwecken nachgebaut - sprich ein kleines Programm das dir gute Blocks als Bad markiert und das auch wieder rückgängig machen kann, inklusive entsprechenden Test ob der block auch OK ist.


    Ich kann dir so hübsche Muster an Bad Blocks in den Flash machen oder auch den gesamten Freespace deinens Flash als Bad markieren, etc...


    Die codebasis dafür findest du in den mtdutils bzw. im nand_check das ich auf die Dreambox portiert habe.


    Das eigentliche Problem ist das du bei laufendem gemountetem Filesystem das nicht so einfach machen kannst und man entweder vom USB stick booten muss oder es eben im Bios oder in einem initramfs machen muss bevor das root filesystem gemountet wird :smiling_face:


    ubifs macht sich das handling der Bad blocks aber selber, akzeptiert aber natürlich bereits als bad markierte blocks.


    Insofern ist aber eigentlich alles schon da was nötig ist und im Prinzip funktioniert es auch, mit der Einschränkung vom writenfi und damit dem dFlash die ich versucht habe zu erklären.


    Was ich noch machen könnte WENN Interesse daran besteht ist ein auf nandwrite basierendes Flashtool schreiben das unser nfi format versteht.


    Den C++ code zum rausholen der jeweiligen jffs2 und ubifs images bzw. dem ssl habe ich ja fertig im nfidump, wenn ich mit writenfi flashe benutze ich das ja um die 3 files rauszuholen und dann mit dem writenfi binary zu schreiben.


    Das writenfi von einem standalone binary zu einer Routine zu machen und zum nfidump dazu zu linken das es ein einzige Binary ist wäre in wenigen Stunden erledigt.


    ABER das ist dann trotzdem von DMM nicht supportet, obwohl es das Memory Problem des writenfi lösen würde UND du dann beliebig große Images flashen könntest UND mit nandwrite das Industriestandardtool zum Flashen verwenden würde.


    EDIT: Ich habe im Developer Bereich dazu einen eigenen Thread aufgemacht weil das nicht hier hergehört und nur weiter verwirrt.


    LG
    gutemine

    2 Mal editiert, zuletzt von Lost in Translation ()


  • Sollte das also wirklich so im SSL beim normalen Flashen integriert sein, dann verstehe ich die Erfahrungen, die wir über die Jahre mit der "Recover Bad Sectors"-Option gemacht haben, einfach nicht..


    Mir scheint, die Empfehlung 'bad sector recovery' zu aktivieren wird auch viel zu leichtfertig gegeben und ist kaum mal angebracht. Der Tip scheint mir zu einer Art urban legend geworden zu sein, die fast als Allerweltsheilmittel gilt. Ich denke das kommt daher, dass die meisten Nutzer denken, dass 'Bad sector recovery' genau umgekehrt funktioniert. Ging mir auch so.

  • Wir beide hatten es doch schon mehrfach darüber, sirdir :smiling_face:


    Ich kenne den Code für's Flashen im SSL nicht und muss mich auf Ghosts Aussage bezüglich der Implementierung verlassen.
    Gutemines Tests scheinen diese ja zu untermauern.


    Als Allheilmittel sehe ich die Bad Block Recovery Option nicht.
    Ich kann nur aus eigenen Erfahrungen und Beobachtungen berichten, in welchen Fällen sie hilft.
    Boxen, die auf einmal nicht mehr booten / und/auch nach dem normalen Flashen über das Webif nicht mehr booten, lassen sich mit der Bad Block Recovery Option wieder sauber flashen und booten danach.
    Das hatte ich bei meinen eigenen Boxen (vor Ewigkeiten schon bei der alten DM800, Jaher später bei der 7020HD), im direkten Bekanntenkreis (mit einer 8k, die partout nicht mehr booten wollte und x mal ohne Besserung normal geflashed wurde), in diversen Boards (u.a. hier im Dreamboard, im Merlinboard und im 7020HD VIP Board) und vor Kurzem mit Ricardo live im Chat.


    Die Wirksamkeit der Option also als urbane Legende abzutun, halte ich für etwas überzogen.
    Wenn sie wirklich so implementiert ist, wie Ghost und gutemine das sagen, dann verstehe ich einfach nicht, warum sie in den o.g. Fällen überhaupt hilft und ein normales Flashen nicht ausreicht.


    Hier besteht für mich also eine Divergenz zwischen Theorie und Praxis, die ich mir nicht erklären kann.

  • Was ich ein wenig in der Diskussion vermisse, sozusagen als "alternativen Loesungsvorschlag",
    ist die Moeglichkeit, schon im SSL der Box implementiert, von einer alternativen Quelle zu
    starten, sodass GARNICHT in den Box-Flash geschrieben werden muss (Ausnahme: SSL).
    Nicht mit irgendwelchen Klimmzuegen/Tools, sondern einfach durch Einstellung im BIOS, die
    dann dafuer sorgt, dass der externe Speicher wie das interne Flash behandelt wird (inkl. der
    Moeglichkeit per WebInterface ein neues Image aufzuspielen oder gar per DreamUP).
    Also keine Notwendigkeit, erst mit einem PC das Speichermedium zu bearbeiten, Images
    auszupacken/umzupacken/zu konvertieren/zu patchen ..., sondern einfach einstecken, im
    BIOS deklarieren/einschalten und fertig ist die Laube (lies: das "Ersatzflash") und man kann
    so vorgehen, wie bisher mit dem internen Flash.
    Gehen da mal ein paar Bloecke zuviel kaputt, stecke ich einfach ein neues Medium rein und
    muss nicht den Flash in der Box reparieren lassen.
    Ja, es gibt LowFAT32 und die ganzen anderen super Tools, aber es KOENNTE auch ohne gehen,
    wenn DMM es wollte.


    Nur mal so als Anregung (vielleicht auch fuer Goliath, als "interne" Steckloesung (lies: im
    Gehaeuse eingesteckter Stick statt aufgeloetetem Flash)).

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.

  • Wenn du diese ganze Funktionalität ins Bios packen willst wo du ja kein Betriebsystem und auch nicht Treiber für alle devices hast wird das ziemlich mühsam. Sachen wie das Lablmounten das nur 1 halbe Codeseite ist da reinzumachen oder eben Dinge wie grub oder uboot sie könnten sind nun mal nicht vergleichbar. Insofern muss ich da DMM auch in Schutz nehmen vor Euren Wünschen.


    Und du denkst zu kompliziert, wenn die vorhandenen kernel Optionen ausreichen das du von einem stick oder SATA bootest dann brauch ich doch nicht das Bios um den zu befüllen oder zu flashen. Mit Block2mtd kann ich das Image praktisch direkt booten, sogar vom rawdevice eines sticks wenn es sein muss. Ein Tool um es dort drauf zu schreiben muss dann aber nicht im Bios sein.


    Aber bitte diskutiert das im nand(nf)write Thread, ich habe den ja nicht umsonst aufgemacht, weil das nichts mit den ubifs Problemen zu tun hat.


    LG
    gutemine

    3 Mal editiert, zuletzt von Lost in Translation ()

  • Und noch kurz was dazu warum das bad Blocks oft hilft, wobei ich da bei der Formulierung aufpassen muss:


    Sagen wir mal so - gewisse binaries (zu denen auch der SSL und die Treiber und auch enigma2 gehört) checken ihre Integrität, sprich ob sie gepatched wurden.


    Der check geht aber 'möglicherweise' nicht gut aus wenn was unmarkiertes Korruptes mitgezählt wird oder wenn unbenutzte Bad blocks falsche Checksums haben, etc.


    Nur beim Recover Bad blocks werden aber ALLE Blocks sauber gelesen geschrieben und nochmals gelesen womit dann diese binaries wieder glücklich sind und die box wieder bootet, oder zu crashen aufhört, ...


    Und bitte nicht weiter nachfragen - mehr an Infos dazu wird Euch auch DMM denke ich nicht geben.


    Und nein, DAS ist keine urbane Legende.

    Einmal editiert, zuletzt von Lost in Translation ()

  • Mmmhhh sorry.... das ist alles zu hoch für mich :grinning_squinting_face:
    Soll ichs jetzt nun versuchen die Bad Blocks wiederherzustellen oder nicht?

    Dreambox DM7080HD 2xDVB-S2

  • Versuchen kann man immer. aber in den Fällen um die es hier geht wird es wahrscheinlich nichts helfen.

  • Also liegt es vermeintlich am (für Clones mittlerweile) fast wirkungslosen Cloneschutz? Na super.. :thinking_face:
    Sollte das stimmen, so werden - wie immer - hauptsächlich legitime Nutzer durch ein DRM bestraft..


    Jedenfalls danke für die Aufklärung.

  • Ich habe gesagt das ich dazu keine Fragen beantworten werde, aber Ihr sollte auch nicht Sachen rein interpretieren.


    Und im OE 2.0 funktioniert das eigentlich ganz gut, wenn man von den kopierten Security Chips absieht ...

  • Ich versteh das ganze Problem hier nicht.


    Ich machen jeden Tag zwischen 50 und 100 E2 Neustarts (alle über FB), und hab ausser selbstgemachten GreenScreens noch keine Probleme gehabt.


    Allerdings benutze ich auch das DMM Experimental Image, oder ich hab die "eine" Box :smiling_face_with_horns:


    "Eine Box, sie zu knechten, sie alle zu finden, Ins Dunkel zu treiben und ewig zu binden"

  • Schlechte Rethorik, weil mit DRM hat das 0 zu tun :face_with_tongue:


    Und ja ich malträtiere meine Boxen auch recht heftig und das ubifs macht das genauso gut mit wie das jffs2.


    Mal sehen ob es von einem blockdevice genauso gut geht, weil das rambo 0.10 ist gerade zum Testen fertiggeworden, da macht ubigfs auf den kleinen Boxen plötzlich wieder Spass auch wenn es noch etwas umständlich ist

    Einmal editiert, zuletzt von Lost in Translation ()

  • Ich bin der Meinung, dass die Beschränkung von Software auf Originalhardware durchaus unter den Mantel des Sammelbegriffs "DRM" fällt, wenn auch nicht im engeren Sinne.
    Aber wir kacken hier Korinthen und von DMM wird zu dieser Thematik wahrscheinlich sowieso nichts mehr kommen.

  • Zum eigentlichen Problem denke ich schon, aber ohne verwertbare Inputs wie logs ist das auch für sie schwer.