Key-control
Aus M740 WikiWeb
Das eigens von MartinO für die M740AV entwickelte Kommando key-control bzw. key-control.sh ermöglicht es, sogenannte Menue-Makros zu programmieren. Darüberhinaus belegt es bestimmte, bislang von der Box nicht genutzte Tasten neu. Wird eine modifizierte lircd.conf-Datei verwendet, ist es auch möglich Tastendrücke umzudefinieren. So kann die 'EXIT'-Taste im Wiedergabemodus abgefangen werden, um in FW-Versionen kleiner 2.0.36 ein unbeabsichtigtes Beenden der Wiedergabe zu unterbinden.
Aktuell ist Version 8 für FW-Versionen < 2.0.36 und Version 10 für FW-Versionen > 2.0.43. Version 12 ist experimentell.
Inhaltsverzeichnis |
Features
- Menue-Macros: Einfache Programmierung und Wiederaufruf (durch zwei Tasten) von bis zu 14 Makros, die vom Grundmenu aus gestartet werden und aus beliebig langen CURSOR- und OK-Tastenfolgen bestehen dürfen. Details stehen weiter unten.
- Macro-Scripts: eigene Bash-Skripts können ähnlich wie Menue-Makros aufgerufen werden. Details stehen weiter unten.
- Program-Info: Nach Änderung des Senders im TV-Modus durch Programm-Nummer-Eingabe oder CURSOR_UP/CURSOR_DOWN wird automatisch die erweiterte Info-Leiste eingeblendet. Dieses Feature kann per Option -i abgeschaltet werden.
- Last-Station: OK wechselt im Live-TV mittels der PiP Funktion zum letzten Sender. Das funktioniert nur zuverlässig, wenn beide Tuner frei sind.
- Select-Station: Alternativ zu Last-Station (mit Option "-l") kann per OK das EPG aufgerufen werden, und dann ebenfalls mit OK der neue Sender gewählt werden, sofern zur Auswahl nur die CURSOR_UP/CURSOR_DOWN-Tasten benutzt wurden.
- Emergency-Reboot: <STOP> <1> <5> <9> <STOP> löst sofern noch möglich einen Neustart aus. Hilfreich, wenn wavebox abgestürzt ist, aber das Linux auf der Box noch läuft, um so ohne telnet und Stecker-ziehen die Box neu starten zu können.
- Die gelbe und blaue Tasten rufen auch im Wiedergabe-Betrieb die Timer- bzw. Aufnahmen-Ordner auf.
- Save-EXIT: Falls mittels lircd.conf der Code TV (das ist die "EXIT"-'Taste) auf EXIT umdefiniert wurde, so leitet das Skript nur dann den Code TV an wavebox weiter, falls sie sich zuletzt im Live-TV Modus befunden hatte. War dagegen ein Wiedergabe-Modus aktiv, so wird stattdessen versucht offene Menus mittels <MENU> <CURSOR_LINKS> zu beenden, was auch in den meisten Fällen recht zuverlässig funktioniert. Ein zweiter EXIT-Druck in Folge ruft in jedem Fall TV auf. Dieses Feature ist durch die in der FW geänderte Handhabung ab FW-Versionen 2.0.x obsolet und wurde wieder entfernt.
- Fast-Skip: (ab Version 11) Zahlentasten während der Aufnahmen-Wiedergabe spult die Aufnahme um die entsprechende Anzahl Minuten vor. Zum Vorspringen von mehr als 9 Minuten oder für Rücksprünge ist die Taste "0" zu drücken. Zahlentasten zu drücken, während die Wiedergabe "normal" pausiert wurde, führt leider zu ungewollten Ergebnissen.
Programmierung und Benutzung von Menue-Macros
- Zunächst wird jeweils aus dem TV oder Wiedergabe-Modus mit MENU das Grundmenu aufgerufen.
- Dann kann entweder mit STOP eine Aufzeichung gestartet werden: Alle CURSOR- und OK-Tastendrücke werden aufgezeichnet, bis eine Farb- oder Ziffern-Taste betätigt wird, unter dieser das Makro später wieder aufgerufen werden kann. Alle anderen Tasten brechen die Programmierung ab. Achtung: keinen Tastenrepeat verwenden, da nur jeweils ein Tastendruck aufgezeichnet wird.
- Oder es wird sofort eine Farb- oder Ziffern-Tasten gedrückt, um so die vorher gespeicherten Tastendrücke abzurufen.
Noch eine Warnung: bei Makros sollte man möglichst statt OK die Cursor-Rechts Taste benutzen. Denn falls die Box Kommandos verschlucken sollte, und so ein Makro einen falschen Pfad beschreitet, dann könnten durch OK Aktionen wie "Aufnahme wirklich löschen" oder "USB Festplatte formatieren" bestätigt werden! Mit Cursor-Rechts geht das aber nicht, dies ist also sicher.
Verwendung von Macro-Scripts
Macro-Scripts sind bash-Skripte, die als macro-<key-code>.sh abgespeichert werden können. In den Versionen 8-10 von key-control werden diese -- falls vorhanden -- anstelle des Menu-Makros aufgerufen.
Ab Version 11 gilt hingegen folgendes: Macro-Scripts werden mit der HELP-Taste aufgerufen, und dürfen jede Taste belegen. Ein kurzer Beschreibungstext sollte in einer Zeile die mit "#:" beginnt untergebracht werden, um nach dem Drücken der HELP-Taste als Tastenbelegung angezeigt zu werden. Vor dem Aufruf des Macro-Scripts wird der erste Wavebox-Prozess gestoppt, um die Fernbedienungs-Verarbeitung durch die Wavebox zu stoppen. Führt das Macro-Script simulierte Tastendrücke aus, muss es den Wavebox-Prozess selbst wieder starten:
Einschränkungen
- Dynamische Veränderungen an Menus werden nicht behandelt. Leider ist selbst das Grundmenue nicht statisch: So ist der Videotext-Eintrag im Wiedergabe-Modus nicht aktiv, und der Anschluß einer USB-Festplatte hat ebenfalls Einfluss. Dies ist bei der Makro-Programmierung zu beachten.
- Die Verzögerungen zwischen simulierten Tastendrücken habe ich experimentel ermittelt. Es ist gut möglich, dass Ihr längere Zeiten braucht, damit die Box keine Kommandos verschluckt.
Voraussetzungen
- Eine Lemmi-Firmware mit aktivierter Wavebox-Ausgabe auf dem Standard-Port und aktiviertem lircd --listen.
- Eine aktivierte USB-Festplatte: sonst stimmen die festverdrahteten Aktionen im Wiedergabemodus nicht, und diese müssen editiert werden.
- Das Script ist in Lemmis Firmware ab Version 1.50.6-lemmi-01 fest implementiert. Aktiviert wird es durch Einstellungen in der Datei /var/etc/lemmi-settings.txt.
- Ab Version 11 ist mindestens eine FW ab Version 2.01.0-lemmi-02 nötig.
Installation
- Gebrauch auf eigene Gefahr. Bitte überzeugt Euch vorher davon, dass es das tut was Ihr wollt.
- Da das Script in Lemmis Firmware ab Version 1.50.6-lemmi-01 fest implementiert ist, ist dort keine Installation nötig. Die Aktivierung erfolgt durch Einstellungen in /var/etc/lemmi-settings.txt.
- Neue Fassungen oder eigene Versionen können durch Installation des Skripts in /var/etc und Anpassen von LEMMI_KEYCONTROL_PATH in den /var/etc/lemmi-settings.txt genutzt werden.
- Macro-Scripts werden per Default ebenfalls in /var/etc erwartet.
Aufruf
Bei Aufruf mit der Option '-h' erfolgt die 'usage'-Ausgabe:
Usage: key-control.sh [-d] [-i] [-l] [-f <macro-directory>] [-m <IP/hostname>]
Die Option '-d' schaltet Debug-Ausgaben auf der Standard-Ausgabe ein.
Die Option '-i' schaltet die Ausgabe der erweiterten Info-Leiste nach einem Senderwechsel ab (ab Version 10).
Die Option '-l' schaltet die Bedeutung der OK-Taste von Last-Station auf Station-Select um (ab Version 10)
Die Option '-f' ermöglicht es, denn Pfad einzustellen, in dem die programmierten Makros abgelegt werden. Voreingestellt ist '/var/etc'.
Die Option '-m' ermöglicht es, die Netzwerkadresse der M740AV als IP-Adresse oder Host-Namen anzugeben. Voreingestellt ist 'localhost'.
Im Normalfall wird das Skript direkt auf der M740AV installiert und aufgerufen. Es kann aber zu Versuchszwecken auch auf einem anderen Rechner im Netz gestartet werden, da die allermeisten Steuerungsfunktionen über Netzwerkverbindungen ausgeführt werden. Der Aufruf von anderen Programmen oder Skripten auf der Box funktioniert dann natürlich nicht, denn diese werden lokal auf dem Rechner ausgeführt, auf dem das Skript läuft. Dies betrifft z.Z. das "Emergency-Reboot"-Feature, sowie Macro-Scripts.
Verzeichnisse & Dateien der Firmware
/ (root file system; gemounted von /dev/mtd1)
- /data (Verzeichnis; gemounted von /dev/mtd2)
- /data/.timer (Verzeichnis)
- /data/RA_FILE
- /data/SI (Verzeichnis)
- /etc (Verzeichnis)
- /sbin (Verzeichnis)
- /usb (Softlink nach /var/media/USB-HDD) bis Firmware 1.x
- /usb1 (Softlink nach /var/media/USB-HDD-1) ab Firmware 2.x
- /usb2 (Softlink nach /var/media/USB-HDD-2) ab Firmware 2.x
- /usb/bin (Verzeichnis)
- /usr (Verzeichnis)
- /usr/bin (Verzeichnis)
- /usr/bin/key-control
- /usr/bin/osd2tcp
- /usr/bin/scan-param
- /usr/bin/stdin2tcp
- /usr/bin/watchdir
- /usr/bin (Verzeichnis)
Firmware Links
- Firmware Übersicht, Firmware Downloads, Beta-Firmware
- Firmware 1.12.1
- Firmware 1.18, Firmware 1.18.lemmi
- Firmware 1.29.5, Firmware 1.29.5.lemmi
- Firmware 1.33_cf, Firmware 1.33.lemmi (spanische FW)
- Firmware 1.37.4, Firmware 1.37.4.lemmi
- Firmware 1.44.4_cf, Firmware 1.44.4.lemmi (spanische FW)
- Firmware 1.49.5, Firmware 1.49.5.lemmi
- Firmware 1.50.6, Firmware 1.50.6.lemmi
- Firmware 2.1, Firmware 2.01.0.lemmi
- Allgemeine Infos:
- Hintergrundwissen:
- Aufbau der Updates: WSW Dateien, WSW Header, RSA Verschlüsselung
- Flash-RAM, cramfs Dateisystem
- Portal »Linux Projekt«

