DBox-Debug-Mode-HOWTO
von dridders
v1.00, 30.12.00
changelog:
v1.04, 25.01.01
lexxi (lexxi@gmx.ch)
v1.06, 28.01.01
derget (derget@altavista.net)
v1.22, 04.02.01
derget und lexxi
v1.23, 13.02.01 - Added Sagem Support
derget
v1.3, 23.02.01 - html version
lexxi
v1.31, 14.03.01 - some fixxes
derget und lexxi
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 |
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:
Nokia mit 2* Intel : Jumper XH4 und XH6 brücken. Bei den meisten
neueren Boxen sind hier leider
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)
Sagem mit 1* Intel : Lötpunkte wie auf Bild (http://www.tuxbox.org/sagem/sagem-connect.jpg)
Tipp: Wer nicht löten will , einfach 2 Schaschlick Spiesse in die
beiden Löcher stecken, und sie mit einem Stück
Draht verbinden.
Danach die Box wieder in Strom stecken, und warten bis sie das 'Lade...'
anzeigt.
!! ACHTUNG !!nur für SAGEM boxen mit 1*Intel
Flash und Nokia mit 2* AMD Flash
2.) Kernel entpacken, Patch einspielen und das config-file nach /usr/src/linux/.config
kopieren.
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
in die /etc/ethers trägt man dann folgendes ein: <HW-Adress-mit-:-getrennt>
ip-der-dbox
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
Box vom Strom trennen
keine Jumper mehr eingeloetet, sondern nur noch Loetpunkte. Diese beiden
Loetpunkte einfach mit einem Kabel verbinden (Kabel anloeten).
verbinden.
verbinden.
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"
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
3.) make menuconfig
Wenn ihr gegenüber den Standardeistellungen
nichts ändern wollt, braucht ihr 'make menuconfig' natürlich
nicht mehr aufrufen, müsst
dann aber noch selber den symlink in include
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.
noch neen paar bugs dazu , die da währen
integriert ist (nur rarp-client) als ersatzt brauch mann dann den rarpd
...