Hi all,
it is great to see that the topic: "LinuxBIOS in VMware" is current again* and that there are new advances.
*="again" means following:
-- http://www.google.de/search?q=bios440+linuxbios -- http://www.mail-archive.com/linuxbios@clustermatic.org/msg09993.html -- http://www.mail-archive.com/linuxbios@clustermatic.org/msg10054.html -- http://linuxbios.org/pipermail/linuxbios/2006-January/013288.html -- ...
Well, because it would really interessting to use an open source BIOS in VMware soon, here are some further information and notes which may be helpful for running experiments with: -- VMware and LinuxBIOS -- different VMware Option ROMs -- VMware Option ROM related switches in the VMware configuration file
1.) bios440.filename = "" --> it is the magic switch to avoid that VMware uses the built-in BIOS and that it uses an external BIOS file instead.
2.) Jamie Gavahan wrote:
notice there is no parameter for e1000 cards.
In contrast to the emulated devices: "AMD Am79C970A - PCnet LANCE PCI Ethernet Controller" and: "VMXNET - VMware PCI Ethernet Adapter", there seems to be no parameter for disabling the emulated "Intel E1000" Option ROM / for "removing" the virtual e1000 Option ROM FlashROM .
But there is a switch to set the Option ROM size: ".opromsize" If you set the size to zero, then no e1000 Option ROM will be loaded.
Example for an emulated e1000 NIC without OPROM:
ethernet0.present = "True" ethernet0.virtualDev = "e1000" ethernet0.startConnected = "TRUE" ethernet0.connectionType = "custom" ethernet0.flashWriteable = "True" ethernet0.opromsize = "0" # ( "4294967295" = max. size without getting an VMware error message ;-) .)
3.) Jamie Gavahan wrote:
These have unknown values: svga.noOprom ethernet%u.opromsize
svga.noOprom = "True" # (default= "False") ... means that the emulated VMware VGA device will be used, but will not have an Option ROM. If you start VMware with: "svga.noOprom = "True"" then the VMware Phoenix BIOS will output the typical PC speaker sounds ;-) .
Hints: a) svga.vramSize = "xxx" # ( "16777216" = max value) ... can change the video memory size
b) vbios.filename= "path to video BIOS file" ... forces VMware to uses an external Video BIOS filename
4.) To simply get/extract the VMware VGABIOS file and the other VMware Option ROMs / BIOS files from the VMware executable(without starting VMware and without building a bootdisk that would contain a VGABIOS dumping tool), you can use: a) "objdump" and "objcopy" http://www.vmware.com/community/thread.jspa?threadID=28149&tstart=0
b) "resource hacker"/"reshack" (or other resource editors) --> for Windows users / for VMware Windows version
5.) Interesting links: http://www.google.de/search?q=bios440+linuxbios http://www.google.de/search?q=vmware+linuxbios http://www.etherboot.org/wiki/vmwarebios
-------- Original-Nachricht -------- Datum: Sun, 11 Mar 2007 04:32:49 -0600 Von: "Jamie Gavahan" redpike@gmail.com An: "Joe Pub" joepubber@googlemail.com CC: linuxbios@linuxbios.org Betreff: Re: [LinuxBIOS] LinuxBIOS, VMWare & CMOS
On 3/9/07, Joe Pub joepubber@googlemail.com wrote:
Hi All,
I am getting closer to having VMWare working with a LinuxBIOS BIOS. I had an issue which I was unsure of, where certain compile options would just not work with VMWare. I have finnaly figured out why that is.
By enabling CONFIG_PCI_ROM_RUN for instance, includes extra object files within the resulting binary, hence making the used part of the ROM image greater. Here lies my problem. VMWare seems to load the LinuxBIOS rom, but then overwrite the address at 0xFA000 with 8K of NVRAM data, basically overwriting portions of the LinuxBIOS code.
So what I was wondering, what would be the best approach to reserve that area of memory to that it does not corrupt any of the LinuxBIOS code.
Have you figured out what VMWare is overwriting part of linuxBIOS with? Is linuxBIOS loaded into VMWare with the bios440.filename parameter?
I think that VMWare is overwriting that part of memory with updated NVRAM information, loading video BIOS, or loading ethernet card ROM to that address. I'm not sure what you've tried already, but I've found some configuration file parameters that might help figure out what's going on.
nvram.mode = "nonpersistent" This prevents changes to NVRAM; maybe this is what you are looking for?
nvram = "/path/file" This defines a custom NVRAM to be loaded.
vlance.noOprom = "true" vmxnet.noOprom = "true" These disable the ROM on ethernet cards, freeing up some memory; notice there is no parameter for e1000 cards.
e1000bios.filename = "/path/file" nbios.filename = "/path/file" The former is the path to a ROM file for the Intel ethernet card; the latter is the path to a ROM file for the AMD PCnet and VMXnet ethernet adapters.
These have unknown values: svga.noOprom ethernet%u.opromsize
I'm going to start looking into linuxBIOS in VMWare, both as a replacement BIOS for guest OSs, and to develop with linuxBIOS easier. I haven't tested any of the parameters above, but plan to soon; now you can tinker with them too!
jgav
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios