[Etherboot-discuss] undionly.pxe vs pxelinux
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: isac <is...@tr...> - 2008-10-20 09:04:41
|
I'm almost certain that it is a broken pxe code come with my SiS900
(within Aopen 661 mainboard) because gpxe (undionly.kpxe) worked fine
with all other machines I have. Here's a copy of the screen (with some
typos) up to the point where undionly.pxe loops around:
<screen>
Intel UNDI, PXE-2.0 (build 082)
Copyright (C) 1997-2000 Intel Corporation
SiS900 PXE BootROM v.1.09 Hook Int18
CLIENT MAC ADDR: 00 01 80 64 B5 3E GUID: 00000000-0000-0000-000000000001
DHCP....
CLIENT IP: 192.168.100.102 MASK:255.255.255.0 DHCP IP: 192.168.100.254
GATEWAY IP: 192.168.100.254
PXE->EB:PXENV+ at 9D17:00C0, !PXE at 9D17:0060,entry point at 9D17:0104
UNDI code segment 9D17:2442, data segment 8CF3:0240 (563-638KB)
UNDI DEVICE is PCI 00:04.0
563kB free base memory after PXE unload
gPXE 0.9.5--Open Source Boot Firmware--http://etherboot.org
Features:HTTP DNS TFTP iSCSI AoE bzImage COMBOOT ELF Multiboot PXE PXEXT
Press Ctrl-B for gPXE command line....
net0: 00:01:80:64:b5:3e on UNDI (open)
[Link:up, TX:0 TXE:0 RX:0 RXE:0]
Waiting for link-up on net0... ok
DHCP(net0 00:01:80:64:b5:3e)...........Connection timed out(0x4c106035)
No more network devices
Press Ctrl-B for gPXE command line....
</screen>
Then the same repeated 4 times noting changes in the various segment
addresses and free memory as following:
#0 #1 #2 #3 #4
code seg at 9D17 86D7 7097 5A57 4417
data seg at 8CF3 76B3 6073 4A33 33F3
free mem 563 474 385 296 207
(PXENV+, !PXE, entry point, and code have same segment adress)
Then it said this (and stopped):
PXE-E79:NBP is too big to fit in free base memory
Rebuilding gpxe (0.9.5) with 'make DEBUB=dhcp', the above 'DHCP...' line
becomes:
<screen>
DHCP (net0 00:01:80:64:b5:3e).DHCP 0x130a4 transmitting DHCPDISCOVER
.DHCP 0x130a4 transmitting DHCPDISCOVER
..DHCP 0x130a4 transmitting DHCPDISCOVER
...DHCP 0x130a4 transmitting DHCPDISCOVER
........Connection timed out (0x4c106035)
</screen>
which should have looked like this on another machine with a good pxe rom:
<screen>
DHCP (net0 00:01:80:64:b5:3e).DHCP 0x130a4 transmitting DHCPDISCOVER
DHCP 0x130a4 received DHCPOFFER 0x13384 from port 67
DHCP 0x130a4 received DHCPOFFER 0x13384 from 192.168.100.254 has IP addr
DHCP 0x130a4 entering DHCPREQUEST state stored
DHCP 0x130a4 transmitting DHCPREQUEST
DHCP 0x130a4 received DHCPACK 0x13504 from port 67
</screen>
Not really a big problem though. I only had to replace undionly.kpxe
with sis900.pxe to get round the broken pxe code. I was curious however
to note that PXELINUX (syslinux 3.72) seemed to cope with the same
problem better. Like gpxe, it printed some statistics about the
underlying !PXE structure when it started. But then, unlike gpxe, it
managed to grab its config file and booted immediately. Here's what it said:
<screen>
PXELINUX 3.72 2008-09-25 Copyright (C)....
UNDI data segemnt at: 0008CF30
UNDI data segment size: 0240
UNDI code segment at: 0008D170
UNDI code segment size: 2442
PXE entry point found (we hope) at: 9D17:0104
</screen>
All look the same as what undionly.kpxe reported except the code
segment's location (0008D170 vs 9D17). Should they be different?
regards
isac
|