"Bad Magic - umgehen"
-
- Image-Team
- Beiträge: 1015
- Registriert: Freitag 7. Februar 2003, 18:37
"Bad Magic - umgehen"
Villeicht könnte mal ins cvs mal eine Regel einbauen die eine Bad magic repariert/umgeht, wenn mein Snapshot defekt ist
kopiere ich immer aus cdkroot was ins Squashfs was nicht gestrippt ist und baue den Snapshot manuell neu, da ich sonst
nicht weis wie ich das reparieren kann.
Könnte man nicht eine regel einbauen die das automatisiert ?
Im Moment sehne ich mich echt nach "oldmake" zurück, das so im Moment aktuell zu halten ist eine riesen Hürde, ich blicke
kaum noch durch, hab auch öfters das Problem das irgendwelche alten Teile im Image landen obwohl sich im CVS das geändert hat.
Gruß Riker
kopiere ich immer aus cdkroot was ins Squashfs was nicht gestrippt ist und baue den Snapshot manuell neu, da ich sonst
nicht weis wie ich das reparieren kann.
Könnte man nicht eine regel einbauen die das automatisiert ?
Im Moment sehne ich mich echt nach "oldmake" zurück, das so im Moment aktuell zu halten ist eine riesen Hürde, ich blicke
kaum noch durch, hab auch öfters das Problem das irgendwelche alten Teile im Image landen obwohl sich im CVS das geändert hat.
Gruß Riker
-
- Einsteiger
- Beiträge: 160
- Registriert: Freitag 8. September 2006, 14:58
Re: "Bad Magic - umgehen"
Das hatte ich hier auch schon mal vorgeschlagen:
http://www.tuxbox.org/forum/viewt ... ic#p373716
http://www.tuxbox.org/forum/viewt ... ic#p373716
Re: "Bad Magic - umgehen"
Das löst das Problem aber auch nicht wirklich. Weiß denn keiner woher diese BM's kommen?tine1084 hat geschrieben:Das hatte ich hier auch schon mal vorgeschlagen:
http://www.tuxbox.org/forum/viewt ... ic#p373716
-
- Foren-Moderator
- Beiträge: 1119
- Registriert: Sonntag 9. Juni 2002, 13:28
Re: "Bad Magic - umgehen"
Hier mal weiterlesen
http://www.tuxbox-cvs.sourceforge.net/f ... 10&t=36032
http://www.tuxbox-cvs.sourceforge.net/f ... 10&t=36032
Re: "Bad Magic - umgehen"
Eine "fehlerbeseitigende" Endlösung ist das aber trotzdem nicht wirklich, oder hab ich da was übersehen.
-
- Foren-Moderator
- Beiträge: 1119
- Registriert: Sonntag 9. Juni 2002, 13:28
Re: "Bad Magic - umgehen"
joa.... die scheint immernoch nonpublic zu sein... Schade
-
- Einsteiger
- Beiträge: 160
- Registriert: Freitag 8. September 2006, 14:58
Re: "Bad Magic - umgehen"
Sowas müsste doch bestimmt irgendwie möglich sein oder?
Kann man nicht am ende das Image überprüfen lassen auf Bad Magics und wenn vorhanden dann automatisch eine Dummy Datei einfügen oder so? Ich mach das jetzt auch schon so aber manuell. Aber das würde sich bestimmt auch automatisieren lassen.
Kann man nicht am ende das Image überprüfen lassen auf Bad Magics und wenn vorhanden dann automatisch eine Dummy Datei einfügen oder so? Ich mach das jetzt auch schon so aber manuell. Aber das würde sich bestimmt auch automatisieren lassen.
Re: "Bad Magic - umgehen"
Das geht sicher, aber bekämpft nach wie vor nicht das eigentliche Problem. Bei Dateisystemen wie ex(fs) oder anderen gibts doch auch sowas wie repair tools. Wie machen die denn das, oder sind das andere Welten?
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: "Bad Magic - umgehen"
Sag mir *genau*, was der BMON nicht mag, und ich mach dir ein Tool, was die Bad Magics verhindert.
Re: "Bad Magic - umgehen"
Hilft das weiter, derget hat das dort etwas ausgeführt:seife hat geschrieben:Sag mir *genau*, was der BMON nicht mag, und ich mach dir ein Tool, was die Bad Magics verhindert.
http://www.tuxbox-cvs.sourceforge.net/f ... 38#p259338
Ansonsten wäre das mal wahnsinnig toll, wenn du das machen könntest!
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: "Bad Magic - umgehen"
Nein, das hilft nicht weiter, weil das, was derget da ausführt ist im checkimage schon mit drin. Das allein reicht aber nicht, um das zuverlässig zu fixen (checkimage meckert ja auch images an, die definitiv laufen).
Aber ich vermute, da wird sich auch keiner mehr ransetzen, die Nutzerbasis bröckelt ja (zum Glück) so langsam weg, und die, die noch am dbox-basteln interessiert sind, booten halt von Festplatte/CompactFlash
Aber ich vermute, da wird sich auch keiner mehr ransetzen, die Nutzerbasis bröckelt ja (zum Glück) so langsam weg, und die, die noch am dbox-basteln interessiert sind, booten halt von Festplatte/CompactFlash
-
- Developer
- Beiträge: 1475
- Registriert: Dienstag 4. Februar 2003, 22:02
Re: "Bad Magic - umgehen"
JtG-Riker hat geschrieben:Villeicht könnte mal ins cvs mal eine Regel einbauen die eine Bad magic repariert/umgeht, wenn mein Snapshot defekt ist
kopiere ich immer aus cdkroot was ins Squashfs was nicht gestrippt ist und baue den Snapshot manuell neu, da ich sonst
nicht weis wie ich das reparieren kann.
Könnte man nicht eine regel einbauen die das automatisiert ?
Yup, sowas habe ich seit Jahren geplant. Es ist sinnvoll und machbar, nicht die volle Images zu überprüfen, sondern die partition Images. Nachteil ist dass diese Tests auf die (eigentlich) chipgeometrieunabhängige Dateien chiparchitechturabhängig getestet sein muss (Es gibt partitionsimages die in 1x-Images OK sind, aber in 2x-Images nicht (aber nicht umgekehrt, meines Wissens)). Um etwas einfacher diskutieren zu können betrachte ich vorübergehend nur den Fall flash-neutrino-jffs2-2x. Dafür patche ich erstmals checkImage.c:tine1084 hat geschrieben:Kann man nicht am ende das Image überprüfen lassen auf Bad Magics und wenn vorhanden dann automatisch eine Dummy Datei einfügen oder so? Ich mach das jetzt auch schon so aber manuell. Aber das würde sich bestimmt auch automatisieren lassen.
Code: Alles auswählen
--- checkImage.c.orig 2009-06-04 16:43:05.000000000 +0200
+++ checkImage.c 2010-02-15 20:53:03.000000000 +0100
@@ -84,7 +84,7 @@
int getFlashType(int fd, int imgsize)
{
int pos = CHECKOFFSET;
- int checkIntervall = CHECKINTERVAL_1X;
+ int checkIntervall = CHECKINTERVAL_2X;
unsigned char value[23];
while ( pos <= imgsize)
sowie partition-images.mk:
Code: Alles auswählen
*** partition-images.mk~ Fri Aug 7 20:12:49 2009
--- partition-images.mk Mon Feb 15 20:33:00 2010
***************
*** 42,47 ****
--- 42,51 ----
$(flashprefix)/root-enigma.jffs2 $(flashprefix)/root-lcars.jffs2 $(flashprefix)/root-null.jffs2: \
$(flashprefix)/root-%.jffs2: $(flashprefix)/root-%-jffs2 $(hostprefix)/bin/mkfs.jffs2
$(hostprefix)/bin/mkfs.jffs2 -x lzma -b -e 0x20000 --pad=0x7c0000 -r $< -o $@
+ until $(hostprefix)/bin/checkImage $@ ; do \
+ dd if=/dev/urandom of=$</bad_magic_payload count=1 bs=256; \
+ $(hostprefix)/bin/mkfs.jffs2 -x lzma -b -e 0x20000 --pad=0x7c0000 -r $< -o $@; \
+ done
$(flashprefix)/root-radiobox.jffs2_lzma \
$(flashprefix)/root-neutrino.jffs2_lzma \
Zugegeben, dies wurde "das primitive Problem" nicht lösen, nur vermeiden. Das primitive Problem ist dass BMON (als universeller Bootloader) buggy ist, und auch "fixes" an mkXXXfs sind in diesem Sinn workarounds.
Das nenne ich selbstvertrauen!seife hat geschrieben:Sag mir *genau*, was der BMON nicht mag, und ich mach dir ein Tool, was die Bad Magics verhindert.
checkImage liefert beweislich "false positives" (angemeckerte Images laufen trotzdem), meines Wissens aber niemals "false negatives" (nicht angemeckerte Images laufen nicht). Deswegen, kann jemand (seife?) enweder mkXXXfs so zu modifizieren, oder ein postprozessor schreiben, so dass die Images den checkImagetest erfolgreich absolvieren, dann hat er/sie das Problem gelöst.seife hat geschrieben:... ist im checkimage schon mit drin. Das allein reicht aber nicht, um das zuverlässig zu fixen (checkimage meckert ja auch images an, die definitiv laufen).
Re: "Bad Magic - umgehen"
Na immerhin, das wäre mal ein Anfang!Habe nicht ausführlich getestet, scheint aber zu funktionieren. Sicherlich kann rhabarber die andere Fälle implementieren
Zugegeben, dies wurde "das primitive Problem" nicht lösen, nur vermeiden. Das primitive Problem ist dass BMON (als universeller Bootloader) buggy ist, und auch "fixes" an mkXXXfs sind in diesem Sinn workarounds.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: "Bad Magic - umgehen"
Hier der Patch, der Barfs Ideen in die Tat umsetzt: EDIT: Patch ist im CVS
Dieser Teil kommt später:
Dieser Teil kommt später:
Barf hat geschrieben:(in eine produktive Version wäre es sinnvoll, eine chipgeometrieoption einzuführen)Code: Alles auswählen
--- checkImage.c.orig 2009-06-04 16:43:05.000000000 +0200 +++ checkImage.c 2010-02-15 20:53:03.000000000 +0100
-
- Developer
- Beiträge: 1475
- Registriert: Dienstag 4. Februar 2003, 22:02
Re: "Bad Magic - umgehen"
Vielleicht sollte man zufügen, dass der Patch nicht eine ganz zufriedenstellende Lösung darstellt, ins besonderes nicht für der, der sich nur für 1x-Images intressiert. Nicht alle 2x-bad Root-Partitione sind 1x-bad.
Vielleicht wäre die bestmögligste Lösung ein configure-option --enable-badmagic-workaround=[1x,2x], (default egal) wobei checkImage eine Chipgeometrie-Kommandozeilenoption bekommt. (Und dann checkImage in checkimage umbenennen...)
Vielleicht wäre die bestmögligste Lösung ein configure-option --enable-badmagic-workaround=[1x,2x], (default egal) wobei checkImage eine Chipgeometrie-Kommandozeilenoption bekommt. (Und dann checkImage in checkimage umbenennen...)
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: "Bad Magic - umgehen"
Mein Vorschlag wäre, alle checkImage-configure-Optionen zu entfernen,
"checkimage --chip=1|2" einzuführen, jedes einzelne Image zu testen
und bei Bedarf /bad_magic_payload hinzuzufügen, sodass immer
funktionierende Images gebaut werden.
"checkimage --chip=1|2" einzuführen, jedes einzelne Image zu testen
und bei Bedarf /bad_magic_payload hinzuzufügen, sodass immer
funktionierende Images gebaut werden.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: "Bad Magic - umgehen"
Patch aktualisiert, wenn
deshalb habe ich folgenden Code hinzugefügt:
auftritt, führt der Patch zu einer Endlosschleife,!!! Flash size exceeded, if you flash this image you may get 'no system' !!!
deshalb habe ich folgenden Code hinzugefügt:
Code: Alles auswählen
if [ $? = "3" ]; then exit; fi;\
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: "Bad Magic - umgehen"
Patch aktualisiert und o.g. Veränderung eingebaut.Barf hat geschrieben: wobei checkImage eine Chipgeometrie-Kommandozeilenoption bekommt.
Testet es mal aus, bei mir wird ein kaputtes Image automatisch repariert
check 'root-neutrino.squashfs' for bad magic bytes.
!!! If you flash this image these bytes cause 'no system' !!!
1+0 Datensätze ein
1+0 Datensätze aus
256 Bytes (256 B) kopiert, 0,000253005 s, 1,0 MB/s
Creating big endian 3.0 filesystem on /root/tuxbox/work_glibc/image/cdkflash/root-neutrino.squashfs, block size 65536.
[...]
check 'root-neutrino.squashfs' for bad magic bytes.
No bad magic bytes found
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: "Bad Magic - umgehen"
Habs jetzt ein paar mal laufen lassen, nur jetzt hab' ich sowas wie einen Vorführeffekt, also bisher gabs nichts zu reparieren Melde aber wenn sich was tut!
-
- Contributor
- Beiträge: 1833
- Registriert: Mittwoch 10. April 2002, 15:39
Re: "Bad Magic - umgehen"
habs seit heute auch mal eingebaut, mal sehen wie es die nächsten tage läuft..
-
- Interessierter
- Beiträge: 84
- Registriert: Freitag 25. Dezember 2009, 12:03
Re: "Bad Magic - umgehen"
@rhabarber1848,
könntest du bitte den patch noch mal aktualisieren?
könntest du bitte den patch noch mal aktualisieren?
Code: Alles auswählen
patching file cdk/configure.ac
Hunk #1 succeeded at 947 (offset 2 lines).
-
- Interessierter
- Beiträge: 84
- Registriert: Freitag 25. Dezember 2009, 12:03
Re: "Bad Magic - umgehen"
Habe es gerade getestet und scheint gut zu funktionieren. Von mir aus kann es ins cvs.
check 'root-neutrino.squashfs' for bad magic bytes.
!!! If you flash this image these bytes cause 'no system' !!!
1+0 Datensätze ein
1+0 Datensätze aus
256 Bytes (256 B) kopiert, 0,00012564 s, 2,0 MB/s
Creating big endian 3.0 filesystem on /home/bruno/dbox2/cdkflash/root-neutrino.squashfs, block size 65536.
...
check 'neutrino-squashfs.img2x' for bad magic bytes.
No bad magic bytes found
-
- Contributor
- Beiträge: 1833
- Registriert: Mittwoch 10. April 2002, 15:39
Re: "Bad Magic - umgehen"
scheint gut zu funktionieren..
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
-
- Einsteiger
- Beiträge: 110
- Registriert: Freitag 9. Januar 2009, 18:22
Re: "Bad Magic - umgehen"
Hier funktioniert es nicht!
Ich muss manuell beenden
Ich muss manuell beenden
Code: Alles auswählen
check 'root-neutrino.jffs2' for bad magic bytes.
[41m!!! If you flash this image these bytes cause 'no system' !!![0m
1+0 Datensätze ein
1+0 Datensätze aus
256 Bytes (256 B) kopiert, 0,00155237 s, 165 kB/s
check 'root-neutrino.jffs2' for bad magic bytes.
[41m!!! If you flash this image these bytes cause 'no system' !!![0m
1+0 Datensätze ein
1+0 Datensätze aus
256 Bytes (256 B) kopiert, 0,000577607 s, 443 kB/s
check 'root-neutrino.jffs2' for bad magic bytes.
[41m!!! If you flash this image these bytes cause 'no system' !!![0m
1+0 Datensätze ein
1+0 Datensätze aus
256 Bytes (256 B) kopiert, 0,000201111 s, 1,3 MB/s
check 'root-neutrino.jffs2' for bad magic bytes.
[41m!!! If you flash this image these bytes cause 'no system' !!![0m
1+0 Datensätze ein
1+0 Datensätze aus
256 Bytes (256 B) kopiert, 0,000193464 s, 1,3 MB/s
check 'root-neutrino.jffs2' for bad magic bytes.
[41m!!! If you flash this image these bytes cause 'no system' !!![0m
1+0 Datensätze ein
1+0 Datensätze aus
.
.
.
1+0 Datensätze ein
1+0 Datensätze aus
256 Bytes (256 B) kopiert, 0,000556541 s, 460 kB/s
check 'root-neutrino.jffs2' for bad magic bytes.
[41m!!! If you flash this image these bytes cause 'no system' !!![0m
make: *** Datei »/home/FlatTV/Image/dbox2/cdkflash/root-neutrino.jffs2« wird gelöscht
make: *** [/home/FlatTV/Image/dbox2/cdkflash/root-neutrino.jffs2] Unterbrechung