Discussion:
load an etherboot-rom by ethernet
Valentijn Sessink
2004-08-16 17:52:18 UTC
Permalink
Hello,

Is it possible to load an etherboot rom image... by ethernet - and have it
successfully execute and load another image? What I'm trying to do is to
load an etherboot ROM image with RPL boot (an old Novell way of network
booting). In turn, the Etherboot rom image would then load the kernel with
PXEboot.

For some reason things get stuck. The Etherboot ROM will load and start; it
sends DHCP requests, receives an IP address and starts looking for a
tftp-able image.

However, the loading and/or starting of this second image doesn't work. I
either get errors telling me there is some sort of "overlap" in the images
(this is the case when i use mknbi-rom on a kernel image). When I use
mknbi-linux, I get to see the loading of the kernel, then a hard machine
crash (reboot). I presume the linux-kernel is loaded *over* the
etherboot-image, so upon return etherboot crashes.

Does anyone know how I can prevent this?

I've seen
http://sourceforge.net/mailarchive/forum.php?thread_id=5109326&forum_id=6401
which seems to indicate the idea will work, but I can't figure out the right
settings and/or the right image(s) to use.

Until now, I've used 5.2.4-via-rhine-6105.zrom and/or 5.2.4-dlink-530tx.zrom
and my rpld.conf just loaded this file - I can't seem to find differences
when I use different load and execute locations.

(Also, my experience is that to have rpld function, I need a promiscuous
network interface. Is this due to the differences between the IBM rpl-boot
and the Novell one?)

Best regards,

Valentijn


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Vasil Vasilev
2004-08-16 20:57:37 UTC
Permalink
Post by Valentijn Sessink
Is it possible to load an etherboot rom image... by ethernet - and have it
successfully execute and load another image?
Yes. It is being done in variety of ways. Etherboot loads Etherboot or PXE
load Etherboot. Other loaders can load Etherboot too, but then they have to
get out of the way.
Post by Valentijn Sessink
What I'm trying to do is to
load an etherboot ROM image with RPL boot (an old Novell way of network
booting). In turn, the Etherboot rom image would then load the kernel with
PXEboot.
Can you give us more details of exactly what you do? I am confused about your
usage of PXEboot and mknbi. Last time I looked PXE couldn't load nbi images.
You probably mean network boot rather than PXE (PXEboot!=network boot), but
some of the config may just be wrong and this may be the actual problem. So,
send us the Etherboot config from DHCP, what is the exact image you are
loading - how you make it, is it a .rom, .pxe, whatever, what is the image
Etherboot is loading, how do you make that image. All iterations will help.

If all Etherboot configurations are fine and it still doesn't work, then my
guess here is that there is still a resident image in RAM from the RPL boot
which also has interrupt hooks. These probably get overriden on the second
load or maybe even before then when Etherboot moves itself. It all depends on
the the initial loader (RPL in this case). There are two options: (1) the
initial loader should get out of the way before it gives control to the loaded
image; or (2) the loaded image will first tell the loader to get out of the
way. (1) is probably not an option for you. (2) is exactly what we did when we
got a PXE loader to load and execute successfully Etherboot. You need to
understand what RPL does - a spec will help, or images that are loaded by RPL.

It seems there are lots of different protocols in your method : RPL, Etherboot
and PXE. Is there any way you can just program the Etherboot image into the
EPROM where the RPL loader is? [No is good answer too, here].

--
Vasil




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Mike Castle
2004-08-16 21:08:27 UTC
Permalink
Post by Valentijn Sessink
What I'm trying to do is to
load an etherboot ROM image with RPL boot (an old Novell way of network
booting). In turn, the Etherboot rom image would then load the kernel with
PXEboot.
Out of curiosity, how are you serving up RPL? I have an machine that
supports RPL but not PXE, and if I could get an RPL -> etherboot solution
going, that would be way cool. :->

mrc
--
Mike Castle ***@ix.netcom.com www.netcom.com/~dalgoda/
We are all of us living in the shadow of Manhattan. -- Watchmen
fatal ("You are in a maze of twisty compiler features, all different"); -- gcc


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Valentijn Sessink
2004-08-17 16:21:10 UTC
Permalink
Hi,
Post by Mike Castle
Out of curiosity, how are you serving up RPL? I have an machine that
supports RPL but not PXE, and if I could get an RPL -> etherboot solution
going, that would be way cool. :->
Hee, I got it to work. Here's how.

