IPFire und das AX206-Display
Unter Linux gibt es dank des lcd4linux-Projekts die Möglichkeit, LC-Displays anzusteuern - beispielsweise, um Statusinformationen auszugeben. Vor einigen Jahren gab es bei einigen Versandhäusern, wie Pearl, einen besonders günstigen digitalen Bilderrahmen, der mit einer alternativen Firmware auch mit lcd4linux betrieben werden kann. Seitdem gibt es zahlreiche vergleichbare Bilderrahmen - der entsprechende Chipsatz lautet ax206. Wer nach diesem Chipsatz oder "dpf lcd4linux" sucht, dürfte schnell fündig werden. Ich hatte mir vor einigen Jahren einige solcher Bilderrahmen bestellt und beim Frühjahrsputz kam dir der Gedanke, man könnte ja mal wieder etwas damit basteln...
Anlässlich der kürzlichen IPFire-Migration, kam mir gleich der Gedanke, ein Statusdisplay zu basteln. Glücklicherweise gibt es hierfür entsprechende Pakete in der IPFire-eigenen Paketverwaltung PakFire.
Patchen des Bilderrahmens
Zuerst muss der Bilderrahmen jedoch mit einer alternativem Firmware versehen werden, um ihm die gewünschte Fähigkeit zu entlocken. Auf Sourceforge gibt es eine Sammlung namens dpf-ax - interessant sind hier die folgenden zwei Downloads:
dpf-ax_*.tgz
dpf-ax_firmware_*.zip
Das erste Archiv beinhaltet die notwendigen Tools zum Patchen, während der zweite Download verschiedene Firmware-Dateien beinhaltet. Neben dem ax206-Display werden auch einige andere Bilderrahmen (dpf, digital picture frame) unterstützt. Im Wiki des Projekts sind alle unterstützten Geräte aufgelistet: [klick mich!]
Übrigens eignen sich CentOS und Red Hat Enterprise Linux 6 und 7 nicht zum Patchen des Bilderrahmens. Vermutlich sind hier einige Bibliotheken zu alt. Ich habe für die folgenden Schritte eine aktuelle Ubuntu-Version verwendet.
Nach der Installation von Ubuntu (oder einer vergleichbaren Distribution) müssen USB- und Python-Entwicklungsdateien installiert werden. Darüber hinaus müssen auch die Archive entpackt werden:
1# apt-get install libusb-dev python-dev
2# tar xf dpf-ax_*.tgz
3# unzip dpx-ax_firmware_*.zip
4# cd dpf-ax
Anschließend wird der Bilderrahmen per USB angeschlossen und in den Bootloader-Modus versetzt. Dazu wird bei meinem Gerät der RESET-Knopf gedrückt und gehalten, anschließend wird der MENU-Knopf kurz gedrückt und anschließend RESET losgelassen. Das Display wird daraufhin schwarz, das Gerät wird wie folgt erkannt:
1# dmesg
2...
3[1227170.370053] usb 2-1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
4[1227170.370069] usb 2-1: Product: BL206v1.0.0
5[1227170.370085] usb 2-1: Manufacturer: BUILDWIN
6[1227170.370099] usb 2-1: SerialNumber: 000001
7[1227180.381395] hid-generic 0003:1908:3318.0001: timeout initializing reports
8[1227180.386240] hid-generic 0003:1908:3318.0001: hiddev0,hidraw0: USB HID v2.01 Device [BUILDWIN BL206v1.0.0] on usb-0000:00:0f.4-1/input0
9
10# lsusb
11...
12Bus 002 Device 006: ID 1908:3318 GEMBIRD
Die folgenden Befehle versetzen das Gerät in einen Modus zur Installation der Firmware:
1# cd tools
2# ./hiddetach
3Detaching dpf at 1-1.2:1.0... done
Für mein Gerät lässt sich die Firmware wie folgt installieren:
1# ./restore.py ../src/fw_taobao.bin -f
2Found AX206 DPF (bootloader)
3Manufacturer: Macronix
4Size : 2 MB
5Erase full flash...
6Flashing sector 0...
7Flashing sector 1...
8Flashing sector 2...
9Flashing sector 3...
10Flashing sector 4...
11Flashing sector 5...
12Executing applet..
Bei anderen Geräten wird die Firmware mit etwas Glück wie folgt automatisch erkannt und installiert:
1# ./restore.py
Nach der Installation der alternativen Firmware wird der Bilderrahmen wie folgt vom System erkannt:
1# dmesg
2...
3[1227170.370053] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
4[1227170.370069] usb 2-1: Product: USB-Display
5[1227170.370085] usb 2-1: Manufacturer: **hackfin** [1227170.370099] usb 2-1: SerialNumber: 001
6
7# lsusb
8...
9Bus 002 Device 005: ID 1908:0102 GEMBIRD
Nun fehlt nur noch eine gültige lcd4linux-Konfiguration, um den Bilderrahmen anzusprechen.
Konfiguration von IPFire
Um das Display unter IPFire anzusprechen, werden die folgenden Software-Pakete benötigt:
dpfhack
lcd4linux-*-dpf
Die Pakete können komfortabel über PakFire installiert werden.
Die rechts zu sehende Konfiguration habe ich auf GitHub hochgeladen.
1# curl -k https://raw.githubusercontent.com/stdevel/ipfire-tools/master/dpf/lcd4linux.conf -o /etc/lcd4linux.conf
2# curl -k https://raw.githubusercontent.com/stdevel/ipfire-tools/master/dpf/ipfire.png -o /etc/ipfire.png
3# curl -k https://raw.githubusercontent.com/stdevel/ipfire-tools/master/dpf/dpf_traf.sh -o /etc/dpf_traf.sh
4# chmod 0600 /etc/lcd4linux.conf
5# /etc/init.d/lcd4linux start
Anschließend sollte lcd4linux die entsprechenden Informationen anzeigen. Je nach Netzwerk-Konfiguration müssen ggf. die Netzwerkkarten in der Konfigurationsdatei angepasst werden - einen Blick in die Datei /etc/lcd4linux.conf
hilft hier weiter. 🙂
Für den Dauerbetrieb empfiehlt es sich übrigens, den Bilderrahmen aufzuschrauben und den Akku zu entfernen. Hier genügt entweder ein Seitenschneider und Klebeband oder ein Lötkolben. Einigen Erfahrungsberichten im Internet zufolge, soll der minderwertige Akku im Dauerbetrieb explodieren. 😉