u-boot und DBox Bootmanager?
-
- Neugieriger
- Beiträge: 19
- Registriert: Dienstag 11. Februar 2003, 23:37
u-boot und DBox Bootmanager?
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)?
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)?
-
- Interessierter
- Beiträge: 36
- Registriert: Dienstag 11. Februar 2003, 18:35
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.
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.
-
- Einsteiger
- Beiträge: 313
- Registriert: Freitag 14. Februar 2003, 15:59
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
=>
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
=>
-
- Interessierter
- Beiträge: 36
- Registriert: Dienstag 11. Februar 2003, 18:35
-
- Interessierter
- Beiträge: 36
- Registriert: Dienstag 11. Februar 2003, 18:35
... 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?
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?
-
- Senior Member
- Beiträge: 1282
- Registriert: Montag 12. November 2001, 00:00
-
- Interessierter
- Beiträge: 36
- Registriert: Dienstag 11. Februar 2003, 18:35
-
- Senior Member
- Beiträge: 1282
- Registriert: Montag 12. November 2001, 00:00
-
- Oberlamer, Administrator & Supernanny
- Beiträge: 10532
- Registriert: Samstag 13. Juli 2002, 10:49
-
- Interessierter
- Beiträge: 80
- Registriert: Dienstag 5. Februar 2002, 16:55
hm... also bei mir klappts mit dhcpd 3.x irgendwie nicht
hier noch die dhcpd.conf:
vlt. kann ja jemand helfen...
seltsam ist v.a., dass der pc gar keinen NFS mount request registriert. Mit ppcboot liefs jedenfalls...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: .. .
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: ##########
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: ##
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: #################################################################
#################################################################
#############
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..
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";
}
} }
-
- Interessierter
- Beiträge: 36
- Registriert: Dienstag 11. Februar 2003, 18:35
-
- Interessierter
- Beiträge: 80
- Registriert: Dienstag 5. Februar 2002, 16:55
-
- Neugieriger
- Beiträge: 19
- Registriert: Dienstag 11. Februar 2003, 23:37
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:
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"
-
- Neugieriger
- Beiträge: 19
- Registriert: Dienstag 11. Februar 2003, 23:37