- get rpld http://gimel.esc.cam.ac.uk/james/rpld/index.html version 1.7 (1.8
crashes for me)
- make; make
- set rpld.conf to the following:
HOST {
ethernet = 00:de:ad:be:ef:01;
FILE {
path="/tmp/rom.iso";
load=0x1000;
};
execute=0x1000;
};

start rpld with ./rpld -C ./rpld.conf -f (or something alike)

Then download the http://rom-o-matic.net/5.3.8/ rom image. For some reason,
the "binary rom image" wouldn't work here (it started but hung when
detecting the ethernet card), even if I chose "execute=0x1006" (as someone
suggested on this list). The 5.2.5 would work with a ROM image, but those
don't support PXEboot which is what I want, so I went for 5.3.8 and chose
the "isolinux without floppy" option.

That worked nicely. The 5.3.8 rom would load our pxelinux stuff and in turn
a kernel would load.

The only thing I'm fighting now is that, for some obscure reason, the NIC of
the RPL server needs to be in promiscuous mode. This is probably due to
protocol incompatibilities in IBM/ Novell implementation or so.
Communications now go like this:
RPLclient->broadcast: hello, anyone there?

RPLserver->client: hello, I'm here to serve you

RPLclient->some mac address that I don't recognize: well, send me the files
RPLclient->some mac address that I don't recognize: well, send me the files
RPLclient->some mac address that I don't recognize: well, send me the files
RPLclient->some mac address that I don't recognize: well, send me the files
[ad nauseam]

Why it would have this Mac address is a mistery to me, but a hacking
workaround is to use promisc in the mean time.

We still have some issues with the kernel that's being loaded: the first one
we tried kept crashing and rebooting after the "unloading NIC" message. This
might be due to a wrong processor or kernel size or other unknown things.
We chose another, simpler kernel (the generic Debian boot kernel) and this
made our first RPLbooted workstation (sorta) functioning this afternoon.

Thanks everyone so far!

V.
--
http://www.openoffice.nl/ Open Office - Linux Office Solutions
Valentijn Sessink valentyn+***@nospam.openoffice.nl


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Ken Yap
2004-08-17 23:29:59 UTC
Permalink
Post by Valentijn Sessink
Hee, I got it to work. Here's how.
- get rpld http://gimel.esc.cam.ac.uk/james/rpld/index.html version 1.7 (1.8
crashes for me)
- make; make
HOST {
ethernet = 00:de:ad:be:ef:01;
FILE {
path="/tmp/rom.iso";
load=0x1000;
};
execute=0x1000;
};
start rpld with ./rpld -C ./rpld.conf -f (or something alike)
Then download the http://rom-o-matic.net/5.3.8/ rom image. For some reason,
the "binary rom image" wouldn't work here (it started but hung when
detecting the ethernet card), even if I chose "execute=0x1006" (as someone
suggested on this list). The 5.2.5 would work with a ROM image, but those
don't support PXEboot which is what I want, so I went for 5.3.8 and chose
the "isolinux without floppy" option.
It should really be execute = 0x1003 since the ROM entry point when
called from the BIOS is 3 bytes from the beginning of the image. If you
could try that for closure and report the result that would be good.


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Valentijn Sessink
2004-08-18 08:54:58 UTC
Permalink
Hello Ken,
Post by Ken Yap
Post by Valentijn Sessink
Then download the http://rom-o-matic.net/5.3.8/ rom image. For some reason,
the "binary rom image" wouldn't work here (it started but hung when
detecting the ethernet card), even if I chose "execute=0x1006" (as someone
It should really be execute = 0x1003 since the ROM entry point when
called from the BIOS is 3 bytes from the beginning of the image. If you
could try that for closure and report the result that would be good.
Hmm. That just stopped the PC, so I decided to try a whole bunch of
"execute" entries. (N.B. I'm a total nitwit where it comes to RPL, so let's
pretend that I don't even know what "execute" means - I do, but it makes the
sort of testing clearer ;)
load=0x1000;
execute=0x1000: immediate hang (meaning: there's no trace of the Etherboot
ROM executing, the computer stops with a blank screen immediately after
(supposedly) having loaded the ROM over the network).
execute=0x1001 - 1005: immediate hang as well
execute=0x1006: ROM runs, but stops after "analyzing media type......" when
I use the Romomatic ROM, NIC type "via-rhine:via-rhine-6105 --
[0x1106,0x3106]" and output format "binary ROM image (zrom)".
Running the same NIC but taking "ISO bootable image without legacy floppy
emulation" for ROM output format (and "execute=0x1000") runs perfectly.

N.B. I searched for RPL information/doc/specs but didn't find any.

V.
--
http://www.openoffice.nl/ Open Office - Linux Office Solutions
Valentijn Sessink valentyn+***@nospam.openoffice.nl


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Ken Yap
2004-08-18 11:17:58 UTC
Permalink
Post by Valentijn Sessink
Hmm. That just stopped the PC, so I decided to try a whole bunch of
"execute" entries. (N.B. I'm a total nitwit where it comes to RPL, so let's
pretend that I don't even know what "execute" means - I do, but it makes the
sort of testing clearer ;)
load=0x1000;
execute=0x1000: immediate hang (meaning: there's no trace of the Etherboot
ROM executing, the computer stops with a blank screen immediately after
(supposedly) having loaded the ROM over the network).
execute=0x1001 - 1005: immediate hang as well
execute=0x1006: ROM runs, but stops after "analyzing media type......" when
I use the Romomatic ROM, NIC type "via-rhine:via-rhine-6105 --
[0x1106,0x3106]" and output format "binary ROM image (zrom)".
Running the same NIC but taking "ISO bootable image without legacy floppy
emulation" for ROM output format (and "execute=0x1000") runs perfectly.
Ok, thanks for the testing, I'll remember those results for the day I
dig into RPL.


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Valentijn Sessink
2004-08-18 13:13:33 UTC
Permalink
Hello Ken,
Post by Ken Yap
Ok, thanks for the testing, I'll remember those results for the day I
dig into RPL.
If you have any publicly available documentation for RPL, I'd be glad to get
a pointer to it. This strange MAC address bothers me, and although I've been
thinking about reverse engineering the RPLD, I'd rather read the docs before
starting to hack around randomly.

Thanks for your help!

Best regards,

Valentijn
--
http://www.openoffice.nl/ Open Office - Linux Office Solutions
Valentijn Sessink valentyn+***@nospam.openoffice.nl


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Ken Yap
2004-08-18 13:35:42 UTC
Permalink
Post by Valentijn Sessink
If you have any publicly available documentation for RPL, I'd be glad to get
a pointer to it. This strange MAC address bothers me, and although I've been
thinking about reverse engineering the RPLD, I'd rather read the docs before
starting to hack around randomly.
Sorry, you know more about RPL at the moment than I do. I have never
looked into it. Let us know what you find out.


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285

Ken Yap
2004-08-16 21:00:54 UTC
Permalink
Post by Valentijn Sessink
Is it possible to load an etherboot rom image... by ethernet - and have it
successfully execute and load another image? What I'm trying to do is to
Yes, but so far it's only been done with Etherboot loading Etherboot.
I don't know what the issues are with RPL loading Etherboot.
Post by Valentijn Sessink
load an etherboot ROM image with RPL boot (an old Novell way of network
booting). In turn, the Etherboot rom image would then load the kernel with
PXEboot.
For some reason things get stuck. The Etherboot ROM will load and start; it
sends DHCP requests, receives an IP address and starts looking for a
tftp-able image.
However, the loading and/or starting of this second image doesn't work. I
either get errors telling me there is some sort of "overlap" in the images
(this is the case when i use mknbi-rom on a kernel image). When I use
mknbi-rom is not meant to be run over a kernel image, only an Etherboot
ROM image for loading by Etherboot.
Post by Valentijn Sessink
mknbi-linux, I get to see the loading of the kernel, then a hard machine
But if you wanted to load a kernel by PXE you should not use
mknbi-linux, but pxelinux.
Post by Valentijn Sessink
crash (reboot). I presume the linux-kernel is loaded *over* the
etherboot-image, so upon return etherboot crashes.
Normally Etherboot relocates itself to high memory and also will
indicate if there is any overlap so this should not happen. But I don't
know whether your RPL load method interferes with this in some way since
I've never had a RPL ROM to try. Also are you sure your kernel can run
on machine in question, e.g. not a kernel compiled for a Pentium loading
on a 486?


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
Loading...