Hardware:dbox2:Debug-Mode mit Kurzschluss

Aus TuxBoxWIKI
Version vom 10. Dezember 2004, 00:44 Uhr von TuxWIKIbot (Diskussion) (TuxWIKIbot - Bot: adding Links)
Wechseln zu: Navigation, Suche

Vorlage:Überarbeiten


Baustelle-klein.png Hinweis: Dieser Artikel ist momentan noch nicht dazu geeignet, den Debug-Mode einzuschalten!!!


Allgemeines


Stop hand.png An dieser Stelle muss noch Text rein.

Vorlage:Debug Warnung


Wie bootet die DBox2

  1. Der Bootloader wird geladen.
  2. Der Bootloader macht eine Bootp Anfrage nach einer [IP-Adresse]], einem Tftp Server und nach einem Kernel den er laden kann.
  3. Entweder wird ein Kernel über das Netzwerk gebootet (wenn 2. erfolgreich war) oder es wird der Kernel aus dem Flash gebootet.
  4. Der aus dem Flash gebootete ChorusOS Kernel konfiguriert sich über eine RARP Anfrage.


Für Punkt 2 braucht man einen DHCP-Server.

Für Punkt 4 braucht man bei Kernel 2.2.x Kernelsupport für RARP. Bei Kernel 2.4.x einen RARP Daemon.


Vorraussetzungen

  • Die DBox2 und euren PC müsst ihr mit einem Crossover-Kabel verbinden.
  • Die DBox2 kann natürlich auch mittels einem normalen Hub (der Hub muss für 10MBit ausgelegt sein, die DBox2 kann keine 100MBit) mit eurem Rechner verbunden werden. ACHTUNG: hier kein Crossover-Kabel verwenden!
  • Wenn ihr nur an der DBox2 ein Nullmodem-Kabel eingesteckt habt (und nicht am PC) kann die DBox2 nicht booten und bleibt 'hängen' --> also Nullmodem Kabel entweder an DBox2 und PC oder ganz weg.


Mit Linux

Ihr braucht ein paar Verzeichnisse :

/dbox
/dbox2
/dbox2/tftpboot


HOSTS

Tragt die DBox2 in eure /etc/hosts ein.

Auszug aus /etc/hosts:

<IP-ADRESSE-DER-DBOX2> dbox 


DHCP SERVER

DHCP Server neu compilieren mit diesen Sourcen (bei so vielen Leuten hat der DHCP Server nicht richtig funktioniert ...)


Auszug aus /etc/dhcpd.conf:

subnet 192.168.1.0 netmask 255.255.255.0 {
}
host dbox {
fixed-address <IP-DER-DBOX2>;
hardware ethernet <MAC-ADRESSE-DER-DBOX2-MIT-:-GETRENNT>;
allow bootp;
server-name <"IP-DES-LINUX-RECHNERS">;
#filename "/dbox2/tftpboot/ppcboot";
}

Dieses Beispiel geht davon aus das eure IP-Adresse im Netz 192.168.1.x sind , fals nicht müsst ihr natürlich Subnet auch noch ändern..

Wichtig sind die " " um die IP-Adresse des Linux Rechners.


RARP

Bei Kernel 2.2.x einfach mit

rarp -s dbox <MAC-ADRESSE-DER-BOX-MIT-:-GETRENNT>

baut diesen Befehl in ein Startscrippt ein, sonst müsst ihr ihn nach jedem Booten wieder neu eingeben...


Bei Kernel 2.4.x müsst ihr euch den RARP Daemon besorgen und dann die MAC-Adresse in die /etc/ethers schreiben. Wichtig ist das ihr den Rarpd mit der Option -e startet !


Auszug aus /etc/ethers:

<MAC-ADRESSE-DER-DBOX2-MIT-:-GETRENNT> <IP-DER-DBOX2>


NFS

Auszug aus /etc/exports

/dbox           dbox(rw,no_root_squash)


