Wers noch nicht gesehen hat: es gibt inzwischen eine modifizierte Firmware für das Pearl Display, die statt nach mehreren Minuten nach ca. 5 Sekunden automatisch in den Hack-Modus umschaltet.
Angekündigt hab ich die in diesem Thread.
Da es dazu wohl noch ein paar Fragen gibt und es in dem Thread momentan hauptsächlich um
[Schleichwerbung ON]
ein wunderschönes graphlcd-Skin für das Pearl Display geht (Video hier, Installation hier)
[Schleichwerbung OFF]
mach ich hier mal nen neuen Thread auf.
Update 08.03.2012: Beschreibung aller Mods eingefügt. Für die, die schon Mods nach einer älteren Anleitung gemacht haben: die "fastoff.ihx" hat sich geändert und heisst jetzt "fastoff2.ihx". Hier ist die Wartezeit nochmals verkürzt (notwendig für die "nowelcome"-Mod).
Update 16.03.2012. Ein paar zusätzlich "fastoff"-Varianten mit anderen Umschaltzeiten zugefügt. Gibts hier.
Worum gehts?
Es gibt inzwischen mehrere Modifikationen - sowohl für die Original-Firmware des Pearl-Displays wie auch für die hackfin-Firmware - die dem Display ein paar Dinge abgewöhnen, die den Einsatz als VDR-Display entgegenstehen. Die meisten dieser Mods lassen sich kombinieren, so dass man sich seine eigene Version ganz nach Belieben zusammenstellen kann.
Welche Mods gibt es?
fastoff
Damit hats angefangen.
Die hackfin-Firmware wechselt in den BSOH-Modus ("Blue Screen of Hack") wenn man für 2 Sekunden die MENÜ-Taste drückt oder einige Minuten wartet. Das ist blöd, weil man nach dem Einschalten des Rechners entweder hinrennen und "MENÜ" drücken oder die ersten Minuten ohne Displayanzeige im VDR leben muss.
Diese Mod bewirkt, dass nach dem Einschalten fast sofort in den BSOH gewechselt wird. Nach dem Einschalten kommt der "Welcome"-Screen, dann das erste auf dem Display gespeicherte Bild (Standard: die Delfine) und dann wechselt das Display sofort in den BSOH-Modus.
silent
Nach dem Wechsel in den BSOH-Modus wird das Display gelöscht und danach mit einem blauen Bildschirm inklusive einiger Credits / Infos angezeigt. Das ist auch blöd, weil - wer will sich schon einen blauen Bildschirm angucken bis der Rechner hochgefahren ist und die Kontrolle über das Display übernimmt.
Diese Mod unterdrückt den blauen Bildschirm und lässt das zuletzt angezeigte Bild im Display stehen.
Erkennen tut man den Wechsel in den BSOH nur noch daran, dass das Bild einen Tick heller wird und oben eine (kaum lesbare) "Credits" Zeile erscheint. Bye bye BSOH, wir werden dich vermissen.;)
Wenns ein anderes Bild sein soll einfach das Display unter Windows anschließen, MENÜ drücken, "Mit PC verbinden" wählen und mit der auf dem Display gespeicherten Software "DPFMate" was Hübsches draufladen.
Hinweis 1: es gibt Meldungen, dass DPFMate unter Windows abstürzt. Kann ich nicht nachvollziehen. Bei mir läufts unter Win XP und Windows 7 ohne Probleme.
Hinweis 2: manche Displays weigern sich anscheinend mit DPFMate zusammenzuarbeiten. Da kann ich leider nix machen. Dann eben die Delfine.
nowelcome
Der "Welcome"-Screen mit den Pinguinen nerft. Diese Mod schaltet ihn einfach ab. Das Display startet sofort mit dem ersten gespeicherten Bild. Hat den Vorteil, dass das Display zusammen mit "fastoff" noch schneller in den BSOH-Modus geht.
Hinweis: diese Mod lässt sich nicht nachträglich unter Linux installieren. Es muss was im Sektor 0 der Firmware geändert werden und das lässt die hackit.py aus Sicherheitsgründen nicht zu. Hier muss zuerst eine neue Grund-Firmware (die "Pearl DPF unmodified nowelcome firmware.bin") unter Windows geflashed werden. Das sollte auf jedem Display gehen. Danach unter Linux wie gewohnt hacken.
serial
Diese Mod ist für die, die mehr als ein Display am Rechner betreiben. Da alle Displays die gleiche Seriennummer haben, kann man die (z.B. in einer Udev-Rule) nicht unterscheiden. In welcher Reihenfolge die Displays erkannt werden ist Glückssache.
Die Mod ändert die Seriennummer des Displays ab. Standard ist eine Serial von "0.1", mit dieser Mod könnt ihr Serials von "0.2" bis "0.9" einstellen. Ich hoffe, das reicht. Oder hat jemand mehr als 9 Display am selben Rechner?
Wie krieg ich die Firmware aufs Display?
Windows-Variante
Wenn bei dir das Flashen nach dieser Anleitung funktioniert, kannst du dir die kompletten Firmware-Images hier runterladen.
Drin sind folgende Varianten:
"Pearl DPF hackfin landscape 0.12devel.bin" - Landscape Hack ohne Mods.
"Pearl DPF hackfin landscape fastoff.bin" - Landscape Hack mit "fastoff"-Mod.
"Pearl DPF hackfin landscape fastoff silent.bin" - Landscape Hack mit "fastoff"- und "silent"-Mod.
"Pearl DPF hackfin landscape fastoff silent nowelcome.bin" - Landscape Hack mit "fastoff"-, "silent"- und "nowelcome"-Mod.
"Pearl DPF hackfin portrait 0.12devel.bin" - Portait Hack ohne Mods.
"Pearl DPF hackfin portrait fastoff firmware.bin" - Portrait Hack mit "fastoff"-Mod.
"Pearl DPF hackfin portrait fastoff silent.bin" - Portrai Hack mit "fastoff"- und "silent"-Mod.
"Pearl DPF hackfin portrait fastoff silent nowelcome.bin" - Portrait Hack mit "fastoff"-, "silent"- und "nowelcome"-Mod.
"Pearl DPF unmodified firmware.bin" - Original Pearl-Firmware ohne Hack und Mods.
"Pearl DPF unmodified nowelcome firmware.bin" - Original Pearl-Firmware mit "nowelcome"-Mod.
Linux-Variante
Voraussetzung: installierte dpfhack-0.12devel, z.B. nach dieser oder dieser Anleitung.
Wechsle in das fw-Verzeichnis des Hacks.
Entpacke die angehängte Datei "pearl-mods.zip" in das Unterverzeichnis "hexfiles".
Jetzt muss noch die profiles.py angepasst werden.
Suche in der profiles.py nach:
# Pearl 320x240
patch_320x240 = [
(COPY, [0x000000, 0x1f0000]), # Copy sector 0
(PATCH, [0x0, 0x1f0000], "jmptbl_pearl.ihx"),
(BINARY, [0x0, 0x190000], "font4x8.bin"),
(PATCH, [0x0, 0x180000], "fw_pearl.ihx"),
(37, [ 0x984e1a0a, 0x9ef54e54, 0xf0e0beea ], "p_start_pearl.ihx"),
]
Wenn dein Display schon gehackt ist, ändere das in:
# Pearl 320x240
patch_320x240 = [
# (COPY, [0x000000, 0x1f0000]), # Copy sector 0
# (PATCH, [0x0, 0x1f0000], "jmptbl_pearl.ihx"),
# (BINARY, [0x0, 0x190000], "font4x8.bin"),
# (PATCH, [0x0, 0x180000], "fw_pearl.ihx"),
# (37, [ 0x984e1a0a, 0x9ef54e54, 0xf0e0beea ], "p_start_pearl.ihx"),
# -- add mods here --
]
.. also alles durch den # in der ersten Spalte auskommentieren und die letzte Zeile ergänzen.
Wenn dein Display neu oder noch nicht gehackt ist, ändere das in:
# Pearl 320x240
patch_320x240 = [
(COPY, [0x000000, 0x1f0000]), # Copy sector 0
(PATCH, [0x0, 0x1f0000], "jmptbl_pearl.ihx"),
(BINARY, [0x0, 0x190000], "font4x8.bin"),
(PATCH, [0x0, 0x180000], "fw_pearl.ihx"),
(37, [ 0x984e1a0a, 0x9ef54e54, 0xf0e0beea ], "p_start_pearl.ihx"),
# -- add mods here --
]
.. nur letzte Zeile ergänzen.
Die Mods werden nach der Zeile "# -- add mods here --" eingefügt.
Für die "fastoff" Mod:
Für die "silent" Mod (portrait Variante):
Für die "silent" Mod (landscape Variante):
Für die "serial" Mod (portrait Variante):
# Serial for PORTRAIT firmware -- CAUTION: works ONLY for fw_pearl*.ihx firmware -- WILL BRICK DPF, IF fw_pearl_landscape*.ihx INSTALLED!!
(PATCH, [0x0, 0x180EE1], "serial_0.X.ihx"),
Für die "serial" Mod (landscape Variante):
# Serial for LANDSACPE firmware -- CAUTION: works ONLY for fw_pearl_landscape*.ihx firmware -- WILL BRICK DPF, IF fw_pearl*.ihx INSTALLED!!
(PATCH, [0x0, 0x180ED3], "serial_0.X.ihx"),
Dabei "serial_0.X.ihx" durch die gewünschte Serial ersetzen (also z.B. "serial_0.5.ihx").
ACHTUNG! "serial"-Patch muss zur installierten Firmware (portrait/landscape) passen! Sonst hab ihr einen Briefbeschwerer!
Nochmal der Hinweis: die "nowelcome"-Mod lässt sich nicht nachträglich unter Linux installieren. Hier muss zuerst eine neue Grund-Firmware (die "Pearl DPF unmodified nowelcome firmware.bin") unter Windows geflashed werden. Danach die Anweisung für noch nicht gehackte Displays befolgen.
Beispiel für eine "Pizza mit Allem" für ein schon gehacktes Display (landscape, "fastoff", "silent", "serial 0.5") würde das so aussehen:
# Pearl 320x240
patch_320x240 = [
# (COPY, [0x000000, 0x1f0000]), # Copy sector 0
# (PATCH, [0x0, 0x1f0000], "jmptbl_pearl.ihx"),
# (BINARY, [0x0, 0x190000], "font4x8.bin"),
# (PATCH, [0x0, 0x180000], "fw_pearl.ihx"),
# (37, [ 0x984e1a0a, 0x9ef54e54, 0xf0e0beea ], "p_start_pearl.ihx"),
# -- add mods here --
(PATCH, [0x0, 0x04A21D], "fastoff2.ihx"),
(PATCH, [0x0, 0x180000], "fw_pearl_landscape_silent.ihx"),
# Serial for LANDSACPE firmware -- CAUTION: works ONLY for fw_pearl_landscape*.ihx firmware -- WILL BRICK DPF, IF fw_pearl*.ihx INSTALLED!!
(PATCH, [0x0, 0x180ED3], "serial_0.5.ihx"),
]
Alles anzeigen
Schliess das Display an, geh in den BSOH und lass die hackit.py laufen.
Ausgabe sollte etwa so aussehen:
~/dpfhack-0.12devel/fw$ sudo python hackit.py usb0
Found AX206 DPF
Got LCD dimensions: 240x320
Reading flash...
done
Found matching version info
Identifier: pearl
Now patching. There is no 100% guarantee that your device will
work after doing this. You must never unplug the device from USB while
it is being updated.
Are you sure you take all risks and that you want to continue?
Type 'yes' to continue > yes
Patching sector addr 04a21d with fastoff2.ihx
Lock flash 1
Lock flash 0
Patching sector addr 180000 with fw_pearl_landscape_silent.ihx
Lock flash 1
Lock flash 0
Patching sector addr 180ed3 with serial_0.5.ihx
Lock flash 1
Lock flash 0
Now disconnect the DPF from USB.
To activate the 'developer mode':
Press and hold MENU while USB is plugged in.
If successful, you will get the 'USB connect' message and the device
will appear as non-USB storage device
To put the device back into (almost) original state working
as USB storage, press the RESET button.
Alles anzeigen
Sollte das Display nach dem Flashen sich merkwürdig benehmen oder nixmehr tun, flashe nochmal die Original-Firmware ("Pearl DPF unmodified firmware.bin" oder "Pearl DPF unmodified nowelcome firmware.bin") unter Windows (Link siehe oben) und mach nochmal den Hack nach der folgender Anleitung für neue Displays.
Beispiel für eine "Pizza mit Allem" für ein neues / noch nicht gehacktes Display (portrait, "fastoff", "silent", "serial 0.4") würde das so aussehen:
# Pearl 320x240
patch_320x240 = [
(COPY, [0x000000, 0x1f0000]), # Copy sector 0
(PATCH, [0x0, 0x1f0000], "jmptbl_pearl.ihx"),
(BINARY, [0x0, 0x190000], "font4x8.bin"),
(PATCH, [0x0, 0x180000], "fw_pearl.ihx"),
(37, [ 0x984e1a0a, 0x9ef54e54, 0xf0e0beea ], "p_start_pearl.ihx"),
# -- add mods here --
(PATCH, [0x0, 0x04A21D], "fastoff2.ihx"),
(PATCH, [0x0, 0x180000], "fw_pearl_silent.ihx"),
Serial for PORTRAIT firmware -- CAUTION: works ONLY for fw_pearl*.ihx firmware -- WILL BRICK DPF, IF fw_pearl_landscape*.ihx INSTALLED!!
(PATCH, [0x0, 0x180EE1], "serial_0.4.ihx"),
]
Alles anzeigen
Schliess das Display an, wähle "MENÜ", "Mit PC verbinden" und lass die hackit.py laufen.
Ausgabe sollte etwa so aussehen:
~/dpfhack-0.12devel/fw$ sudo python hackit.py /dev/sg2
Opening generic SCSI device '/dev/sg2'
Reading flash...
done
Found matching version info
Identifier: pearl
Now patching. There is no 100% guarantee that your device will
work after doing this. You must never unplug the device from USB while
it is being updated.
Are you sure you take all risks and that you want to continue?
Type 'yes' to continue > yes
Copying sector from 0x000000 to 0x1f0000...
Patching sector addr 1f0000 with jmptbl_pearl.ihx
Patching sector addr 180000 with fw_pearl.ihx
Analyzing module 37...
Patching from version 0 to 2
Patching sector addr 04a21d with fastoff2.ihx
Patching sector addr 180000 with fw_pearl_silent.ihx
Patching sector addr 180ee1 with serial_0.4.ihx
Now disconnect the DPF from USB.
To activate the 'developer mode':
Press and hold MENU while USB is plugged in.
If successful, you will get the 'USB connect' message and the device
will appear as non-USB storage device
To put the device back into (almost) original state working
as USB storage, press the RESET button.
Alles anzeigen
Bei mir hängt das Display an "/dev/sg2", musst du gegebenenfalls anpassen (siehe Tuts zu flashen).
Häh? Fastoff? Wie geht das?
Wie bekommt man das raus, das man zwei Bytes ändert ( 70, 17 in 35, 00) ?
Mir war einfach so.
Nee - im Ernst: hab mich mal bisschen ins SDK eingelesen. Das Gemeine ist, dass alle wirklich wichtigen Kommentare in Chinesisch sind.
Da gibts ne Routine, die die Auto-off-Time initialisiert ("Sleep_Delay_Init.ASM"). Wichtig ist hier diese Codesequenz:
mov R0,#Sleep_Dlay_Time
mov A,#0X70
movx @R0,A
inc R0
mov A,#0x17
movx @R0,A
mov R0,#AutoOffDelay
mov A,@R0
mov R2,A
mov R1,#2
mov R0,#Sleep_Dlay_Time
call lxMulB
Alles anzeigen
Das sind die Anzahl der Timer-Ticks bis das Display automatisch abschaltet. Der Timer tickt alle 10 ms - 10 ms * 1770H = 60.000 ms = 60 Sekunden. Das Ganze noch multipliziert mit dem AutoOffDelay (=10) macht eine Abschaltzeit von 600 Sekunden.
Was ich gemach habe ist einfach die Uhr etwas zu beschleunigen, d.h. die 1770H auf 0035H geändert. Dann ist die Minute nur noch 0,53 Sekunden lang. Das mit dem AutoOffDelay multipliziert, macht eine Ausschaltzeit von ca. 5 Sekunden.
Wenn du was anderes brauchst, die 0035 durch den gewünschten Wert ersetzen, ne Intel-Hex-File erstellen und flashen.
Zum Schluß die obligatorische DICKE, FETTE WARNUNG: die Mods sind NUR für das Pearl Display! Sie überschreibt teilweise ohne hinzugucken ein Stelle im Flash! Bei mir gehts - aber keine Garantie! Vor Gebrauch Gehirn einschalten!
Gruß
superelchi