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 ....
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
Wer lieber die Box nochmal unbeschädigt zu kriegen will, kann folgendes
probieren:
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.
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. |
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 |
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)
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.
* 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.
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 |
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
!! ....
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.
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.
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 |
dmx.so braucht ihr für ucode.bin (muss noch von euch verändert
werden)
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.