TFTP

Auszug aus /etc/inetd.conf

tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /dbox2/tftpboot 


Mit Windows

Ihr braucht ein Paar Verzeichnisse:

c:\dbox
c:\dbox2
c:\dbox2\tftpboot

  • Ihr braucht das Windows Toolkit das Field geschrieben hat, das Tollkit ist DHCP, RARP und TFTP-Server + RSH und Terminal Client !

Ihr findet das Toolkit und eine gute Anleitung dazu unter http://dbox.feldtech.com/. Zum generellen Ablauf des Debug enablen solltet ihr hier auf jedenfall weiterlesen. Wie das alles in Field´s Tool geht steht in seiner Readme.

Hier nochmal ein Dank an Field für sein Tool, das ist echt gut :)


Bei "Lade ... " stehen bleib

Hinweis: Ich erhalte in letzter zeit immer mehr Mails von Leuten die Ihr Flash kaputt gemacht haben. Sowas kann passieren, obwohl es mir noch nicht passiert ist. Wer weiss was die gemacht haben. Was aber klar ist, ist das diese Kurzschlussmethode sehr RISKANT ist. Also genau Überlegen ob ihr das Risiko eingehen wollt !!!


Das ist das Ziehl, die DBox2 muss bei "Lade ..." stehen bleiben und der ChorusKernel muss einen RSH-Deamon auf machen. Das passiert dann, wenn der ChorusKernel aus irgenteinem grund sein Initscrippt nicht findet. Das erreichen wir indem wir zum richtigen Zeitpunkt das Flash abschalten.


Jetzt mal einen Testdurchlauf machen :

  • DBox2 über ein Crossover-Kabel an euren Rechner auf dem RARP und DHCPD laufen, anschliessen.
  • DBox2 anpingen (der Ping wird erstmal nicht beantwortet, aber den Ping im Auge behalten)
    • "Nur für Linux: Der Pingtimeout von Linux ist sehr hoch daher ist das ziehmlich ungenau, es ist aber wichtig das man sofort kurzschliesst sobalt die DBox2 pingbar ist, deshalb am besten 10 pings gleichzeitig in einer Console laufen lassen also mit & starten ... "
  • DBox2 in den Strom stecken , nun lauft erstmal ein Balken von links nach rechts, danach kommt dann "Lade ..." nun solltet ihr eien Ping reply von der DBox2 bekommen kommt er nicht, dann geht RARP nicht.


Wenn der Test Ok war weitermachen, ansonsten Fehler suchen.

  • DBox2 aus aus dem Strom ziehen


Je nach DBox2 Version (Nokia,Sagem oder Philips) ist das anders, deshalb:


Nokia mit 2 * Intel Flash Rams

Ihr müsst zum richtigen Zeitpunkt 2 Lötpunkte auf der Platine verbinden (Schalter auf ON), und zwar die die auf dem Foto hier Rot eingekreist sind.


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Nokia mit 2 * AMD Flash Rams

Ihr müsst zum richtigen Zeitpunkt 2 Lötpunkte auf der Platine verbinden (Schalter auf ON), und zwar die die auf dem Foto hier Rot eingekreist sind.


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Sagem mit 1 * Intel Flash Ram

Einfach zum richtigen Zeitpunkt den Stromstecker abziehen auf dem Foto hier abziehen (Entspricht Schalter auf ON).


Stop hand.png An dieser Stelle muss noch ein Bild rein.

Tipp: Da der stecker gegen unabsichtliches abziehen mit einer Lasche gesichert ist, am besten vorher den stecker schon 2 mm hochziehen so das er schon über der Lasche steht.


Sagem mit 2 * Intel Flash Rams

Einfach zum richtigen Zeitpunkt den Stromstecker abziehen auf dem Foto hier abziehen (Entspricht Schalter auf ON).


Stop hand.png An dieser Stelle muss noch ein Bild rein.

Tipp: Da der stecker gegen unabsichtliches abziehen mit einer Lasche gesichert ist, am besten vorher den stecker schon 2 mm hochziehen so das er schon über der Lasche steht.


Sagem mit 2 * AMD Flash Rams in 2 * Intel Layout

Einfach zum richtigen Zeitpunkt den Stromstecker abziehen auf dem Foto hier abziehen (Entspricht Schalter auf ON).


Stop hand.png An dieser Stelle muss noch ein Bild rein.

Tipp: Da der stecker gegen unabsichtliches abziehen mit einer Lasche gesichert ist, am besten vorher den stecker schon 2 mm hochziehen so das er schon über der Lasche steht.


Sagem mit 2 * AMD Flash Rams in 1 * Intel Layout

Einfach zum richtigen Zeitpunkt den Stromstecker abziehen auf dem Foto hier abziehen (Entspricht Schalter auf ON).


Stop hand.png An dieser Stelle muss noch ein Bild rein.

Tipp: Da der stecker gegen unabsichtliches abziehen mit einer Lasche gesichert ist, am besten vorher den stecker schon 2 mm hochziehen so das er schon über der Lasche steht.


Philips mit 2 * Intel Flash Rams

Ihr müsst zum richtigen Zeitpunkt diesen Lötpunkt mit 3.3 V verbinden (Schalter auf ON).


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Der Zeitpunkt

Der Zeitpunkt zu dem ihr die Pins verbinden müst ist auf jeder DBox2 gleich !

Sobald die DBox2 auf euren Ping antwortet müsst ihr SOFORT die jeweiligen Pins verbinden, und das SOFORT heist auch SOFORT.

Also nicht erst dann anfangen zu suchen was man wie verbinden muss !!

Am besten löst man das indem man an die jeweiligen Pins ein Stück Kabel anlötet, an das mann einen kleinen Schalter macht.


Viele Leute haben ihren Flashinhalt mit dieser Methode gelöscht (kann passieren wenn mann den zeitpunkt nicht genau trifft) daher habe ich diesen Part neu überarbeitet.

Also ihr solltet ein Kabel an die besagten Pins anlöten und dazwischen einen Schalter machen. Der Schalter sollte erstmal auf Offen stehen !!


