I have just done something very perverse, and quite inexplicably it seems to be working.
I have an Amptron Eureka SD-4925A. More accurately, work has one. I’m charged with getting it to boot Linux from the network and run an RDP client (probably rdesktop). I’m told the machine has network booting capabilities. OK, no problem. I take it home and look at it.
It will boot off the network. Unfortunately its boot protocol is something called “Novell RPL.” This is different from “IBM RPL,” especially because IBM RPL is supported in Linux but Novell’s is not. (I think I read something to the effect of “Novell won’t release specs for RPL.”) This does not make me a happy dictator. So now my boss thinks I should give up and boot from floppy or CD-ROM. Floppy is unreliable, though, and I can’t update CD-ROM without physically replacing it.
Somehow I start reading about Etherboot which provides a sort of “boot ROM” for your computer. You can load it off a floppy disk, or… some people seem to be putting it to EEPROM. What’s this? Some people are putting it in Award BIOSes? Hm. Unfortunately I have an AMI BIOS (though the most recent revision for my board at Amptron’s site mysteriously seems to be an Award BIOS). Not many instructions on this.
Now I find an IRC log from #ltsp (LTSP being the Linux Terminal Server Project I believe) mentioning the fact that a person named Dave Anders has some utilities you can use to modify an AMI BIOS. I got on #ltsp and talked to him. He was the one that got me started on the correct path of evil that lead to using a modified BIOS.
WARNING: If you were to follow the instructions I’m spewing forth here, you may render your computer unusable, damaged, or even turn it in to an evil sentient being bent on the domination of the entire human race — starting with you. I am not responsible for broken equipment, damage, loss of data, hair, or erectile dysfunction. The instructions henceforth are what I did. I do not guarantee this will work for you. I’m still fucking shocked it worked for me. I make a lot of assumptions here based on what my system is like. For example, I have a PCI NIC (on-board).
You’ll need a plain DOS boot disk, and probably a second blank floppy
to load two utilities and a BIOS image on to. Boot off the floppy and
use B:
when you’ve booted up. Then when it asks you to insert
the floppy for B:
(unless you’ve got two floppy drives) insert
the disk with the utilities and BIOS image on it.
First, back up your BIOS. I had to use the
AMINF332.EXE
utility from Amptron’s BIOS
page. The newest AMI flash
utility wouldn’t work; something about “Chipset/part not available”
when I ran it, IIRC. You probably need to do this from a plain DOS
boot disk. The command line is something like: AMINF332.EXE
/SBACKUP.ROM
. This should save your current BIOS to BACKUP.ROM
.
When I did it the size of my BIOS images were always 262,144 bytes.
At this point, make a copy of BACKUP.ROM
to another disk. Make
several copies. If you fuck up, you’ll thank yourself.
You’ll need an Etherboot image for your card. The nice people at
Etherboot (I think they’re responsible) created
http://www.rom-o-matic.net/ to help you create a boot ROM. You want
to make a binary image; it’ll have an extension of .lzrom
. If you
don’t know what kind of Ethernet card you have, like I didn’t, I
recommend the following: boot in to Linux. I used a Linuxcare
Bootable Business CD-ROM I had lying about, but anything that you can
run lspci
on should do. Find the device and vendor IDs for your
Ethernet card. In my case, for example, lspci
showed me an
Ethernet controller on 00:12.0 or something like that. Then you can
do an lspci -n
and find the numbers after “Class XXXX” (where XXXX
is four hexadecimal digits). These will be in the format (at least on
my machine) of “VVVV:DDDD” where VVVV is the vendor ID and DDDD is the
device ID. You can check someplace like the Etherboot list of
supported
hardware,
or a similar source from the latest version available on
http://www.rom-o-matic.net/. I find “0×1106,0×3065″, look up in the
list, and spot “family via-rhine”. That’s the “NIC/ROM type” I need
to use on http://www.rom-o-matic.net/. Save the resulting ROM to
your floppy disk.
Now you’ll need to put the utility
AMIBCP.EXE
on
a floppy. Next run AMIBCP.EXE BACKUP.ROM
. (You’d better have a
copy of BACKUP.ROM
elsewhere!) You’ll get a nice menu-driven
interface, DOS-style. Select “Edit BIOS Modules”.
Here’s the tricky part. At the bottom right-ish corner it says
“Available Memory” (well, actually, it says “Availabel Memory”, but
you get the idea) and to the right of that in parenthesis is the
number of bytes remaining. You’re going to need enough available
memory to insert your Etherboot ROM. To find out how much space it’s
going to need, first press the insert key and type in the name of your
Etherboot image file. The next screen should be “Change Module
Characteristics”. For “Module ID” it should say something like “20h
PCI AddOn ROM”. Use the arrow keys to move down to “Compressed” and
press the plus key (+
) to change that to “yes”. Now look up a
couple lines at the value in the parenthesis after “Module Size”.
This is how much available memory you’re going to need. For example,
in my case I was going to need 14,518 bytes. Press the escape key
twice to get back to the “Edit BIOS Modules” screen. Now if you don’t
have enough available memory you’ll need to delete some things.
I got lucky with deleting modules. I found another module which was a “PCI AddOn ROM” and had “3065:1106″ listed in the right-most column. I now presume this was the old Novell RPL boot code for the network card. I deleted this and had plenty of space. The only other things I’m somewhat certain can be deleted is something like “OEM Logo” or “EPA / OEM Logo”. I’m not even real sure about this, but Dave Anders was able to do this in his case. I also note that, back from the main menu, I could select “Configure BIOS Options”, then scroll down to the bottom of the list and disable “Display AMI Logo” and “Display OEM Logo”. If you have to delete the OEM logo from the BIOS, you may want to turn off both of these options. I’ll also note that I read somewhere that you should not delete the “Image Display Code” (or “Image Dsiplay Code” as it appears in my BIOS); I don’t know if this is still valid.
Once you have enough space, do what we did before to check the size of
the Etherboot ROM: press insert, enter the file name of the Etherboot
ROM, change “Compressed” to “yes”. Instead of pressing escape twice
to get back to the “Edit BIOS Modules” screen, though, press F10 to
save these changes. It may ask you to confirm, which I think requires
to press enter to confirm. You should see your new “PCI AddOn ROM” at
the bottom of the list. Now press escape to go to the main menu and
select “Save BIOS To Disk File”. I just overwrote my BACKUP.ROM
because there wasn’t enough disk space to write a new ROM AFAIK.
Once you’re done with that, exit the AMIBCP
utility. Now it’s
time to flash your ROM file back up to the motherboard. Type
AMINF332 YOUR.ROM /A
where YOUR.ROM
is whatever you saved your
ROM as in AMIBCP
, above. For example, I saved my ROM back out to
BACKUP.ROM
, so I’d type AMINF332 BACKUP.ROM /A
. This should
flash your computer then immediately reboot. When you reboot, enter
the CMOS settings; in my case it asked me to go in to setup anyway,
because in the process of flashing I guess your settings are erase. I
loaded optimal settings and then went in to select boot devices. On
my BIOS, a selection called “via-rhine.lz” or some such showed up. I
selected this as the third boot device, behind floppy disk and CD-ROM.
Save and exit with your BIOS parameters. Let your computer get to the
point of trying to boot off the network. You should see something
about “Etherboot” come up. Voila!
Just that easy. I’m fucking stunned this worked. All props to Dave Anders, without whom I probably would have given up, and the Etherboot team for making something so bizarre and useful so easy.
More reports on if this really works once I get a bootable image up and such. I can see my DHCP server responding already, but it’s not sending any boot image information out so I don’t expect Etherboot cares about the replies.
Many thanks, for the pleasure time you give
me from your fresh brain think.
With greeting regards.
I spent a week trying to figure out how to get my RPL boards to boot, and it’s right here. I have a similar board (same ethernet controller), though it’s a Matsonic which has the added fun of NOT being able to use AMIBCP in graphical mode for edits (thus learning the intricacies of the command-line). Not a problem– I could use the GUI to confirm I had made the right changes, and booted up and *bingo* there’s my etherboot ROM, built my image, and had my crunchers up and running.
Glad you have this info out there.
Hello,
I like to know can I put full screen logo into ASRock Motherboard P4i45GV motherboard which has AMI BIOS v.3.00 ?
Rajib