Hier erläutere ich Schritt für Schritt, wie man ein USB-Display mit AX206-Chip unter Linux flashed und am VDR zum laufen bekommt. Der AX206 ist z.B. in dem digitalen Bilderrahmen von Pearl (DPF) verbaut. Aktuell bekommt man diesen nicht mehr bei Pearl, aber ähnliche Modelle sind noch in eBay zu finden. Mein DPF ist von LinkDelight.
Warum das DPF hacken?
Eigentlich stellt man die Frage am besten gar nicht. Durch den „Hack“ kann man das DPF an einem PC als z.B. Infodispay betreiben. Ebenfalls läuft das Display an einer Dreambox, an Routern mit DD-WRT, an der Dockstar usw.. Am VDR sieht das ganze dann so aus:
Ich denke, damit ist die Frage auch schon beantwortet 😉
Vorbereitung:
An Hardware benötigt man:
- Einen digitalen Bilderrahmen mit AX206 Chip
- ein kurzes USB Kabel (nicht das beiliegende nehmen. Es kann zu Kontaktproblemen beim flashen kommen).
- Einen Linux PC oder eine Virtuelle Installation
An Software benötigt man:
Die aktuellen Tools und Firmware-Builds könnt ihr in diesem Thread im VDR-Portal erhalten.
01. Folgende Pakete müssen installiert, bzw. geladen werden:
sudo apt-get install wget subversion libtool automake autoconf zlib1g-dev python python-dev libssl-dev libusb-dev libc6 sdcc sdcc-libraries
02. Die aktuelle dpf-ax Version aus dem SVN herunterladen
svn checkout http://svn.code.sf.net/p/dpf-ax/code/trunk/. dpf-ax
03. Den IntelHex Konverter laden und an die richtige Stelle kopieren:
wget http://linuxnetwork.li.funpic.de/files/intelhex-1.3.tar.gz tar -xvzf intelhex-1.3.tar.gz intelhex-1.3/intelhex/__init__.py cp intelhex-1.3/intelhex/__init__.py dpf-ax/src/intelhex.py
04. Nun erstellen wir erst einmal alle Firmwaredateien für das DPF.
cd dpf-ax sudo make sudo make firmware cd tools
05. Vor dem Flashen.
Nun schließen wir das USB Kabel an DPF und PC an. Danach wählen wir am DPF über
MENU -> USB CONNECT -> YES aus um das Device, welches wir später flashen wollen, zu erfahren.
Mittels dmesg sollten wir nun eine ähnliche Ausgabe erhalten:
usb 2-1: new full-speed USB device number 8 using uhci_hcd usb 2-1: New USB device found, idVendor=1908, idProduct=0102 usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0 usb 2-1: Product: Digital Photo Frame usb 2-1: Manufacturer: BUILDWIN scsi6 : usb-storage 2-1:1.0 scsi 6: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 6:0:0:0: Attached scsi CD-ROM sr1 sr 6:0:0:0: Attached scsi generic sg2 type 5
In meinem Fall lautet das richtige Device sg2.
Ob es sich bei dem DPF um ein unterstütztes Model handelt, können wir wie folgt prüfen:
python ./identify.py /dev/sg2 Detecting & reading dpf flash... Opening generic SCSI device '/dev/sg2' Manufacturer: Winbond Size : 1 MB Reading 100000 bytes from flash... Flash written to file 'fulldump_20130603-110055.bin'. Looking for firmware.............: Found (buildwin, 320x240 px). Looking for Openwin..............: Found. Looking for LcdIniTbl............: Found. Looking for backlight & contrast.: Found, Found. Looking for known signatures.....: Found. Your dpf is compatible with model ['focal_custom_2'].
Wie man sieht, handelt es sich bei meinem DPF um ein Modell vom Typ „focal_custom_2„. Bei der Prüfung wurde automatisch ein Backup der original Firmware gemacht. Sollte etwas schief gehen, kann man wieder zur originalen Firmware wechseln.
Nun geht´s ans flashen.
Dafür muss das DPF in den Flash-Mode gebracht werden. Dies geschieht wie folgt:
- Reset drücken und halten
- Menütaste Drücken und halten
- Reset loslassen
- nach 2 Sekunden Menütaste loslassen.
Das DPF sollte nun schwarz sein. Mit dem Befehl lsusb prüfen wir nun, ob sich das DPF im Flash-Mode befindet:
sudo lsusb Bus 002 Device 011: ID 1908:0102 GEMBIRD
Es kann sein, dass beim Flashen der Fehler „Error: Failed to claim usb device!“ erscheint. Der Fehler besagt, dass das DPF noch vom System verwendet wird. um diesen Fehler zu umgehen geben wir vorbeugend den Befehl sudo ./hiddetach ein.
./restore.py ../src/fw_focal_custom_2.bin -f # ACHTUNG: durch den Parameter -f wird die Firmware ohne Rückfragen geschrieben! Found AX206 DPF (bootloader) Manufacturer: Winbond Size : 1 MB Erase full flash... Flashing sector 0... Flashing sector 1... Flashing sector 2... Flashing sector 3... Flashing sector 4... Flashing sector 5... Executing applet.. # Fertig!
Nun bootet das DPF mit der geänderten Firmware. Das lässt sich dran erkennen, dass euch ein paar Augen ansehen 😉
Wie man das DPF nun an den VDR anbindet erfahrt ihr hier: Pearl DPF AX206 an VDR