<<< Previous topic - Next topic >>> |
|
Author |
Message |
frankste
Joined: 11 Jul 2006 Posts: 13
|
Posted: 02.08.2006, 14:55 Post subject: ipaddree: Error unknown hardware architecture |
|
|
Hallo, hallo,
hier ein neuer Fehler, der mir untergekommen ist. Aus irgend einem Grund gibt mir das System auf meine letzten ipaddree-Aufrufe nur noch die oben abgebildete Fehlermeldung zurück und tut (scheinbar?) nichts. Woran kann das liegen?
Das Tool scheint ja eine SSV-Eigenentwicklung zu sein?
Gruß,
Frank Steyer. |
|
Back to top |
|
|
mha
Joined: 05 May 2006 Posts: 28
|
Posted: 02.08.2006, 17:03 Post subject: |
|
|
Hallo,
das onboard Flash auf dem DNP/2110 muß sich im
Lese Zustand befinden, damit "ipaddree" die Architektur
erkennen kann.
Folgenden Befehl in der Kommandozeile ausführen:
cat /dev/mtd0 > /dev/null
Danach kann "ipaddree" ausgeführt werden.
Marco Hasewinkel |
|
Back to top |
|
|
frankste
Joined: 11 Jul 2006 Posts: 13
|
Posted: 03.08.2006, 11:00 Post subject: Verständnisfrage |
|
|
Nur zu meinem Verständnis: inwiefern befindet sich der onboard-Flash nicht im Lesezustand?
Könnte dies evtl. auch dafür verantwortlich sein, dass das Kopieren einer Datei mittels "cp" von /root nach /flash nicht funktioniert? Genauer gesprochen wird dies aus einem C-Programm heraus versucht (mittels fork und execl), was zu einem Fehler "Bad Adress" geführt hat. Das direkte (Über-)Schreiben der gleichen Datei hingegen ging aus dem C-Programm heraus problemlos?!?
Was genau macht ipaddree eigentlich? Nutzt es ifconfig und speichert nur zusätzlich die eingestellte IP-Adresse? Wenn ja, wo wird sie gespeichert? Ich verwende bereits ifconfig im gleichen Programm und könnte dann einfach die Adresse an die entsprechende Stelle schreiben.
Vielen Dank für entsprechende Aufklärung. |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1461
|
Posted: 15.08.2006, 08:52 Post subject: Flash im Lesezustand |
|
|
Hallo Frank.
Ipaddree greift direkt auf dem Flash-Speicher zu, um die IP-Adresse zu speichern. Das JFFS wird dabei nicht benutzt. Mit anderen Worten: ipaddree umgeht Linux beim Flash-Zugriff.
Ein Flash-Speicherbaustein wird über bestimmte Kommandosequenzen in verschiedene Zustände geschaltet. Vereinfacht gibt es die Zustände Lesen, Schreiben und Löschen.
Durch den direkten Hardware-Zugriff auf den Flash und das JFFS könnte sich eine Konfliktsituation ergeben. Ipaddree kann nämlich nicht erkennen, ob das JFFS gerade Flash-Zugriffe durchführt. Aus diesem Grund prüft ipaddree beim Start lediglich, ob aus dem Flash gelesen werden kann. Dazu muss sich der Flash im Lesezustand befinden. Ist das nicht der Fall, erfolgt eine Fehlermeldung. Eine Zustandsänderung wird durch ipaddree nicht erzwungen, weil dadurch die Aktionen des JFFS beeinträchtigt werden könnten. Durch die Eingabe
cat /dev/mtd0 > /dev/null
wird der Flash von Linux in den Lesezustand gesetzt. Danach kann ipaddree ohne Problem arbeiten.
Zugegeben, dass hätte man eleganter lösen können. Aber ansonsten funktioniert ipaddree ohne Probleme …
Gruß
Klaus |
|
Back to top |
|
|
frankste
Joined: 11 Jul 2006 Posts: 13
|
Posted: 17.08.2006, 16:00 Post subject: warum funktioniert ipaddree sonst? |
|
|
Vielen Dank für die Aufklärung soweit. Was ich jedoch unter den gegebenen Umständen nicht verstehe ist, weshalb ipaddree sonst häufig ohne "Aktivierung" des Flash funktioniert hat? Dagegen habe ich natürlich nichts einzuwenden, finde es aber etwas ungewöhnlich.
Außerdem hat die angegebene Kommandosequenz aus dem Messdatenserver heraus nicht funktioniert. (es wurde zuerst mittels fork/execl der cat-Befehl ausgeführt, dann ipaddree, was dann eine Fehlermeldung produzierte...). Deaktiviert sich der Flash nach wenigen ms von alleine wieder? Es finden zweischen den beiden Aufrufen vermutlich keine Flash-Zugriffe aus Linux heraus statt. |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1461
|
Posted: 17.08.2006, 18:17 Post subject: Ipaddree und der Flash … |
|
|
Die Betrachtungsweise mit der „Aktivierung“ führt wohl zu einem Missverständnis. Beim Start von ipaddree muss der Flash sich im Lesezustand befinden. Ist das der Fall, arbeitet ipaddree ohne Probleme. Ansonsten gibt es die besagte Fehlermeldung. Eine explizite „Aktivierung“ ist nicht wirklich erforderlich …
Es ist zu beachten, dass ein Flash File System unter Linux im Hintergrund arbeitet. Weiterhin kann es auf einem Linux-System ja auch noch andere Prozesse geben, die auf den Flash zugreifen.
Gruß
Klaus |
|
Back to top |
|
|
Oleksiy
Joined: 22 Feb 2007 Posts: 8
|
Posted: 22.02.2007, 10:08 Post subject: Re: Flash im Lesezustand |
|
|
kdw wrote: |
Mit anderen Worten: ipaddree umgeht Linux beim Flash-Zugriff.
|
Das ist aber gefährlich so zu machen. Wenn ein anderer Prozess wird parallel mit Flash benutzen, das kann alles gan schief gehen.
Haben Sie vielleicht Ideen wie es moeglich wäre einen direkten Flash-Zugriff mit JFF-treiber zu synchronizieren? Ich meine nicht ipaddree selbst sonst den Ansatz?
Gruss,
Oleksiy |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1461
|
Posted: 23.02.2007, 15:14 Post subject: Das ist aber gefährlich so zu machen .... |
|
|
Hallo Oleksiy.
Danke für die Anmerkung. Welche Gefahren siehst du da? Falls die Sache mit „ipaddree“ fehlschlägt, wird sie einfach wiederholt.
Es ist sicherlich nicht die eleganteste Lösung. Aber eine Gefahr sehe ich da nicht.
Gruß
KDW |
|
Back to top |
|
|
Oleksiy
Joined: 22 Feb 2007 Posts: 8
|
Posted: 23.02.2007, 17:20 Post subject: Re: Das ist aber gefährlich so zu machen .... |
|
|
Hallo Klaus,
kdw wrote: |
Danke für die Anmerkung. Welche Gefahren siehst du da? Falls die Sache mit „ipaddree“ fehlschlägt, wird sie einfach wiederholt.
|
ipaddree.c (ich habe leider nur dnp1110 version, ich gehe aber davon aus, dass das genau so hier ist) arbeitet direct mit flash und schaltet etsprechend Vpp ueber PPDR/PPSR ein/aus.
Zuerst entfernt es ein Datenblock, dann schreibt da neue Block ein. Was passiert aber, wenn genau in dieser Zeit (zwieschen der Entfernung und dem Einschreiben) MTD-Treiber auch etwas auf Flash schreibt? Seinerseits schaltet der Treiber Vpp auch ein und nacher(!!!) aus. Das ist nur ein Beispiel.
kdw wrote: |
Es ist sicherlich nicht die eleganteste Lösung. Aber eine Gefahr sehe ich da nicht.
|
Ich denke mal es waere logisch auch ueber MTD-Treiber ipaddree die Daten auf Flash zu aendern. Ich verstehen nur nicht, warum
./drivers/mtd/maps/sa1100-flash.c /*dnp1110*/
{
name: "bootloader params",
size: 0x00020000,
offset: MTDPART_OFS_APPEND,
mask_flags: MTD_WRITEABLE
}
./drivers/mtd/maps/pxa_cerf.c /*dnp2110 */
{
name: "Bootloader",
size: 0x00040000,
offset: 0,
mask_flags: MTD_WRITEABLE /* force read-only */
}
mask_flag "force read-only" fuer diesen Flash-Teil ist? Gibt es etwas, das dafuer sagt?
Gruss,
Oleksiy |
|
Back to top |
|
|
|