CDK booten (nicht flashen)?

Sammlung von Anleitungen und HowTos für dBox2
ArKay
Interessierter
Interessierter
Beiträge: 30
Registriert: Freitag 8. Juli 2005, 20:54

CDK booten (nicht flashen)?

Beitrag von ArKay »

Hallo,

entweder habe ich grundsätzlich etwas falsch verstanden, oder ich mach was falsch. Ich möchte einfach mein kompiliertes CDK booten, ohne das Image flashen zu müssen.

Ich habe mein gentoo System so augesetzt, daß ich nun 2 Netzwerkkarten habe (obwohl das wahrscheinlich überflüssig war, wird sich zeigen). Eine Karte für's LAN, die 2. rein für die dbox.

Die 2. Karte hat die IP 192.168.5.1. Auf dieser eth1 ist ein dhcpd konfiguriert:

Code: Alles auswählen

ddns-update-style none;
allow booting;
allow bootp;

option subnet-mask              255.255.255.0;
option broadcast-address        192.168.5.255;
option routers                  192.168.5.1;
option domain-name-servers      192.168.5.1;
option domain-name              "dbox";

subnet 192.168.5.0 netmask 255.255.255.0 {
}
host dbox {
        hardware ethernet 00:50:9c:XX:XX:XX; # ist natürlich die richtige drin
        fixed-address dbox;
        allow bootp;
        if exists vendor-class-identifier {
                filename "kernel-cdk";
                option root-path "/dbox2/cdkroot";
        } else {
                filename "u-boot";
        }
}
dbox ist in der /etc/hosts als 192.168.5.7 angegeben.

NFS & TFTP daemons sind auch installiert, aber erstmal habe ich Probleme mit dhcp.

Nachdem ich den reboot auf der dbox ausgeführt habe, kommt dort diese fiese Meldung:

Code: Alles auswählen

debug: DDF: Calibrating delay loop... debug: DDF: 66.76 BogoMIPS
debug: BMon V1.3  mID 03
debug: feID 00    enxID 03
debug: fpID 52     dsID 01-f2.ff.4a.08.00.00-36
debug: HWrev 61  FPrev 0.23
debug: B/Ex/Fl(MB) 32/00/08
WATCHDOG reset enabled
dbox2:root> debug:
BOOTP/TFTP bootstrap loader (v0.3)
debug:
debug: Transmitting BOOTP request via broadcast
debug: Given up BOOTP/TFTP boot
boot net failed

Flash-FS bootstrap loader (v1.5)
Ich habe auf dem Rechner ein tail auf /var/log/messages laufen. Dort sehe ich dann, daß der DHCP Request erst ca. 20 Sekunden später eintrifft, bzw. geloggt wird. Jetzt weiss ich nicht, ob diese Verzögerung generell an tail liegt, oder ob die dbox Probleme mit dem Timing hat.

Code: Alles auswählen

Jul 11 06:16:15 arkay eth1: network connection down
Jul 11 06:16:17 arkay eth1: network connection up using port A
Jul 11 06:16:17 arkay speed:           10
Jul 11 06:16:17 arkay autonegotiation: no
Jul 11 06:16:17 arkay duplex mode:     half
Jul 11 06:16:17 arkay flowctrl:        none
Jul 11 06:16:17 arkay irq moderation:  disabled
Jul 11 06:16:17 arkay tcp offload:     enabled
Jul 11 06:16:17 arkay scatter-gather:  enabled
Jul 11 06:16:17 arkay tx-checksum:     enabled
Jul 11 06:16:17 arkay rx-checksum:     enabled
Jul 11 06:16:17 arkay rx-polling:      enabled
Jul 11 06:16:38 arkay dhcpd: DHCPDISCOVER from 00:50:9c:3e:44:7e via eth1
Jul 11 06:16:38 arkay dhcpd: DHCPOFFER on 192.168.5.7 to 00:50:9c:3e:44:7e via eth1
Jul 11 06:16:38 arkay dhcpd: DHCPREQUEST for 192.168.5.7 (192.168.5.1) from 00:50:9c:3e:44:7e via eth1
Jul 11 06:16:38 arkay dhcpd: DHCPACK on 192.168.5.7 to 00:50:9c:3e:44:7e via eth1
Schon ca. 3 Sekunden nach dem boot sehe ich im serial log der Box den BOOTP-Request, ungefähr zu der Zeit erfolgt auch die eth1 up message. Der Request landet aber erst ca. 20 Sekunden später im syslog des Rechners. Woran mag es liegen?

Gruss,
Rainer
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Die Box ist wohl mit einem Crossoverkabel angeschlossen. Dann hat Linux die gleichen Probleme wie Windows - bis die Karte initialisiert ist, hat die Box bereits aufgegeben, etwas vom Netz zu booten.

Am besten einen Switch/Hub zwischen PC und DBox hängen, dann sollte das auch klappen. Oder mit Pfeil hoch und "boot net" an der Box verzögert starten.
There are 10 types of people in the world: those who know binary and those who don't
ArKay
Interessierter
Interessierter
Beiträge: 30
Registriert: Freitag 8. Juli 2005, 20:54

Beitrag von ArKay »

Irgendwann hat es einfach funktioniert. Wenn es beim nächsten mal wieder schiefgeht, werde ich es mal mit dem Switch probieren. Vorher hatte ich es mit nur 1 Karte (für mein LAN und die dbox) und einem Switch probiert, mit exakt demselben Ergebnis. Ich habe die 2. Karte im Rechner aktiviert, weil im LAN selber noch ein anderer DHCP Server (vom WLAN-Router) aktiv ist.

Da auch das nicht gutging, habe ich dann mal das Image generiert und mit FTP hochgeladen. Leider war der CVS von gestern etwas böse, da fehlte insmod (aua). :gruebel:

Theoretisch sollte es doch aber möglich sein, komplett aus dem CVS /home/dbox/dbox2/cdkroot zu booten, oder? Bis jetzt habe ich ihn nur dazu überreden können. u-boot per tftp zu holen.
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Klar geht das, aber dann darf das cdk nicht mit der option "--with-targetruleset=flash" 'configured' werden.
There are 10 types of people in the world: those who know binary and those who don't
ArKay
Interessierter
Interessierter
Beiträge: 30
Registriert: Freitag 8. Juli 2005, 20:54

Beitrag von ArKay »

Das ist ein guter Hinweis, danke!

Jedes mal "make distclean" wird aber nicht nötig sein, oder? Nach dem geänderten configure ein "make all"? Es gibt mehrere clean targets im Makefile. Es wäre gut zu wissen, welche(s) man z.B. nach einem CVS-Update benötigt. Die gesamte Toolchain inkl. Crosscompiler wird man ja nicht jedes mal neu bilden müssen.
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Hmm, welche "Pakete" alle das targetruleset auswerten weiß ich aus dem Kopf jetzt auch nicht.

Nach einem Update müssen die Bereiche nue gebaut werden, in denen es Änderungen gab. Das geschieht leider nicht automatisch. Hier musst Du Dir das Log vom "cvs up" ansehen und die entsprechenden targets neu bauen.

"rm .deps/bla ; make bla"
There are 10 types of people in the world: those who know binary and those who don't
ArKay
Interessierter
Interessierter
Beiträge: 30
Registriert: Freitag 8. Juli 2005, 20:54

Beitrag von ArKay »

Ok, danke. Hab schon gesehen, daß ich .deps/u-boot löschen muss. Und den symlink boot/u-boot/config/u-boot.config ändern von:

u-boot.squashfs.dbox2.h
u-boot.cdk.dbox2.h

... hoffe ich :D