u-boot und DBox Bootmanager?

Diskussionen um Bootloader, Kernel, Busybox
Markus_Heiden
Neugieriger
Neugieriger
Beiträge: 19
Registriert: Dienstag 11. Februar 2003, 23:37

u-boot und DBox Bootmanager?

Beitrag von Markus_Heiden »

Moin,

da ppcboot ja von u-boot abgelöst wurde stellt sich die Frage, wie man das Teil den bootet. Ich habe es mit dem DBox Bootmanager versucht und es geht nicht. Der Bootloader (u-boot) wird zwar geladen, findet dann aber logo-fb nicht, da ein (zweiter) BOOTP request nicht beantwortet wird.

Was kann man da machen (ausser Linux zu benutzen)?
dr.sung
Interessierter
Interessierter
Beiträge: 36
Registriert: Dienstag 11. Februar 2003, 18:35

Beitrag von dr.sung »

Ich habe mir die Sache mal mit dem Netzwork Monitor angeschaut.

Es ist so, dass der erste BootP-Request von der dbox mit Source-Port 0 gesendet wird. Darauf spricht wohl der Bootmanager an.

Der dann geladene u-boot sendet den gleichen BootP-Request mit Source-Port 68 (=BootP-Client). Dieses Paket ignoriert der Bootmanager aber.

Ich weiss nicht was in den RFC drin steht, aber ich glaube ein BootP-Request sollte immer mit Source-Port 68 gesendet werden. Es scheint also eher ein Bug im BL zu sein.

Ich werde jetzt mal versuchen den u-boot zu patchen, dass er auch mit Source-Port 0 sendet. Vielleicht gehts dann mit dem Bootmanager weiter.
HEAD
Einsteiger
Einsteiger
Beiträge: 313
Registriert: Freitag 14. Februar 2003, 15:59

Beitrag von HEAD »

unter Linux:
debug: DDF: Calibrating delay loop... debug: DDF: 66.76 BogoMIPS
debug: BMon V1.0 mID 02
debug: feID 00 enxID 03
debug: fpID 52 dsID
debug: HWrev 01 FPrev 0.30
debug: B/Ex/Fl(MB) 32/00/08
debug: &_text 0x10000, &_etext 0x26d40, &_data 0x26d40, &_edata 0x2a83c
debug: &_end 0x357c4, &__stack 0x400000
debug: Memory tests (0x400000 -- 0x2000000)
debug: NumberTest: debug: DDF: Calibrating delay loop... debug: DDF: 66.76 BogoMIPS
debug: BMon V1.0 mID 02
debug: feID 00 enxID 03
debug: fpID 52 dsID
debug: HWrev 01 FPrev 0.30
debug: B/Ex/Fl(MB) 32/00/08
dbox2:root> debug:
BOOTP/TFTP bootstrap loader (v0.3)
debug:
debug: Transmitting BOOTP request via broadcast
debug: Got BOOTP reply from Server IP 192.168.5.3, My IP 192.168.5.25
debug: Sending TFTP-request for file /dbox2/tftpboot/u-boot
will verify ELF image, start= 0x800000, size= 955246
verify sig: 262
boot net: boot file has no valid signature
Branching to 0x40000


U-Boot 0.2.1 (TuxBox) (Feb 17 2003 - 12:03:03)

CPU: PPC823ZTnnB2 at 66 MHz: 2 kB I-Cache 1 kB D-Cache
Board: DBOX2, Phillips
Watchdog enabled
I2C: ready
DRAM: 32 MB
FLASH: 8 MB
Using default environment

FB: ready
LCD: ready
In: serial
Out: serial
Err: serial
Net: SCC ETHERNET
rescan: First time in use
Scanning JFFS2 FS: done.
find_inode failed for name=logo-fb
load: Failed to find inode
can't find logo in flash - try network
BOOTP broadcast 1
DHCP client bound to address 192.168.5.25
ARP broadcast 1
TFTP from server 192.168.5.3; our IP address is 192.168.5.25
Filename 'logo-fb'.
Load address: 0x100000
Loading: *
TFTP error: 'Access violation' (2)
Starting again


Abort
can't find logo
rescan: fraglist zero
Scanning JFFS2 FS: done.
find_inode failed for name=logo-lcd
load: Failed to find inode
ready - can't find logo in flash - try network
BOOTP broadcast 1
DHCP client bound to address 192.168.5.25
ARP broadcast 1
TFTP from server 192.168.5.3; our IP address is 192.168.5.25
Filename 'logo-lcd'.
Load address: 0x100000
Loading: *
TFTP error: 'Access violation' (2)
Starting again


Abort
can't find logo

