Firmware neu flashen?

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Firmware neu flashen?

Beitrag von dirch » 24.10.2008, 03:38

Hallo,

meine Zentrale bootet offenbar aufgrund eines Tippfehlers (ich habe versucht einen USB Stick einzurichten) nicht mehr komplett. Sie bleibt mit der Anzeigen "HomeMatic V 1.300" im Display stehen. Der Webserver scheint gestartet zu sein, allerdings bekomme ich die Meldung "Die HomeMatic CCU ist noch nicht bereit" wenn ich versuche auf das Webinterface zuzugreifen.

Gibt es eine Moeglichkeit die Zentrale wiederzubeleben? Vermutlich wuerde es ja reichen die Firmware neu zu flashen, nur wie?

Ich habe schon rausgefunden dass wenn man bei einem reset alle drei Fronttasten gedrueckt halt die Zentrale versucht per BOOTP/TFTP zu booten, wenn man lediglich eine der Tasten grdrueckt halt erscheinen Meldungen ueber ein Bootloader Update im Display. Waere das ein Weg?

Bin fuer jede Hilfe dankbar . . . .

Gruss
Dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Firmware neu flashen?

Beitrag von dirch » 24.10.2008, 15:28

So, einen kleinen Schritt weiter bin ich, die kiste holt sich per TFTP das uImage was ich aus dem boot_cramfs extrahiert habe. Und soweit ich gerade im wireshark gesehen habe versucht sie sogar per NFS das rootfs zu mounten . . . . sieht schon mal recht vielversprechend aus. :P

Drueckt mir die Daumen.
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Firmware neu flashen?

Beitrag von dirch » 24.10.2008, 16:48

JUHUUUU, ich habs geschafft.

Hab die Zentrale erfolgreich ueber Netz gebootet (BOOTP, TFTP, NFS) und konnte so den Fehler beheben. :mrgreen:

Und ein nicht schreibgeschuetzes root filesystem ist zum rumspielen auch ganz nett :wink:

Falls an der Vorgehensweise Interesse besteht lasst es mich wissen, dann schreib ich das kurz zusammen.

Gruss
dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

Lueghi
Beiträge: 630
Registriert: 01.11.2007, 21:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Siebengebirge (bei Bonn)
Hat sich bedankt: 18 Mal
Danksagung erhalten: 2 Mal

Re: Firmware neu flashen?

Beitrag von Lueghi » 24.10.2008, 18:30

dirch hat geschrieben:JUHUUUU, ich habs geschafft.
Gratulation !
dirch hat geschrieben:...
Falls an der Vorgehensweise Interesse besteht lasst es mich wissen, dann schreib ich das kurz zusammen.
...
Das wäre doch bestimmt was für Kaju's Blog ... :wink:
Gruß Stefan

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Firmware neu flashen?

Beitrag von dirch » 27.10.2008, 14:52

Achtung: Diese Vorgehensweise ist nicht ganz trivial und sollte daher nur von Leuten durchgefuehrt werden die genau wissen was sie tun. Im schlimmsten Falle koennt ihr die Firmware auf der Zentrale so zerstoeren dass sie zum Hersteller eingeschickt werden muss! Ich uebernehme natuerlich keine Garantie fuer das oben geschriebene bzw. fuer alle Schaeden die ihr mit Hilfe dieser Anleitung an euren Zentralen verursacht.

So, auf nen standard Debian/*buntu sind folgende Pakete noetig um die CCU uebers Netz zu booten, zumindest habe ich sie hier benutzt. Die Konfiguration von anderen Daemons oder unterschiedlichen Versionen mag abweichen.


- openbsd-inetd (0.20050402-6)
- dhcp3-server (3.0.4-13)
- tftpd (0.17-15)
- nfs-kernel-server (1.0.10-6+etch.1)


IP der Zentrale: 192.168.0.11
IP des linux Servers: 192.168.0.10
(alle weiteren Beschreibungen und Konfig-Auszuege beziehen sich auf diese IP Adressen. Natuerlich koennen auch andere verwendet werden!)

dhcpd ist eingerichtet fuer 192.168.0.0/24

Datei: /etc/dhcp3/dhcpd.conf

Code: Alles auswählen

host homematic {
        hardware ethernet 00:1a:22:xx:xx:xx;
        fixed-address 192.168.0.11;
        filename "linux-2.6.uImage";
        server-name "192.168.0.10";
        next-server 192.168.0.10;
}

Datei: /etc/inetd.conf

Code: Alles auswählen

tftp            dgram   udp     wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /srv/tftp

Aktuelle Firmware (z.B hm-ccu-firmware-1.300.img) entpacken. Entweder mit winrar oder in .tar.gz umbenennen.
Das dort enthaltene boot_cramfs mounten:

Code: Alles auswählen

mkdir /tmp/cramfs 
mount -t cramfs -o loop boot_cramfs /tmp/cramfs 
und uImage ins TFTP verzeichnis kopieren

Code: Alles auswählen

cp /tmp/cramfs/uImage /srv/tftp/linux-2.6.uImage
chmod +r /srv/tftp/linux-2.6.uImage
Verzeichnis fuers NFS-root anlegen

Code: Alles auswählen

mkdir /nfsroot_hss
tar -xzf /tmp/root_fs.tar.gz -C /nfsroot_hss
Datei: /etc/exports

Code: Alles auswählen

/nfsroot_hss       192.168.0.11(rw,sync,no_root_squash)
Dienste neu starten:

Code: Alles auswählen

/etc/init.d/nfs-kernel-server restart
/etc/init.d/inetd restart
/etc/init.d/dhcp3-server restart
Bevor ihr die Box nun uebers Netz bootet solltet ihr noch die Eintraege in /nfsroot_hss/etc/fstab anschauen und korrigieren, ggf. moechtet ihr auch noch das script in /nfsroot_hss/etc/rc anpassen.

Nun zum booten selber, resettet die box (ueber den kleinen reset knopf und haltet dann SOFORT alle 3 fronttasten fuer ca. 5 sekunden gedrueckt. Nun sollte die box erst einen bootp/dhcp request, dann einen TFTP request und zuletzt eine NFS Verbindung in den logs (z.b. /var/log/daemon.log) sehen:

Code: Alles auswählen

Oct 27 11:56:06 smallblue dhcpd: DHCPDISCOVER from 00:1a:22:xx:xx:xx via eth0
Oct 27 11:56:06 smallblue dhcpd: DHCPOFFER on 192.168.0.11 to 00:1a:22:xx:xx:xx via eth0
Oct 27 11:56:06 smallblue dhcpd: DHCPREQUEST for 192.168.0.11 (192.168.0.10) from 00:1a:22:xx:xx:xx via eth0
Oct 27 11:56:06 smallblue dhcpd: DHCPACK on 192.168.0.11 to 00:1a:22:xx:xx:xx via eth0
Oct 27 11:56:06 smallblue in.tftpd[9761]: connect from 192.168.0.11 (192.168.0.11)
Oct 27 11:56:06 smallblue tftpd[9762]: tftpd: trying to get file: linux-2.6.uImage 
Oct 27 11:56:06 smallblue tftpd[9762]: tftpd: serving file from /srv/tftp 
Oct 27 11:56:15 smallblue mountd[24991]: authenticated mount request from 192.168.0.11:710 for /nfsroot_hss (/nfsroot_hss)
Das eigentliche aufspielen oder neu flaschen der Software ist damit noch nicht geschehen, bislang wurde die Firmware der Zentrale weder geloescht noch sonst irgendwie veraendert.

Um so eine neue Software aufzuspielen solltet ihr (sofern nicht schon vorhanden) telnet ins nfsroot installieren um euch auf der box anmelden zu koennen. Ein Beispiel wie das flashen funktioniert koennt ihr euch im update_script (aus http://www.homematic.com/firmware/hm-cc ... 300.tar.gz ) anschauen.

Ich hoffe das die Beschreibung irgendwem einmal hilft, mir hat es auf jeden Fall schon das Einschicken an den Hersteller erspart :wink:

Gruss
dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

HVMeurer
Beiträge: 47
Registriert: 23.11.2008, 17:27

Re: Firmware neu flashen?

Beitrag von HVMeurer » 07.09.2009, 20:59

Hallo Dirch,

hast Du vielleicht inzwischen auch eine Anleitung für Laien?!

LG
Ralph
--------------------------------------------
viele Kanäle in 143 Geräten

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Firmware neu flashen?

Beitrag von dirch » 08.09.2009, 09:57

Hallo Ralph,

ich fuerchte nein :|

Gruss,
Dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Firmware neu flashen?

Beitrag von anli » 08.09.2009, 22:42

Hey Ralph,

habe auch gerade an Dich gedacht :) an welcher Stelle kommst Du denn nicht weiter?
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

erik
Beiträge: 776
Registriert: 31.10.2007, 13:32
Hat sich bedankt: 6 Mal
Danksagung erhalten: 6 Mal

Re: Firmware neu flashen?

Beitrag von erik » 28.10.2009, 12:53

Hi,

das die CCU mittels TFPD neu geflasht werden kann ist schon eine prima Sache, somit macht das "spielen" auch mehr Spaß, wenn man weiß, das man bei Problemen noch einen Ausweg hat, der nicht ELV heißt....

Hoffe, wir können die Schritte etwas vereinfachen und das Drich diese etwas genauer beschreibt. Booten über TFPD ist die eine Sache - wie bekommt man wieder die CCU in den Auslieferungszustand, so daß die Werbseinstellungen wieder da sind. Soe wie ich die obige Doku verstehe, bootet diese komplett über Netz - wie kann man dann wieder die Firmware flashen - über das Webfrontend, wie sonst auch?
Vielleicht hilft auch dieser kostenlose Windows TFTPD Server http://tftpd32.jounin.net/tftpd32.html

Erik

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Firmware neu flashen?

Beitrag von dirch » 28.10.2009, 17:04

Hallo Eric,

tftp ist hier nur die halbe Miete, dadrueber wird nur der Kernel geladen. Zusaetzlich braucht man noch DHCP/BOOTP um der CCU erst mal eine IP zu verpassen und ihr mitzuteilen von wo sie den Kernel per TFTP laden soll. Und man braucht zwingend noch NFS weil von dort das das Filesystem gemountet wird. Und der NFS Server sollte unter Linux laufen da Windows keine symlinks unterstuetzt und damit nicht tauglich ist. Ich fuerchte viel einfacher laesst sich die Einrichtung auch nicht beschreiben - ok, man koennte noch dazu schreiben wie man unter Linux einen Editor startet u.s.w., aber das verleitet dann auch wieder dazu dass Leute ohne ausreichende Ahnung das ausprobieren. Und da man theoretisch so auch seinen Bootloader irreparabel beschaedigen koennte halte ich das fuer keine so gute Idee. Falls jemand wirklich mal vor dem Problem steht die Software ueber diesen Weg neu aufspielen zu muessen helfe ich natuerlich gerne.

Zu Deiner Frage wie man die Software neu flashen kann, entweder normal ueber das Webinterface oder per Skript auf der Kommando Zeile. Um die CCU wirklich in den Auslieferungszustand zurueck zu versetzen sind noch ein paar zusaetzliche Schritte noetig, es muessen noch ein paar config files geloescht und ein Skript ausgefuehrt werden. Falls da wirklich mal Bedarf bestehen sollte helf ich dabei auch gerne.


Generell ist es eine super Sache die CCU uebers Netz zu booten, so kann man recht einfach verschiedene Software Versionen testen und hat Schreibzugriff auf alle Verzeichnisse. Und man hat keine Groessenlimitierungen :)

Ach ja, die CCU nimmt (sofern man es nicht explizit aendert) auch wenn man sie uebers Netz bootet die gleiche Konfiguration als wenn sie normal aus dem Flash startet. Aenderungen gehen also nicht verloren, hilft allerdings nicht wenn die Konfig files defekt sind. Dagegen hilft nur Backups machen!

Gruss,
Dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“