Trotzdem passiert es das man nicht genau den Zeitpunkt erwischt. Ich habs 100 mal versucht und nur 40 mal hat es geklappt :( . Also wenn es nicht geht, nochmal probieren. Bei euch muss es ja nur einmal klappen.


ACHTUNG:

Falls es nicht geht, erstmal alles nocheinmal Gewissenhaft überprüfen !!

  1. Binn ich geerdet ?
  2. Ist ein Arbeitsmaterial geerdet ?
  3. Hab ich wirklich die richtigen Punkte erwicht ?

Nicht 1000 mal probieren das Flasch kurzzuschliessen !!! lieber mal abwarten, Teetrinken und nochmal alles überdenken !!


DIE PROZEDUR

1. DBox2 Stromstecker ist draussen und der über die Kabel angelegte Schalter steht auf offen (Bei sagem gibt es diesen schalter nicht, dort heist Schalter Offen einfach das das Strockkabel auf dem Bild normal Steckt).

2. DBox2 über ein Crosskabel an euren Rechner auf dem RARP und DHCPD laufen, anschliessen.

3. DBox2 anpingen (der Ping wird erstmal nicht beantwortet, aber den Ping im Auge behalten)

4. DBox2 Stromstecker in die Steckdose stecken.

5. Nun den Ping nicht aus den Augen lassen, wenn die DBox2 den Ping beantwortet müsst ihr den Schalter auf ON legen. Die DBox2 sollte nun bei "Lade ..." stehen bleiben, und der Ping sollte weiterhin beantwortet werden. (Bei Sagem gibt es diesen Schalter nicht, dort heist Schalter ON einfach das das Strockkabel auf dem Bild abgezogen ist). Wird der Ping nicht mehr beatwortet wars der falsche Zeitpunkt, dann den DBox2 Stromstecker rausziehen !!!


Nachdem der Stromstecker draussen ist den Schalter wieder auf offen legen (wirklich erst wenn die Dbox2 keinen Strom mehr hat den Schalter auf offen legen, ansonsten macht ihr euren Flashinhalt kaputt!!!) und dann wieder bei 1 anfangen !!!


6. Wird der Ping nach dem "Schalter auf ON legen" noch immer beantwortet, dann seit ihr ein kleines Stück weiter. Probiert nun: 'rsh dbox help' in eurer Shell, daraufhin sollte eine Ausgabe kommen die so aussieht:

mpg:/ # rsh dbox help
ChorusOS r3 rsh daemon - valid commands are:

mount [hostaddr:filesystem|special_file [mount_point]]
umount [-v|-F|-f|-a|-t [ufs|nfs]] [special_file]
swapon mount_point
arun [-s site] [-S | -U] [-k] [-T] [-d] [-q] [-D] [-Z] actor_name [actor arguments]
akill [-s site] [-c] aid
aps [-s site]
reboot
route [add | delete [net | host] args]
ping host
echo string
setenv var value
unsetenv var
source filename
env
memstat
sleep [time in seconds, default=1s]
help
mpg:/ #


Wenn nichts kommt, dann war es der falsche Zeitpunkt, dann den DBox2 Stromstecker rausziehen!!! Nachdem der Stromstecker draussen ist den Schalter wieder auf offen legen (wirklich erst wenn die DBox2 keinen Strom mehr hat den Schalter auf offen legen, ansonsten macht ihr euren Flashinhalt kaputt!!!) und dann wieder bei 1 anfangen!!!

7. Wenn die Antwort 'help' kommt dann seid ihr wieder ein kleines Stück weiter. Probiert nun: 'rsh dbox mount' in eurer Shell, daraufhin sollte eine Ausgabe kommen die so aussieht:

mpg:/ # rsh dbox mount
C_INIT:
root_device mount on /    (flfs)
mpg:/ #


Das ist das schwerste das bekommt man sehr selten hin:

Wenn nichts kommt, dann war es der falsche Zeitpunkt. Dann den DBox2 Stromstecker rausziehen!!! Nachdem der Stromstecker draussen ist den Schalter wieder auf offen legen (wirklich erst wenn die DBox2 keinen Strom mehr hat den Schalter auf offen legen, ansonsten macht ihr euren Flashinhalt kaputt!!!) und dann wieder bei 1 anfangen!!!


8. Wenn ihr eine Ausgabe so wie sie oben da steht bekommt, dann habt ihr das schwierigste geschaft - Herzlichen Glückwunsch.


Ich wiederhole nochmal lieber:

  1. Die DBox2 sollte nun bei "Lade ..." stehen geblieben sein (das Display sollte sich nicht zu "Einen Moment bitte "ändern)
  2. Die DBox2 muss pingbar sein
  3. Die DBox2 muss auf den Befehl: 'rsh dbox help' eine kleine Help bringen
  4. Die DBox2 muss auf den Befehl: 'rsh dbox mount ' eine Rückgabe liefern die so aussieht:
mpg:/ # rsh dbox mount
C_INIT:
root_device mount on /    (flfs)
mpg:/ #


9. OK, nur wenn wirklich alle vorherigen Punkte erfolgreich waren macht ihr hier weiter!! Ansonsten wieder zurück zu Punkt 1!

10. Schalter auf offen legen! Nur wenn der Schalter auf offen liegt könnt ihr die Files aus der DB ox2 rauskopieren.

11. Mit dem Software rauskopieren weitermachen.


Software Rauskopieren

Auf eurem Rechner muss jetzt noch ein NFSServer laufen:

  • Das Verzeichnis /dbox sollte existieren und sollte per NFS freigegeben sein
  • Im Verzeichnis /dbox müssen die cpR.class und das copy.sh. bzw copy_dbox2.bat Scrippt liegen.
  • Nachdem eure DBox2 nun bei "Lade..." steht und der NFS]-Server auch läuft, könnt ihr den Inhalt mit dem copy.sh Scrippt rüberkopieren.