Options:
1: framebuffer on ttyS0
2: framebuffer on fb0
3: framebuffer on null
Select option (1-3), other keys to stop autoboot: 0
BOOTP broadcast 2
DHCP client bound to address 192.168.5.25
ARP broadcast 1
TFTP from server 192.168.5.3; our IP address is 192.168.5.25
Filename '/dbox2/tftpboot/u-boot'.
Load address: 0x100000
Loading: #################################################################
#################################################################
#########################################################
done
Bytes transferred = 955246 (e936e hex)
..............................................................
Un-Protected 62 sectors
## Booting image at 00100000 ...
Bad Magic Number
=>
dr.sung
Interessierter
Interessierter
Beiträge: 36
Registriert: Dienstag 11. Februar 2003, 18:35

Beitrag von dr.sung »

Hi,

habe Schwachsinn verzapft. Der u-boot sendet zuerst keinen DHCP-Request, sondern einen DHCP-Discover. Dieser wird aber vom Bootmanager nicht erkannt, weil wohl nicht einprogrammiert.

--> Ich versuche mal den u-boot zu überreden, direkt einen DHCP-Request zu senden.
dr.sung
Interessierter
Interessierter
Beiträge: 36
Registriert: Dienstag 11. Februar 2003, 18:35

Beitrag von dr.sung »

... war nicht schwer ich habe einfach die Konfiguration angepasst und DHCP abgeschaltet. u-boot sendet dann nur noch BOOTP-Requests, welche der Bootmanager erkennt.

Jetzt gibts aber ein anderes Problem. Der ppcboot kannte die Environmentvariable '$bootpath', die aus '$bootfile' extrahiert wurde. Zusammen mit '$bootpath' und 'tftpboot/kernel-$img' wurde der Dateiname für den Kernel zusammengestellt.

u-boot kenn aber nicht '$bootpath' nicht. Deshalb wird beim Bootmanager wieder das u-boot Binary angefordert, um es als kernel auszuführen. Dann kommt natürlich der 'Bad Magic Number' Fehler.

Man könnte natürlich im Config-File für die dbox2 das bootcmd abändern und den Pfad zum Kernel fest eintragen. Ist aber nicht sonderlich elegant.

Hat einer der Devs vielleicht ne Lösung?
obi
Senior Member
Beiträge: 1282
Registriert: Montag 12. November 2001, 00:00

Beitrag von obi »

dhcpd 3.x benutzen. config steht in nem anderen topic hier schonmal.
dr.sung
Interessierter
Interessierter
Beiträge: 36
Registriert: Dienstag 11. Februar 2003, 18:35

Beitrag von dr.sung »

obi hat geschrieben:dhcpd 3.x benutzen. config steht in nem anderen topic hier schonmal.
Könnte nur unter Windows / cygwin ein wenig schwierig werden. :wink:
obi
Senior Member
Beiträge: 1282
Registriert: Montag 12. November 2001, 00:00

Beitrag von obi »

ja, also die andere loesung kennst du ja, auch wenn sie nicht elegant ist.
das beste waere natuerlich, des bootmanagers dhcp server zu fixen. hat denn schon jemand der benutzer an field ne mail geschrieben?
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Joh, aber keine Antwort bisher.
There are 10 types of people in the world: those who know binary and those who don't
Ethan Hunt
Interessierter
Interessierter
Beiträge: 80
Registriert: Dienstag 5. Februar 2002, 16:55

Beitrag von Ethan Hunt »

