DBox-Debug-Mode-HOWTO
von dridders
v1.00, 30.12.00
v1.32, 20.03.01
lexxi (lexxi@gmx.ch) & derget (derget@altavista.net)
sh-2.03# |
1. Informationsquellen / Feedback |
2. Voraussetzungen |
3. SAGEM oder NOKIA |
4. Die Prozedur |
5. PPC Boot |
6. Der Linux Kernel |
7. Verwendete RPM's |
8. Bug's |
9. Weiterfürende Infos zur Software |
Bis jetzt gibt es leider noch nicht sehr viele Infos über die DBox2 im Netz. Folgendes haben wir bis jetzt gefunden:
1.) http://dbox2.elxsi.de Die Hauptseite
2.) IRC: im IrcNet im Channel #dbox2 ist fast immer jemand zu finden, der zumindest etwas Ahnung hat. Als Server könnt ihr z.B. ircnet.irc.fu-berlin.de benutzen
3.) http://www.mvista.com - Hier bekommt ihr das CDK, das bei der Entwicklung der Soft für die Box hilft
5.) Eine kleine Anleitung, wie ihr die wichtigsten Programme kompilieren müsst (gcc, binutils, glibc,...)
6.) CRT - einfaches Terminalprogramm für Win9x
8.) Für die Besitzer einer Sagem Box
9.) Das Hardwarebook - Kabel, Stecker...
10.) Pinbelegung des Modems in der Nokia Box
11.) Public FTP des Projektes
12.) EMail: dbox2-help@gmx.de
!! ACHTUNG !!
Um die dbox in den Debugmodus zu bringen braucht man den Inhalt des
Flash Filesystems. Auf dieser Soft liegen Copyright Rechte von diversen
Firmen (SUN, BetaResearch, ....). Daher ist das Bereitstellen dieser Soft
im Internet natürlich Verboten. Die Punkte 2.8 und 2.9 beschreiben
wie ihr die Dateien die ihr aus dem Flash Filesystem braucht, rausbekommt
.
Zuerst mal ein paar allgemeine Sachen, die immer wieder gefragt werden.
* Die dbox und euren PC müsst ihr mit einem Crossover Kabel verbinden.
Crossover => 1 - 3,2 - 6,3 - 1,4 - 4,5 - 5, 6 - 2,7 - 7,8 - 8
* Die dbox kann natürlich auch Mittels einem normalen Hub (der Hub muss für 10mbit ausgelegt sein, die dbox kann nicht 100mbit) mit eurem Rechner verbunden werden, ACHTUNG hier keine Crossover Kabel verwenden!
* Wenn ihr nur an der dbox ein Nullmodem Kabel eingesteckt habt (und nicht am PC) kann die dbox nicht booten, und bleibt 'hängen' --> also Nullmodem Kabel entweder an dbox UND PC oder ganz weg
* Als IP Adressen für eure dbox und euren Rechner verwendet ihr
am besten den Kreis 192.168.1.X
zB: dbox --> 192.168.1.10 , Rechner --> 192.168.1.1 Netmask 255.255.255.0
dbox2# mkdir /dbox
dbox2# mkdir /tftpboot |
#Beispiel /etc/bootptab:
#------------------------------------------------------------------------- dbox:bf=/tftpboot/os:ha=<MAC-ADRESSE-DER-BOX>:ip=<IP-DER-BOX>: sa=<IP-ADRESSE-DES-LINUX-RECHNERS> #------------------------------------------------------------------------- |
#Beispiel /etc/dhcpd.conf:
#------------------------------------------------------------------------- subnet 192.168.1.0 netmask 255.255.255.0 { } host dbox { fixed-address <IP-DER-BOX>; hardware ethernet <MAC-ADRESSE-DER-BOX-MIT-:-GETRENNT>; allow bootp; server-name <"IP-DES-LINUX-RECHNERS">; filename "/tftpboot/os"; } #------------------------------------------------------------------------- |
dbox2# touch /var/stat/dhcp/dhcpd.leases |
#Auszug aus /etc/inetd.conf
bootps dgram udp wait root /usr/sbin/tcpd bootpd -d4 -c /tftpboot |
#Auszug aus /etc/hosts
<IP-ADRESSE-DER-BOX> dbox |
dbox2# rarp -s dbox <MAC-ADRESSE-DER-BOX-MIT-:-GETRENNT> |
dbox2# rarp --list |
#Auszug aus /etc/inetd.conf
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s tftpboot |
#Auszug aus /etc/hosts
/dbox dbox(rw,no_root_squash) |
dbox2# chmod -R 777 /tftpboot |
dbox2# /etc/rc.d/init.d/nfs stop
/ start (nfs)
dbox2# /etc/rc.d/init.d/dhcpd stop / start (dhcpd) dbox2# killall -HUP inetd (bootpd und tftpd) |
dbox2# tail -f /var/log/messages |
dbox2# rsh dbox help |
dbox2# rsh dbox mount <ip des
NFS Servers>:/dbox /lost+found
dbox2# rsh dbox setenv CLASSPATH /usr/siege/lib/siege.jar:/usr/siege/lib/junior.jar:.:/lost+found dbox2# rsh dbox setenv PATH /root/platform/bin:/root/bin:/usr/bin:/usr/siege/bin:/mnt/bin dbox2# rsh dbox setenv TZ MET-01METDST-02,J84,J302 dbox2# rsh dbox setenv LD_LIBRARY_PATH /root/platform/lib:/root/lib:/usr/lib dbox2# rsh dbox setenv SIEGEHOME /usr/siege dbox2# rsh dbox arun siegep cpR / /lost+found |
dbox2# chmod -R 777 /dbox |
Es gibt zur Zeit 2 verschieden Hersteller von der DBOX2 Nokia
und Sagem, und diese noch in verschieden versionen was die Austatung
des Flash Rams betrifft. Folgende dboxen werden unterstützt:
NOKIA mit 2* INTEL 32 Mbit Flash Beschriftung (28F320C3)
NOKIA mit 2* AMD 32 Mbit Flash Beschriftung (am29DL323)
SAGEM mit 1* INTEL 64 Mbit Flash Beschriftung (28F640J3)
SAGEM mit 2* INTEL 32 Mbit Flash Beschriftung (28F320C3)
Andere Flashbestückungen sind uns bis jetzt nicht bekannt wer ne dbox2 mir anderen Flash´s hat soll sich mal im irc-netzt im channel #dbox 2 melden ....
Wer lieber die Box nochmal unbeschädigt zu kriegen will, kann folgendes
probieren:
Es gibt inzwischen auf http://dbox.fqdn.org/tiab/
die erste minidistrie für die dbox , da ist alles was man dafür
braucht um auf der box linux zum Laufen zu bringen, und auch die bis jetzt
entwickelte Soft dafür, das ist ABER NOCH IMMER NUR WAS FÜR ENTWICKLER
!! ....
Ihr habt ja schon in Punkt 2.9 den Inhalt des flfs (Flash Filsystem)
auf euren NFS Server kopiert, dort findet ihr alle Firmwares und Microcodes.
dmx.so braucht ihr für ucode.bin (muss noch von euch verändert
werden)
1.) Verbindet die Box via Netzwerk mit dem Linux-Rechner.
Am Besten klemmt ihr die Box auch gleich via Nullmodemkabel an ein Terminalprogramm
(Einstellung: 57600, 8N1, Kein Protokoll/Handshaking).
2.) Box in den Strom stecken (ja geht die denn da rein??)
3.) Die Box sollte jetzt bei "Lade..." stehen bleiben. Wenn
Sie "Starte Vxxx" anzeigt ist irgendwas schiefgelaufen, kontrolliert dann
nochmal oben die Schritte. Einfach 'tail -f /var/log/messages' eintippen
und die letzten Aktionen kontrollieren.
4.) Wenn ihr
dbox2# rsh dbox help
5.a) NOKIA DBOX aufschrauben
Für die hinteren Schrauben geht ein normaler Torx T-10. Für die
seitlichen Schrauben braucht ihr theoretisch einen Spezial-Torx. Es geht
aber auch anders. :-) Wenn die Garantie nicht interessiert, für den
gehen folgende Moeglichkeiten:
a) Die Schrauben einfach mit einer Zange rausdrehen
b) einen Phasenprüfer verkantet ansetzen und damit die Schrauben
rausholen
c) es soll auch mit Uhrmacherschraubenziehern gehen
b) die Nippel in der Mitte lassen sich wohl auch rausbrechen. Danach
geht das Schrauben dann auch einfacher
a) passenden Schraubenzieher besorgen. Gibts bei verschiedenen Spezial-Geschäften,
ist der gleiche wie bei der DBox1. Es gibt bei Westfalia (www.westfalia.de)
ein 100 Teiliges Spezial Bit Set für 29.90 DM (Art. Nr. 102269)
b) Einen normalen Torx nehmen, und in die Mitte ein passendes Loch
bohren. Die Box hat zwar eigentlich nur 5 statt 6 Ecken, aber es soll trotzdem
gehen.
c) Einem Phasenprüfer einen Schlitz in die Mitte feilen. Damit
gehts dann wenn man vorsichtig ist auch ohne Spuren.
5.b) SAGEM DBOX aufschrauben
Alles nur normale TORX :) das sollte kein Problem sein
6.) Jumper setzen
Tipp: Wer nicht löten will , einfach 2 Schaschlick Spiesse
in die beiden Löcher stecken, und sie mit einem Stück Draht verbinden
Nokia mit 2 * Intel
Jumper XH4 und XH6 brücken. Bei den meisten neueren Boxen sind
hier leider keine Jumper mehr eingeloetet, sondern nur noch Loetpunkte.
Diese beiden Loetpunkte einfach mit einem Kabel verbinden (Kabel anloeten).
Nokia mit 2 * AMD
Nur Jumper XH3 brücken
Sagem mit 2 * Intel
Lötpunkte wie auf Bild (http://www.noernet.de/dbox2/pics/Sagem_2xIntel.jpg)
verbinden
Sagem mit 1 * Intel
Lötpunkte wie auf Bild (http://www.tuxbox.org/sagem/sagem-connect.jpg)
verbinden.
Danach die Box wieder in Strom stecken, und warten bis sie das 'Lade...'
anzeigt.
7.) Die dbox updaten
dbox2# rsh dbox setenv PATH /root/platform/bin:/root/bin:/usr/bin:/usr/siege/bin:/mnt/bin
dbox2# rsh dbox setenv TZ MET-01METDST-02,J84,J302
dbox2# rsh dbox setenv LD_LIBRARY_PATH /root/platform/lib:/root/lib:/usr/lib
dbox2# rsh dbox setenv SIEGEHOME /usr/siege
dbox2# rsh dbox setenv CLASSPATH /usr/siege/lib/siege.jar:/usr/siege/lib/junior.jar:.:/lost+found/
dbox2# rsh dbox umount /
dbox2# rsh dbox mount <ip des NFS-Servers>:/dbox /
dbox2# rsh dbox arun initactor -v -V -i 4
8.) Box neu starten
Die Box vom Strom trennen und die Jumper entfernen. (WICHTIG !! Nur wenn
die Jumper nicht gesetzt sind ist der Bootloader geschützt und kann
von euch durch irgendwelche Spielerein nicht zerstört werden) So,
eure Box sollte jetzt im Debug-Mode sein. Erkennen koennt ihr das daran,
dass die Box beim Starten jetzt einige Infos über den Bootloader ausgibt.
5. PPC Boot
1.) Besorgt euch ppcboot-0.6.4 (ftp://ftp.denx.de/pub/ppcboot/),
und entpacken es am Linuxrechner nach ..../dbox_ppcboot (legt ein neues
Verzeichnis mit dem Namen 'ppcboot-0.6.4' an). Nun braucht ihr noch das
diff für ppcboot-0.6.4 von http://dbox2.elxsi.de. Entpackt es nach
..../dbox_ppcboot/ppcboot-0.6.4/.Nun in ..../dbox_ppcboot/ppcboot-0.6.4/
den patch ausführen.
dbox2# patch -p1 <ppcboot-0.6.4-dbox.diff
#Auszug aus dem Makefile
CROSS_COMPILE = ppc_8xx-
#Auszug aus config_dbox.h
#define CONFIG_BAUDRATE 9600
#Auszug aus uart.c
bd->bi_baudrate=9600; /* kann mir wer erklären was das soll? */
#Auszug aus config_dbox.h
#if 0
#define CONFIG_BOOTDELAY -1 /* autoboot disabled */
#else
#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
#endif
...........................
...........................
#define CONFIG_BOOTCOMMAND "bootp 100000 /tftpboot/dbox-linux;
bootm 100000"
#Auszug aus config_dbox.h
#define CONFIG_BOOTARGS "root=/dev/nfs rw nfsroot=10.0.0.1:/opt/hardhat/devkit/ppc/8xx/target"
!! ACHTUNG !!nur für SAGEM boxen mit 1*Intel
Flash und Nokia mit 2* AMD Flash
In Zeile 36 von '.../dbox_ppcboot/ppcboot-0.6.4/dbox/flash.c' return
8 * 1024 * 1024;" einfügen.
#Auszug flash.c Zeile 36
return 8 * 1024 * 1024;
dbox2# make dbox_config &&
make
5.) das so in '.../dbox_ppcboot/ppcboot-0.6.4/' entstandene
ppcboot nach /tftpboot/ kopieren.
6.) In /etc/bootptab \ /etc/dhcpd.conf den Namen des Bootfiles
ändern.
os --> ppcboot
einfacher wäre natürlich nur den Namen des files zu änder
(/tftpboot/os loeschen, .../dbox_ppcboot/ppcboot-0.6.4/ppcboot nach /tftpboot/
kopieren und in /tftpboot/os umbenennen, aber Hand auf Herz, wer will's
schon einfach haben ;-)
7.) bootpd \ dhcp neu starten
dbox2# killall -HUP inetd
dbox2# /etc/rc.d/init.d/dhcpd stop/start (bei RedHat)
6. Linux Kernel
1.)Besorgt euch den 2.4.2er Kernel 'www.kernel.org' ,und
den Kernel patch von http://dbox.fqdn.org/kernel/2.4.2/linux-2.4.2.dbox+mtd.kju.diff.gz
2.) Kernel entpacken, Patch einspielen und das config-file nach
/usr/src/linux/.config kopieren.
3.) In /usr/src/linux 'make xconfig' ausführen, dann 'make
dep', 'make clean' und 'make zImage' ausführen. ( wer auf der Konsole
arbeitet, macht natürlich 'make menuconfig'). Wenn ihr gegenüber
den Standardeistellungen nichts ändern wollt, braucht ihr 'make xconfig'
natürlich nicht mehr aufrufen, müsst dann aber noch selber den
symlink anlegen
dbox2# ln -s include/asm-ppc/ include/asm
4.) Der so enstandene Kernel muss noch ppcboot kompatibel gemacht
werden. Das geht am einfachsten mit dem Script 'mkimg', das in .../dbox_ppcboot/ppcboot-0.6.4/
liegt. Einfach mal in das Script reinschauen, die Pfade anpassen und ausführen.
Bei Problemen die Rechte des Skripts ändern
dbox2# chmod ugo+x mkimg
5.)Es gibt auf 'http://dbox.fqdn.org/kernel/2.4.2/' einen fertig
kompelierten Kernel. Ausserdem auch auf der tuxbox Projectpage auf berlios
(http://developer.berlios.de/projects/tuxbox/) bzw auf dem public ftp von
berlios.
7. Verwendete RPM's
* dhcp-2.0-5.i386.rpm
* bootparamd-0.10-24.i386.rpm
Besorgt euch von ftp://ftp.mvista.com/pub/cdimages/CDK/1.2/ das iso-CD
Image (powerpc_000808.cdimage). Mit 'Adaptec Easy CD Creator' oder einem
ähnlichen Tool brennt ihr dann eure CD. CD einlegen und aus dem Verzeichnis
/mnt/cdrom/ppc_8xx/RPMS alle *.noarch.rpm und *.i386.rpm installieren.
Wenn ihr Probleme mit der Installation habt spielt zuerst 'hll-ppc_8xx_busybox...rpm'
ein, viele andere RPM's brauchen 'busybox' bereits als link Schaut nach,
ob /opt/hardhat/devkit/ppc/8xx/bin in eurer PATH Umgebung ist.
8. Bug's
SUSE 7.0 und RED-HAT 7.0 , der DHCP Server überträgt den
link zum kernel nicht richtig im tcpdump sieht man sowas wie 'file "/tftpboo"'
anstatt 'file "/tftpboot/os"'.
Keine Ahnug warum das so ist, und warum das nicht bei allen ist. Einfach
DHCP neu compilieren, dann geht's . ( am besten mit dhcp-2.0pl5)
!! ACHTUNG !! SUSE 7.1 Bei der Suse Distribution
wird tftp mit der option -s in der inet gestartet ... d.h man (oder frau?!)
darf bei os keinen pfad angeben sonst geht der ppcboot nicht.
Das Kommando rarp -s .... geht nicht ordentlich auf den neueren Distris,
da in den neuen Kernel-versionen (wohl alle 2.4.x) Rarp-Server-support
nicht mehr integriert ist (nur rarp-client)
als Ersatzt brauch man dann den rarpd ... in die Datei '/etc/ethers'
trägt man dann folgendes ein: <HW-Adresse-mit-:-getrennt> ip-der-dbox
#Auszug aus /etc/ethers:
00:50:xx:xx:xx:xx 192.168.40.4
9. Weiterführende Info's zur Software
Um diese zum Laufen zu bringen braucht ihr noch ein paar Firmwares
aus der Dbox, die aus Copyright-technischen Gründen nicht in der Distrie
sind.
cam-alpha.bin
/sec/platform/drv/
Firmware der CAM
c42d6753794dd95146eac31f2a65b516
500v093.ux
/root/platform/drv/
Microcode vom avia500
fece1d3324e0917b921d814490d8a824
600vb0127.ux
/root/platform/drv/
Microcode vom avia600
da492146ba7e177883feadaa0cf89aa5
dmx.so
/root/platform/drv/
Microcode vom avia gtx
0b4d9dfcc42b09036292eb40e6387355
ucode.bin
selber machen
Microcode vom avia gtx
d4c12df0d4ce8ba9eb858509d832df65
dbox2# dd if=dmx.so of=ucode.bin
count=2048 bs=1 skip=24720
!! ACHTUNG !! Alle Firmwares und Microcodes müssen aus der Version BR 1.5 sein.