Einfach 'copy.sh ip-eures-rechners' oder 'copy_dbox2 ip-eures-rechners' im Verzeichnis /dbox eingeben (copy.sh muss natürlich ausführbar sein).

Nun sollte folgende Meldung kommen:

C_INIT: mount 192.168.0.201:/dbox on /lost+found
started aid = 10
//
creating /lost+found/
//usr/
creating /lost+found//usr
//usr/siege/

................... etc ....

Das dauert einige Minuten, wenn es fertig ist habt ihr in /dbox den kompletten Dateisystem Inhalt eures Flashs.


Debug-Mode enablen


Nun braucht ihr noch das Scippt debug.sh bzw debug_dbox2.bat in /dbox.

Der Flashbereich den wir verändern wollen ist Hardwareseitig schreibgeschützt, deshalb muss man jetzt noch ein Paar pins verbinden um den Schreinschutz zu deaktiwieren.


Schreibschutz Disablen

Ist wieder je nach DBox2 anders. Ihr könnt das während des Betriebes machen (aber aufpassen, ein Pin ist 3.3V also nicht im Betrieb mit nem geerdeten Lötkolben rumlöten). Der Schreibschutz muss auch nur für den Zeitraum vom Start der debug.sh bis auf eurem Terminalprogramm "done !!" steht verbunden sein.

Natürlich kann man das grade bei der Philips schlecht, da muss man am besten einen Draht dafür unten auf der Platine anlöten. Wichtig ist, das nachdem die DBox2 im Debug-Mode ist, ihr den Schreibschutz wieder enabled, sonst killt ihr euch später mal ausversehen den Bootloader und damit habt ihr dann nen Briefbeschwerer.


Nokia mit 2 * Intel Flash Rams

Jumper XH4 und XH6 (sind direkt am Flash) setzen. Bei den meisten neueren Boxen sind hier leider keine Jumper mehr eingeloetet, sondern nur noch Lötpunkte. Diese beiden Lötpunkte einfach mit einem Kabel verbinden (Kabel anlöten).


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Nokia mit 2 * AMD Flash Rams

Jumper XH3 setzen. Bei den meisten neueren Boxen sind hier leider keine Jumper mehr eingeloetet, sondern nur noch Lötpunkte. Diese beiden Lötpunkte einfach mit einem Kabel verbinden (Kabel anlöten).


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Sagem mit 1 * Intel Flash Ram

Die 2 Lötpunkte auf diesem Bild verbinden.


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Sagem mit 2 * Intel Flash Rams

Wie auf dem Bild beschrieben verbinden.


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Sagem mit 2 * AMD Flash Rams in 2 * Intel Layout

Die beiden Lötpunkte auf diesem Bild (Pin 14 von jedem Flash) mit dem Lötpunkt auf diesem Bild ( 9V) verbinden.


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Sagem mit 2 * AMD Flash Rams in 1 * Intel Layout

Die beiden Lötpunkte auf diesem Bild (pin 14 von jedem Flash) mit dem Lötpunkt auf diesem Bild ( 9V) verbinden.


Stop hand.png An dieser Stelle muss noch ein Bild rein.


Philips mit 2 * Intel Flash Rams

Den einen Pin (an dem Pin 14 vom Flash ankommt) vom Wiederstand R3556 der leider auf der Rückseite der Platine ist mit 3.3 V verbinden.


Stop hand.png An dieser Stelle muss noch ein Bild rein.


OK nun kann es losgehen

