Firmware 1.50.6.lemmi

Aus open7x0.org

(Weitergeleitet von FW 1.50.6.lemmi)
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis


Einleitung

Lemmi hat die Original Firmware 1.50.6 von Siemens für das Gerät Gigaset M740 AV und mit ein paar Erweiterungen versehen. Diese Erweiterungen sind u.a. ein Telnet-Zugang, ein FTP-Server und einige Hooks, die Programmierer für eigene Erweiterungen nutzen können.

Updates

Diese neue Firmware läßt sich von den original FW vor 1.29.5 und von allen Lemmi-Versionen einspielen. Wer bereits FW 1.50.6 oder eine anderes Original ab Version 1.29.5 installiert hat, der muß einen Reset durchführen und hat dann die Wahl der neuen Firmware.

Aus dieser Firmware Version heraus lassen sich alle bekannten Versionen einspielen.

Der Artikel »Firmware Update« beschäftigt sich noch detailierter mit diesem Thema.

Warnung

Bild:Icon-Achtung.png Die Verwendung dieser Firmware geschieht auf eigene Gefahr!!

Besondere Eigenschaften

Telnet Zugang

In der Firmware ist Telnet mit den folgenden root-Zugängen freigeschaltet.

Benutzer
Kennwort
uid
gid
home
bash-profile
Kurzinfo
root
l1nux
0
0
/root
/var/etc/.profile
Kennwort aus Firmware 1.12.1 übernommen
r
(kein Kennwort)
0
0
/root
/var/etc/.profile
Alternative für 'root'
vor FW 1.50.6.lemmi-04 war das Kennwort 'r'.
p
(kein Kennwort)
0
0
/pc1/root
/pc1/root/.profile
Alternative für 'root'
erstmalig in FW 1.50.6.lemmi-04.
p[1-5]
(5x, kein Kennwort)
0
0
/pc[1-5]/root
/pc[1-5]/root/.profile
fünf Benutzer: 'p1' bis 'p5'
Alternativen für 'root'
erstmalig in FW 2.00.51.lemmi-02.
u
(kein Kennwort)
0
0
/usb/root
/usb/root/.profile
Alternative für 'root'
erstmalig in FW 1.50.6.lemmi-04.
u[1-2]
(kein Kennwort)
0
0
/usb[1-2]/root
/usb[1-2]/root/.profile
zwei Benutzer: 'u1' und 'u2'
Alternativen für 'root'
erstmalig in FW 2.00.51.lemmi-02.

FTP Server

In der Firmware ist ein FTP-Server integriert, der die folgenden realen und virtuellen Benutzer unterstützt:

Benutzer Kennwort Basis-Verzeichnis Kurzinfo
ftp / nur eingeschränkte Lese-Rechte
root root /
media media /var/media
usb usb /var/media/USB-HDD
usb1 usb1 /var/media/USB-HDD-1 erstmalig in FW 2.00.43.lemmi-02
usb2 usb2 /var/media/USB-HDD-2 erstmalig in FW 2.00.43.lemmi-02
epg epg /data/SI
timer timer /data/.timer
skin2 skin2 /data/skin2

Der Benutzer 'ftp' ist ohne Kennwort und hat nur eingeschränkte Rechte. Er sollte daher ausschließlich zum Lesen von Daten verwendet werden.

Zusätzliches Logging

Um zusätzliche Logging-Möglichkeiten zu bieten habe ich das Programm stdin2tcp geschrieben. Damit ist es möglich, Log-Streams der M740AV im Netzwerk via TCP abzufragen.

Die Aktivierung der Log-Streams wird über Einstellungen der Datei /var/etc/lemmi-settings.txt vorgenommen, in der die passenden Varioablen aus 'yes' gesetzt werden müssen.

Ab 1.50.6.lemmi-02 werden fünf Streams unterstützt:

Variable TCP Port Beschreibung
LEMMI_LOG_WAVEBOX 12001 Die Ausgabe (stdout und stderr) des Programmes wavebox.
LEMMI_LOG_KMSG 12002 Die Kernel-Meldungen aus der Datei /proc/kmsg
LEMMI_LOG_RECLOG 12003 Die Ausgabe auf die Datei /data/RECORDER_LOG
LEMMI_LOG_TIMER 12004 Die Ausgabe von 'watchdir -m /data/.timer'
LEMMI_KEYCONTROL_ENABLED 12005 Die Debug.Ausgabe von 'key-control'

Weitere Features

Weitere Features und Details sind in der zum Paket gehörenden Datei 'info.txt' beschrieben.

Geschichte

1.50.6.lemmi-01 (2005-08-05 16:32)

  • Die Firmware basiert auf dem Original 1.50.6 von Siemens, wobei das Update-Verhalten von Firmware 1.18 übernommen wurde.
  • Der Siemens-FTP Server wurde entfernt und stattdessen der alt bewährte pure-ftpd eingebaut. Der pure-ftpd unterstützt auch Dateien >2GB.
  • Beim Login werden die beiden Verzeichnisse /usb/bin und /pc1/bin in den Pfad (PATH) aufgenommen, sofern die existieren.
  • Es ist ein modifizierter lircd daemon enthalten, mit dem Fernbedienungsbefehle über das Netzwerk simuliert werden können.
  • Die Programme und Bibliotheken aus /bin, /usr/bin, /usr/lib und /lib/modules/2.4.21-xfs wurden durch den strip-Befehl verkleinert. Hierdurch existiert mehr Platz im Flash-RAM.
  • Durch die selbsterklärende Datei /var/etc/lemmi-settings.txt können jetzt die Boot-Aktionen eingestellt werden. Die Datei darf auch im DOS/Windows- Format (CR LF) vorliegen. Mit dieser Datei können auch explizit Timer und EPG Daten geöscht werden.
  • Beim ersten Boot-Vorgang nach einem Update wird das System mit den Standard-Einstellungen gestartet und alle Hooks ignoriert. Damit bootet das System mindestens einmal sauber.
  • Beim Boot-Vorgang wird die Datei /data/RECORDER_LOG auf 1000 Zeilen gekürzt.
  • Die letzten 200 Zeilen der Bash-History werden dauerhaft gespeichert.
  • Via TCP-Port 10000 können Informationen zur Firmware-Version und über die Boot-Optionen abgefragt werden. Genaugenommen wird der Inhalt der Datei /var/log/lemmi-setup.log angezeigt, der eine Liste alle LEMMI_* Variablen enthält. Diese Funktion ist über inetd realisiert.
  • Das Programm stdin2tcp wurde hinzugefügt. Es leitet die Standardeingabe an alle angemeldeten Clients weiter. Damit ist ein Kontrolle diverser Streams über das Netzwerk möglich. U.a. ist die Ausgabe der wavebox an TCP-Port 10001 und die Ausgabe von /proc/kmsg an die TCP-Port 10002 verfügbar.
  • Die extra für die Box entwickelten Tools 'watchdir', 'osd2tcp' und 'key-control' wurden in die Firmware integriert.

1.50.6.lemmi-02 (2005-08-11 09:10)

1.50.6.lemmi-03 (2005-08-13 20:50)

  • Existiert das Archiv /var/etc/overwrite-data.tar.bz2, dann wird es wie zuvor nach /data entpackt (Stichwort: save-timer). NEUERUNG: Anschließend die Datei nach /var/etc/overwrite-data.tar.bz2.done umbenannt, so dass sie beim nächsten Boot nicht nochmals entpackt wird.
  • Ein neuer Hook wurde eingebaut: /usb/bin/rc.usb. Unmittelbar nach dem Aufruf von rc.local wird im Hintergrund 30 Sekunden gewartet und anschließend die Existenz von /usb/bin/rc.usb geprüft. Existiert diese Datei, dann wird sie aufgerufen. stdout und stderr werden nach /usb/bin/rc.usb.log umgeleitet. Hiermit kann man auch ohne LAN nach dem Start der Box eigene Erweiterungen ausführen. So kann durch verwendung des beigelegten Scriptes check-usb-settings z.B. die lemmi-settings.txt setzen.
  • Das Script key-control wurde modifiziert, so dass die Timer-Programmierung mittels der M740-Fernsteuerung wieder möglich ist.

