DPF AX206 Chip + LCD4Linux

Hier wird beschrieben wie man einen digitalen Bilderrahmen (DPF) mit dem AX206-Chip am IPCop v2.0.x zum laufen bekommt. Bei dieser Anleitung gehts speziell um das Pearl-DPF, in derem der AX206-Chip verbaut wird.
Mit Hilfe des DPF-Hacks von hackfin (DPF hacking part two) ist es möglich diesen Bilderrahmen von Pearl als USB-Display in Verbindung mit LCD4Linux zu benutzen. Mit den zusätzlichen Modifikationen machen die Benutzung noch komfortabler. Mit der Version 0.200dev des Firmware-Hacks (*.bin Files) stellt hackfin eine fertige DPF-Firmware mit diversen Mods (silent, fastoff, nowelcome) in sich vereint, bereit. Mit dem Windows-Tool SPI Programmer kann man diese Dateien auf das DPF flashen. Nachteil hierbei: Die Firmware erkennt nicht jedes Pearl-DPF!
Unter Linux gibt es aber schon Abhilfe: z.B. mit dem fastoff-Mod von superelchi (VDR Forum) kann man das DPF auch unter Linux flashen bzw nachpatchen.

Und auf dieser Seite wird der Firmware-Hack mit seinen Modifikationen als Linux-Variante behandelt.

Hinweis
Die Anleitung zuerst bis zum Ende lesen! Danach entscheiden ob man sich das zutraut oder nicht

Alles was dazu gebraucht wird:

  • Einen digitalen Bilderrahmen von Pearl mit dem AX206-Chip (Bezugsquellen: Pearl-Shop, Ebay)
  • Kein billig USB-Kabel benutzen (nicht das beiliegende Kabel nehmen, Brickgefahr beim flashen!)
  • Eine Linux-Distribution zum flashen der Firmware
  • DPF-Hack: entweder eines der fertigen Download-Pakete benutzen oder ggf. den Hack selbst kompilieren
  • LCD4Linux mit AX206-Chip Support (gibts als fertiges Addon für IPCop 2.0.x weiter unten)
  • Idealerweise Kenntnisse bei der Konfiguration von LCD4Linux um später eigene Anpassungen zu machen
  • Optional: SPI Programmer (Windows-Tool) zum wiederherstellen der originalen Pearl-Firmware


Download-Pakete

Enthalten ist folgendes:

  • DPF-Hack in der Version 0.12devel
  • fastoff-Mod: in 2 Sekunden in den Debug-Mode
  • silent-Mod: das erste Bild im Flash-Speicher wird angezeigt, bis LCD4Linux gestartet wird

Ohne den Firmware-Hack geht nix. Folgende bereits fertig kompilierte Download-Pakete stehen zur Auswahl:

Download-Pakete
md5sum
Python Version
9912331642373216c614fcba8dafea77
v2.6 (32 Bit)
3e7667259731a7633e10cbbc84beec24
v2.7 (32 Bit)
0324b28c56cacef30aa32ec10859c04a
v2.7 (64 Bit)

Um den Firmware-Hack selbst zu kompilieren, weil man z.B. eine andere Python Version installiert hat: Hier weiter lesen!

Wenn das passende Download-Paket dabei ist, gehts weiter...


Als nächstes gilt es folgende Punkte zu beachten!

  • Den eingebauten Akku ausbauen (4 Schrauben lösen, die 2 Kabel an den Lötpunkten abtrennen). Dieser ist beim Betrieb als USB-Display entbehrlich
  • Zum flashen das DPF direkt am PC anschliessen, nicht über einen USB-Verteiler
  • Nicht das mitgelieferte USB-Kabel verwenden! Dieses Kabel weist zusammen mit der USB-Buchse Kontaktschwächen auf. Die Folge kann ein Brick während des flashens sein! Weitere Anzeichen: Im Config-Mode wird "!! Low Power!!" oder Red-Screen "Weak Power! Turning off" angezeigt
  • Im Speicher vom DPF sollte nicht mehr als 1 Bild gespeichert sein
  • Nach dem flaschen ist der Betrieb als digitaler Bilderrahmen nicht mehr möglich! Mit dem SPI-Programmer kann man aber den Ursprungszustand wieder herstellen


Vorbereitungen

Bevor man mit dem flaschen beginnt, ist es ratsam die auf dem Bilderrahmen gespeicherten Bilder zu löschen. Dazu benötigt man ein Windows-OS, das Tool zum Transfer befindet sich im ROM vom Bilderrahmen: USB-Kabel anschliessen, per Menü-Taste mit dem PC verbinden. Bilder löschen, und ein eigenes nach Wahl auf das DPF übertragen. Ist kein Bild gespeichert, so gibts später nur einen weissen Screen mit einer Textzeile mit "Aucune photo".

Beispielbilder - IPCop-Logo
ipcop_01.bmp (weisser Hintergrund)
ipcop_02.bmp (schwarzer Hintergrund)


Firmware-Hack für das Pearl-DPF

Die Vorgehensweise bezieht sich auf das flashen eines Pearl-Display dass noch mit keinem Hack geflasht wurde! Wenn es bereits geflasht wurde, und dieses mit den zusätzlichen Mods nachgeflasht werden soll, dann den Punkt "DPF mit den Modifikationen nachpatchen" weiter unten lesen!

(Es folgen Befehle die in der Linux-Konsole eingegeben werden)
Unter Ubuntu für direkten Hardwarezugriff die Root-Rechte einholen
sudo su

Das Archiv entpacken und in das Verzeichnis wechseln
tar -xzf dpf_hack*.tar.gz
cd dpf_hack*