Die DBox2 über ein Nullmodemkabel mit eurem Rechner verbinden, Terminalprogramm starten, Einstellungen : 57600,8n1 kein protokoll 'debug.sh ip-eures-rechners' oder 'debug_dbox2 ip-eures-rechners' im Verzeichnis /dbox eingeben (debug.sh muss natürlich ausführbar sein).


Da kommen jetzt ganz viele Fehlermeldungen, die kann man getrost ignorieren.

Hier aber die wichtigsten Ausgaben :

C_INIT: mount 192.168.0.105:/dbox on /

Und nun ins Terminalprogram gucken (57600,8,n,1)

started aid = 10
INIT Version 0.9 loaded
INIT: library path:
 LD_LIBRARY_PATH=/root/platform/sagem-dbox2/lib:/root/platform/lib:/root/lib:/usr/lib: \
                /root/platform/mpc8xx-dbox2/lib:/root/platform/nokia-dbox2/lib"
INIT: start run level 2
INIT: execute "ddf"
INIT:   time: 3059 sec, 530000000 nsec
INIT:   started aid = 11

Wenn ihr das gesehen habt ist alles OK da kommen eventuel vorher und nachher noch einge Fehlermeldungen, das ist normal !

Wichtig sind die paar Zeilen da oben !


Nun Sollte auf eurem Terminalclient (verbunden über ein Serielles Nullmodemkabel, Einstellungen 57600,8n1 kein Protokoll) folgendes zu sehen sein:

DebugEnabler (c) tmbinc, gillem +(sagem,amd,philips) 1.7
bl-version      : 1.0
product? at     : 10000944
current state   : tmb-locked
flashrom type   : 2x16 bit? yes. vendor: INTEL
unprotecting    : OK!
flashing NOW    : DONE !

wobei die Variablen von Box zu Box anders sind ....


Wenn am Ende kein "Done !!" steht , sondern ein "FAILED!!!" dann hat das Schreibschutz disablen nicht funtioniert (lack auf den lötstellen etc ...).

Wenn "Done!!" da steht, dann ist eure DBox2 im Debugmodus. Ihr könnt sie jetzt aus machen. Das sie im Debugmodus ist seht ihr dann auch nachdem ihr sie an wieder in Strom steckt, nun steht auf dem Display viel mehr info.

Das LCD im Debug-Mode beim Starten


Wenn da steht "bl-version : unknown, please report" dann kennt der Debungenabler euren Bootloader nicht. Überprüft dann erstmal was für eine Version der DebugEnabler hat, das steht in der ersten Zeile. Die Version die mit allen uns bekannten Boxen funktioniert ist die " DebugEnabler (c) tmbinc, gillem +(sagem,amd,philips) 1.6final ". Wenn nicht das da steht, dann habt ihr vergessen '/dbox/root/platform/drv/tuner.so' mit 'tuner.so' von http://dbox2.elxsi.de/files/tuner.so ersetzen.!!!

Holt das nach und probiert es dann nochmal, allerdings müsst ihr wieder von vorne anfangen (also Stromstecker raus ...).


Wenn aber da steht :

DebugEnabler (c) tmbinc, gillem +(sagem,amd,philips) 1.7 "bl-version : unknown, please report"

dann meldet euch bei uns mit eurem Problem und wir kuken das wir euch helfen ....


Weiter geht es jetzt wie gewohnt:


Achtung:

Zunächst ein Image der Originalsoftware auslesen und daraus die UCodes mittels des Bootmanagers extrahieren !!!

Dieser Vorgang ist sehr wichtig, da ihr die Originalsoftware benötigt, um eine funktionierende Linux DBox2 zu erhalten!


Danach könnt ihr ein Linux-Image flashen, z.B. von update.tuxbox.org.



Review-KandidatDieser Artikel befindet sich derzeit im Reviewprozess. Hilf mit, ihn zu verbessern! Falls du bei weiteren Artikeln helfen willst, findest du hier eine Auswahl offener Artikel.