1.50.6.lemmi-04 (2005-08-23 19:13)

  • Das Linux-Grundsystem enthält nun die busybox Version 1.01 (voher 0.43). busybox ist eine Unix-Tool-Sammlung um viele Kommandos, die beim Compilieren ausgewählt werden, platzsparend zu installieren. Durch die neue Version konnten verscheidene Vollversionen (z.B. tar und inetd) eingespart werden. Daher war auch genug Platz, um weitere Programme in busybox einzubinden. Dieses sind u.a. sed, awk und httpd.
  • Durch den Platzspareffekt der busybox konnten die folgenden Tools integriert werden: e2fsck, diff und nano (Texteditor).
  • Es ist nun ein Web-Server (busybox sei dank) integriert, der via lemmi-settings.txt konfiguriert werden kann.</p>

    Der Aufruf: http://m740av/ (lokalen DNS-Namen oder IP für die Box verwenden)

    Der interne Web-Server unterstützt nur statische Seiten und CGI-Programme. PHP und PERL werden nicht unterstützt. Mit dem Kommando 'set-www' kann der Dokumenten-Pfad des Web-Servers auch zur Laufzeit eingestellt werden.

  • Für telnet existieren die root-Benutzer 'root', 'r', 'p' und 'u'. Die letzten drei haben kein Kennwort und unterscheiden sich in ihrem Login-Verzeichnis (/root, /pc1/root und /usb/root).
  • Eine neue Version von pure-ftpd (Dank an kille) wurde integriert.

1.50.6.lemmi-05 (2005-08-25 17:57)

  • Die 'busybox' wurde von mir gepatched, damit 'tar' auch mit 'bzip2' funktioniert.
  • Die interne Web-Site wurde ein wenig erweitert.

1.50.6.lemmi-06 (2005-09-08 21:35)

  • Durch die Einstellungen in der neuen Datei /root/.inputrc sind auf bash-Ebene Umlaute und andere Sonderzeichen verfügbar. Für die anderen Benutzer (z.B. 'u' und 'p') muß die Datei in deren Login-Verzeichnis kopiert werden.
  • Es wurde eine neue Version von pure-ftpd integriert, die größere Übertragungspuffer verwendet.
  • Das benutzerfreundliches Script /sbin/check-ext2 testet ein paar spezielle Gegebenheiten der M740AV ab um dann eine ext2/ext3-Partition zu überprüfen.
  • Der httpd-Server decodierte fälschlicher Weise '%xx' Sequenzen im 'QUERY_STRING' für CGI-Programme. Außerdem wurde die Variable 'SCRIPT_FILENAME' nicht gesetzt. Durch eine Quellcode-Anpassung der busybox meinerseits ist beides behoben.
  • Auch das busybox-Programm 'df' hatte einen Fehler: Ist der Name inkl. Rechnername des Netzwerklaufwerkes >20 Zeichen lang und hat die Freigabe >=100 GB Speicher, dann wurde kein Leerzeichen zwischen beiden ausgedruckt. Dieses führte (mutmaßlich) zu Fehlern der wavebox, da diese so den Speicherplatz nicht korrekt feststellen konnte. Auch dieser Fehler wurde durch eine Quellcode-Anpassung meinerseits behoben.
  • Das neue Programm /usr/bin/scan-query-string vereinfacht die Analyse von der Parameters eines CGI-Programmes.
  • Die interne Web-Site baut nun auf die letzte Änderungen von EarlyAdopter auf. Datei-Browser und das Test-Script brechen aus der uniformen Darstellung aus Platz- und Zeitgründen aus.

1.50.6.lemmi-07 (2006-05-12 22:01)

  • Die Erweiterungen dieser Firmware-Version sind identisch mit den Erweiterungen der Versionen 2.01.0.lemmi-09, 2.02.22.lemmi-03 und 2.02.24.lemmi-05.
  • Durch die Einstellungen in der neuen Datei /root/.inputrc sind auf bash-Ebene Umlaute und andere Sonderzeichen verfügbar. Für die anderen Benutzer (z.B. 'u' und 'p') muß die Datei in deren Login-Verzeichnis kopiert werden.
  • Via TCP-Port 12000 können Informationen zur Firmware-Version und über die Boot-Optionen abgefragt werden. Genaugenommen wird der Inhalt der Datei /var/log/lemmi-setup.log angezeigt, der eine Liste alle LEMMI_* Variablen enthält. Diese Funktion ist über inetd realisiert.
  • Die PID der wavebox wird in /var/run/wavebox.pid abgelegt.
  • Die busybox wurde neu übersetzt. Sie enthält jetzt zusätzlich crond und das Modul BASIC_AUTH für httpd.
  • Der bash-Prompt PS1 wird jetzt so gesetzt, dass User, Host und aktuelles Verzeichnis angezeigt werden.
  • Die EPG-RamDisk-Version kopiert nun die EPG-Daten von Flash ins Ram und umgekehrt mittels 'cp' und ohne 'tar'.
  • Durch die Einstellung LEMMI_START_CROND wird 'crond' gestartet. Die Konfigurationsdatei wird via /var/etc/root.crontab gesichert.
  • key-control ist in Version 13 dabei. Es erfolgte jedoch ein kleine Anpassung, so dass es auch im Verzeichnis /usr/bin läuft.
  • txt2osd ist in Version 0.06 dabei. Durch die Einstellung LEMMI_TXT2OSD_ENABLED kann txt2osd im Server-Modus (Port 10102) gestartet werden.
  • Es gibt ein Boot-Menu, mit dem eigene Start-Optionen als Script implementiert werden können. Die Aktivierung erfolgt via lemmi-settings.txt.

    Bei deaktivierten Boot-Menu erscheint am unteren Bildschirmrand eine Aufforderung. Hier hat man dann 3-5 Sekunden Zeit, die Menu-Taste zu betätigen, um das Boot-Menu zu aktivieren.

    Durch das Drücken der roten Taste während der Anzeige des Boot-Menüs kann ein weiteres Menü aktiviert werden, indem sich einige Einstellungen ändern lassen. Dieses ist insbesondere für Nutzer ohne Netzwerk gedacht. Die Veränderungen sind erst nach dem nächsten Boot-Vorgang aktiv.

  • Nach dem Setup des Dateisystems und dem Laden es Verzeichnisses /var/etc aus dem Flash wird die Existenz von '/var/etc/rc.alternate' überprüft. Existiert diese Datei, dann wird '/var/etc/rc.alternate' anstatt des restlichen '/etc/rc' Scriptes ausgeführt. Damit kann man sich ein eigenes Boot-System aufbauen.

    Dieses neue /var/etc/rc.alternate ersetzt das vorherige /var/etc/alternate-rc und ermöglicht einen frühzeitigen Eingriff in das Boot-System.

  • Durch den Parameter LEMMI_START_WATCH_WAVEBOX kann ein watchdog gestartet werden, der den wavebox-Prozess ueberwacht. Es wird ein reboot ausgelöst sobald die Anzahl der wavebox-Threads auf unter 10 sinkt. Die Aktionen des watchdog werden in den Dateien /data/RECORDER_LOG und /data/lemmis-watchdog.log geloggt.
  • Durch einen kleinen Trick kann man nun die wavebox zwingen, ein NFS-Share anstatt einem SMB-Share zu mounten. Lautet bei einer Netzwerkverbindung der Benutzername, das Kennwort oder die Arbeitsgruppe 'LemmiNFS' (Großschreibung beachten), dann wird die Netzwerkverbindung über NFS und nicht über SMB aufgebaut. Benutzername, Kennwort und Arbeitsgruppe werden dann beim mount ignoriert.
  • Es gibt einen neuen Hook: /var/etc/rc.pre-menu. Das Script wird, falls vorhanden, vor dem Boot-Menu aufgerufen. Als Parameter $1 wird der Wert aus LEMMI_BOOTMENU_ENABLED übergeben, also 'yes', falls Boot-Menü aktiviert ist und 'no' falls nicht.
  • Die Auslagerung des EPG wurde komplett neu gestaltet. Es ist nun auch möglich, ein ext2-Image anzugeben. Dieses Image funktioniert auch unter FAT und SMB. Weitere Details und die Einstellungen sind in der Konfigurationsdatei /var/etc/lemmi-settings.txt beschrieben.
  • Im Boot-Script /etc/rc wird die aktuelle Zeit aus dem PIC ausgelesen und als Systemzeit verwendet. Damit hat u.a. der VDR auch die richtige Zeit.
  • Da Siemens nun die beiden RSA-Schlüssel-Paare veröffentlicht hat, ist diese Firmware Version auch mit beiden Schlüsseln ausgestattet. Daher wird diese Firmware von allen bisher bekannten Firmware-Versionen als Update akzeptiert. So ist der Umweg über den Reset nun nicht mehr nötig.
  • Die automatische Einstellung des Video-Moduses gemäß Box-Setup kann jetzt via lemmi-settings.txt und Boot-Menu aktiviert werden. Die 16:9 Umschaltung habe ich aber wieder deaktiviert, da sie anscheinend nicht funktioniert.
  • Das Programm 'netdate' wurde integriert. Hierzu können in lemmi-settings.txt der Variable LEMMI_NETDATE_PARAM Time-Server zugewiesen werden. Ist dieses der Fall, dann wird die Zeit im Script /etc/rc.delayed synchronisiert, das 30 Sek. nach dem wavebox-Start aktiviert wird.
  • Ich umount'e beim Shutdown die Shares (USB-HDD-1 und USB-HDD-2 sowie PC1 bis PC5) nun explizit in der Hoffung, dass die USB-Platten nun sauber freigegeben werden.
  • Das Sichern der Timer erfolgt nun vor dem Start der wavebox in die Ram-Disk. Nach dem Start der wavebox, wenn die diversen Freigaben (USB+LAN) gemounted sind, wird die Datei an den eigentlichen Speicherort verschoben. Im Dateinamen ist nun zusätzlich die Firmware-Version enthalten.
  • twonky-media und twonky-music werden jetzt dierekt unterstützt. Hierzu muss die Twonky-Software in ein Verzeichnis freier Wahl entpackt werden und passende Einstellungen in lemmi-settings.txt vorgenommen werden. Die Einstellungen sind auch via 'Boot-Menu|Einstellungen|Diverses' möglich; dann sollte das Installationsverzeichnis 'twonky' lauten.
  • Für die serielle Schnittstelle ttyS0 wird auch das Login-Programm getty gestartet.
  • Um Netzwerk-Problemen aus dem Wege zu gehen, greift das Boot-Menu via '127.0.0.1' anstatt via 'localhost' auf lircd zu.
  • Es wurde ein neues Device zugefügt: 'mknod /dev/fuse c 10 229'
  • EXPERIMENTELL:

    Im EPG-Modus 'E2IMAGE' kann man jetzt die Anzahl der e2images für das EPG zwischen 1 und 10 angeben. Diese Images werden zyklisch verwendet. Dazu wird bei jedem Neustart der Box der Inhalt des zuletzt verwendeten Images in das neue kopiert.

    Hierdurch soll der Verschleiß von USB-Sticks gemindert werden, da immer andere Blöcke des Flash-Speichers verwendet werden.

1.50.6.lemmi-08 (2006-05-28 11:31)

  • Die USB-Platte wurde nicht erkannt. Schuld daran war die einfache Übertragung des Boot-Scriptes /etc/rc von den 2-er Versionen, die 2 USB-Platten verwalten können.
  • An Port 12101 können aktuelle Systemparameter und die Lemmi-Settings abgefragt werden. An Port 12102 können die Lemmi-Settings gesetzt werden, die dann beim nächsten Boot aktiv sind.

Links zum Thema »Lemmis Firmware« 

Verwendete Ports

In der VDR Firmware werden die folgenden Ports verwendet:

In der Lemmi-Firmware werden die folgenden Ports verwendet:

Kommandos in »Lemmis Firmware« 

Persönliche Werkzeuge