USB-Kabel anschliessen und per Menütaste "PC verbinden --> Ja" auswählen. Mit lsusb nach der Vendor/Produkt-ID gucken. Die Ausgabe sollte folgendes auflisten: ID 1908:0102.
Noch genauer gehts mit lsusb -v -d 1908:0102 (lsusb_org). Damit stehen die Chancen schon mal sehr gut dass man ein passendes DPF hat. Die letzte Gewissheit bringt dann aber das Script mit dem Identifier.

dmesg liefert uns auch einige Infos. Darunter das Device dass mit dem Hack geflascht werden soll

usb 2-1: new full speed USB device using uhci_hcd and address 2
usb 2-1: configuration #1 chosen from 1 choice
Initializing USB Mass Storage driver...
scsi4 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 4:0:0:0: CD-ROM            buildwin  Photo Frame     1.01 PQ: 0 ANSI: 2
sr1: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray
sr 4:0:0:0: Attached scsi CD-ROM sr1
sr 4:0:0:0: Attached scsi generic sg2 type 5
usb 2-1: reset full speed USB device using uhci_hcd and address 2
ISO 9660 Extensions: Microsoft Joliet Level 3
ISOFS: changing to secondary root
Die rot markierte Zeile gibt uns Auskunft über das Device was wir suchen. Hier heisst das Device sg2

Jetzt in das dpf_hack Verzeichnis gehen und den Hack starten
python hackit.py /dev/sg2

Hier wird nochmal bestätigt das man ein passendes Display (rot markiert) für den Firmware-Hack hat

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 >
Mit yes und <Enter> bestätigt man den Warnhinweis und der Firmware-Hack wird auf das Display geflasht

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 fastoff.ihx
Patching sector addr 180000 with fw_pearl_landscape_silent.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.

lsusb -v -d 1908:0102 nach dem flashen: lsusb_mod

Jetzt das Kabel abziehen und wieder anstecken.

Wenn das DPF nach dem Pinguin-Bootup direkt in den Debug-Mode (Bild mit Credits-Anzeige oben) geht, heisst es: Geschafft! :)


DPF mit den Modifikationen nachpatchen

Diesen Schritt braucht man nur durchführen, wenn das DPF bereits mit dem 0.12devel-Hack aber ohne den Mods geflasht wurde. Mit diesem Update werden die Mods "fastoff" und "silent" nachgepatcht.

1. Eines der Download-Pakete runterladen (oder ggf. mit den Sourcen selbst kompilieren)

(Es folgen Befehle die in der Linux-Konsole eingegeben werden)
Unter Ubuntu für direkten Hardwarezugriff die Root-Rechte einholen
sudo su

2. Das Archiv entpacken und in das Verzeichnis wechseln
tar -xzf dpf_hack*.tar.gz
cd dpf_hack*

3. DPF an den PC anschliessen und in den Debug-Modus bringen

4. Update durchführen
python update_mods.py

Found AX206 DPF
Got LCD dimensions: 320x240
Writing firmware...
Lock flash 1
Lock flash 0
Lock flash 1
Lock flash 0

Fertig!


LCD4-AX206: Addon für den IPCop v2.0.x

Nun braucht man nur noch ein passendes LCD4Linux-Binary der den notwendigen AX206 DPF-Treiber enthält.

Hinweis
Das in diesem Addon enthaltene LCD4Linux-Binary nur mit dem Pearl-Display benutzen! Für die anderen Displays mit denen LCD4Linux kompatibel ist, gibt es bereits ein Addon: Klick!

Das LCD4-AX206 Addon beinhaltet LCD4Linux v0.11.0 (SVN 1171) mit dem DPF-Treiber AX206, eine komplette Config-Datei (lcd4linux.conf) sowie ein RC-Script dass beim IPCop-Start LCD4Linux automatisch startet.

Download
md5sum
IPCop Version
db18bee0ff3879736152e11970c21dae
2.0.x

Installation:
Das Archiv mit einem SFTP/SCP-Client auf den IPCop ('/root'-Ordner) kopieren, entpacken und das Installationsmenü aufrufen
tar xvfz lcd4-ax206*.tar.gz
cd lcd4-ax206*
./install

Die Konfigurationsdatei unter /etc/lcd4linux.conf nach eigenen Wünschen anpassen
Zum testen mit folgenden Parameter starten: lcd4linux -Fvv

Wenn keine Fehler angezeigt werden, hat man auch diesen Teil geschafft :)


Troubleshooting & Hints

Hier weiter lesen...
Factory Reset

Um das DPF in seinen Ursprungszustand und Funktion zurück zu versetzen, braucht es das Windows-Tool SPI Programmer, die originale Pearl-Firmware und ein paar Mausklicks.

1. Zip-Archiv mit den benötigten Dateien herunterladen [ md5sum: 64a562e112980707ca24c9db7c43161d ] und entpacken
2. Unter Windows die ProgSPI.exe aufrufen
3. In den Settings "Programm" auswählen und "Reset" anhaken
4. Mit Browse die Datei "Pearl DPF unmodified firmware.bin" auswählen
5. Am DPF Reset-Button und dann Menü-Taste kurz zusammen gedrückt halten und los lassen
6. Wenn "Channel 1" von rot (N) auf grün (R) gewechselt hat, auf Execute klicken. Bei der Auswahl des Chips auf "Winbond 25P16" klicken.

Der Flash-Vorgang dauert einige Minuten, dabei nicht das Kabel abziehen oder das Programm beenden/abwürgen! Nach der Meldung "Program complete" und anschliessenden DPF Auto-Restart verhält sich das zuvor gehackte DPF wieder wie ein normales DPF wie man es gekauft hatte.


Gallerie