hm... also bei mir klappts mit dhcpd 3.x irgendwie nicht :(
U-Boot 0.2.1 (TuxBox) (Feb 19 2003 - 16:00:59)

CPU: PPC823ZTnnA at 67.200 MHz: 2 kB I-Cache 1 kB D-Cache
*** Warning: CPU Core has Silicon Bugs -- Check the Errata ***
Board: DBOX2, Nokia
Watchdog enabled
I2C: ready
DRAM: 32 MB
FLASH: 8 MB
FB: ready
LCD: ready
In: serial
Out: serial
Err: serial
Net: SCC ETHERNET
rescan: First time in use
Scanning JFFS2 FS: .. done.
find_inode failed for name=logo-fb
load: Failed to find inode
can't find logo in flash - try network
BOOTP broadcast 1
DHCP client bound to address 192.168.0.2
ARP broadcast 1
TFTP from server 192.168.0.1; our IP address is 192.168.0.2
Filename 'logo-fb'.
Load address: 0x100000
Loading: ##########
done
Bytes transferred = 49877 (c2d5 hex)
find_inode failed for name=logo-lcd
load: Failed to find inode
ready - can't find logo in flash - try network
BOOTP broadcast 1
DHCP client bound to address 192.168.0.2
ARP broadcast 1
TFTP from server 192.168.0.1; our IP address is 192.168.0.2
Filename 'logo-lcd'.
Load address: 0x100000
Loading: ##
done
Bytes transferred = 7680 (1e00 hex)

Options:
1: console on ttyS0
2: console on fb0
3: console on null
Select option (1-3), other keys to stop autoboot: 0
BOOTP broadcast 2
DHCP client bound to address 192.168.0.2
ARP broadcast 1
TFTP from server 192.168.0.1; our IP address is 192.168.0.2
Filename 'kernel-cdk'.
Load address: 0x100000
Loading: #################################################################
#################################################################
#############
done
Bytes transferred = 730246 (b2486 hex)
..............................................................
Un-Protected 62 sectors
## Booting image at 00100000 ...
Image Name: dbox2
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 730182 Bytes = 713.1 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Linux version 2.4.20-dbox2 (ethan@debian) (gcc version 3.2.2) #1 Wed Feb 19 16:3
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.1:/dbox2/cdkroot,v3 ip=0
Decrementer Frequency = 252000000/60
mpc8xx-wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)
mpc8xx-wdt: keep-alive trigger activated (PITC: 0x1000)
Console: colour dummy device 80x25
Calibrating delay loop... 66.96 BogoMIPS
Memory: 30620k available (1268k kernel code, 404k data, 76k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.1. (C) 2001, 2002 Red Hat, Inc., designed by Axis Communication.
i2c-core.o: i2c core module
CPM UART driver version 0.03
ttyS00 at 0x0280 is a SMC
ttyS01 at 0x0380 is a SMC
pty: 256 Unix98 ptys configured
eth0: CPM ENET Version 0.2 on SCC2, 00:50:9c:1f:4a:6a
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
D-Box 2 flash driver (size->0x800000 mem->0x10000000)
cfi_cmdset_0001: Erase suspend on write enabled
Using word write method
Creating 5 MTD partitions on "D-Box 2 flash memory":
0x00000000-0x00020000 : "BR bootloader"
0x00020000-0x00040000 : "flfs (ppcboot)"
0x00040000-0x00800000 : "root (jffs2)"
0x00020000-0x00800000 : "flash without bootloader"
0x00000000-0x00800000 : "complete flash"
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
IP-Config: Complete:
device=eth0, addr=192.168.0.2, mask=255.255.255.0, gw=255.255.255.255,
host=dbox, domain=, nis-domain=(none),
bootserver=192.168.0.1, rootserver=192.168.0.1, rootpath=
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
IPv6 v0.8 for NET4.0
IPv6 over IPv4 tunneling driver
802.1Q VLAN Support v1.7 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
Looking up port of RPC 100003/3 on 192.168.0.1
Looking up port of RPC 100005/3 on 192.168.0.1
call_verify: server accept status: 2
call_verify: server accept status: 2
call_verify: server accept status: 2
RPC: garbage, exit EIO
Root-NFS: Server returned error -5 while mounting /dbox2/cdkroot
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or 02:00
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 02:00
<0>Rebooting in 180 seconds..
seltsam ist v.a., dass der pc gar keinen NFS mount request registriert. Mit ppcboot liefs jedenfalls...

hier noch die dhcpd.conf:

Code: Alles auswählen

#ddns-update-style none;
#ddns-updates off;
subnet 192.168.0.0 netmask 255.255.255.0 {
host dbox {
fixed-address 192.168.0.2;
hardware ethernet <MAC>;
allow bootp;
server-name "192.168.0.1";
next-server 192.168.0.1;
option host-name "dbox";
if exists vendor-class-identifier {
	filename "kernel-cdk";
	option root-path "/dbox2/cdkroot";
} else {
	filename "u-boot";
}
} }
vlt. kann ja jemand helfen...
dr.sung
Interessierter
Interessierter
Beiträge: 36
Registriert: Dienstag 11. Februar 2003, 18:35

Beitrag von dr.sung »

Laut rfc heisst ist Error Nr. 5 ein 'I/O error'.

Ob Dir das jetzt weiterhilft, weiss ich nicht, aber wenigstens haste ne Info mehr.. :)
Ethan Hunt
Interessierter
Interessierter
Beiträge: 80
Registriert: Dienstag 5. Februar 2002, 16:55

Beitrag von Ethan Hunt »

nujo, besser als nix, thx :)

evlt. kann ja einer der devs was damit anfangen...
Markus_Heiden
Neugieriger
Neugieriger
Beiträge: 19
Registriert: Dienstag 11. Februar 2003, 23:37

Beitrag von Markus_Heiden »

Moin,

hier ein kleiner Workaround für u-boot und Bootmanager. IP-Adressen und Pfade müssen angepasst werden.

Zu Ersetzen in boot/u-boot/include/configs/dbox2.h:

Code: Alles auswählen

#define CONFIG_BOOTCOMMAND \
  "setenv serverip 192.168.0.10;setenv ipaddr 192.168.0.9;tftp 100000 G/cygwin/dbox2/tftpboot/kernel-cdk;" \
  "setenv bootargs root=/dev/nfs rw nfsroot=192.168.0.10:G/cygwin/dbox2/cdkroot/,v2 ip=192.168.0.9:192.168.0.10::255.255.255.0:dbox::off console=ttyS0;" \
  "bootm"
Markus_Heiden
Neugieriger
Neugieriger
Beiträge: 19
Registriert: Dienstag 11. Februar 2003, 23:37

Beitrag von Markus_Heiden »

Moin,

heute habe ich von Field eine Mail bekommen, daß er noch lebt und daß er sich das Problem mal anschauen wird. Wann er das tut hat er allerdings offen gelassen.