Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vmwarebios [2006/06/26 09:58] stockholm Entering content out of mail, formatting |
vmwarebios [2009/03/13 06:10] (current) mcb30 |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Using Etherboot inside the VMware BIOS ===== | ===== Using Etherboot inside the VMware BIOS ===== | ||
- | The following mail has been posted on June 26, 2006 by Borg No. One | + | The following mail has been posted on June 26, 2006 by Borg Number One in the EtherBoot mailing list. |
- | ===== Etherboot ROM in VMware and Bochs - The tutorial ===== | + | ===== EtherBoot ROM in VMware and Bochs - The tutorial ===== |
- | (updated on 25.06.2006 ) | + | (updated on 07.07.2006) |
+ | **Declarations** | ||
+ | * Expansion ROM / ExpansionROM , Extension ROM / ExtensionROM , Option ROM / OptionROM , Extension BIOS / ExtensionBIOS | ||
+ | ... describes a binary executable in a special format, which can be loaded and started by mainboard's System BIOS | ||
+ | This binary executably is genereally stored in the (Flash)-EEPROM of a graphics card, network card, RAID controller and inside a modular System BIOS / module based BIOS.\\ | ||
+ | |||
+ | **Introduction** | ||
In the past and in the present, many people were/are interested in using EtherBoot for virtual machines, like VMware or Bochs: | In the past and in the present, many people were/are interested in using EtherBoot for virtual machines, like VMware or Bochs: | ||
Line 14: | Line 20: | ||
Using Virtual Machines is a really good and really fast way to test and improve EtherBoot (and other extension ROM projects). | Using Virtual Machines is a really good and really fast way to test and improve EtherBoot (and other extension ROM projects). | ||
- | But, in previous virtual machine related requests in the EtherBoot Mailing Lists, I could see that only time consuming methods are known. | + | But in previous virtual machine related requests in the EtherBoot Mailing Lists, I could see that only time consuming methods are known. |
- | ==== Already know general method: ==== | + | ==== Already known general method: ==== |
- | Currently, EtherBoot developers/testers who use VMware or Bochs, have to take a certain time to | + | Currently, EtherBoot developers/testers who use VMware or Bochs, have to take a certain time to: |
* put EtherBoot to a floppy disk / CD or into a flopy disk image / CD image | * put EtherBoot to a floppy disk / CD or into a flopy disk image / CD image | ||
* store the CD image / floppy disk image to a file | * store the CD image / floppy disk image to a file | ||
- | * boot Bochs/VMware and wait for the CD / floppy disk boot process. | + | * start Bochs/VMware and wait for the CD / floppy disk boot process |
But there are faster/alternative methods to use EtherBoot in VMware and Bochs. | But there are faster/alternative methods to use EtherBoot in VMware and Bochs. | ||
Line 29: | Line 35: | ||
Now, I will show you the methods to make EtherBoot testing/developing faster and easier: | Now, I will show you the methods to make EtherBoot testing/developing faster and easier: | ||
- | ==== Alternative Method ==== | ||
- | === 1. Putting EtherBoot into VMware BIOS === | ||
- | VMware is currently the only PC emulator with a commercial modular BIOS which can be easily modified. | + | ==== Alternative Methods: ==== |
- | Beside bochs, VMware is currently the best emulator for BIOS related developments, like building/testing own Option ROM ideas/projects. | + | |
- | ( Inside $Microshits$ Virtual PC executable you can find an AMIBIOS resource which can also be modified with AMIBIOS modification utilities. | + | === 1. Putting EtherBoot into the VMware BIOS === |
+ | |||
+ | VMware is currently the only PC emulator with a commercial modular BIOS which can be easily modified.\\ | ||
+ | Beside bochs, VMware is currently the best emulator for BIOS related developments, like building/testing user-made Option ROMs ideas/projects. | ||
+ | |||
+ | \\ | ||
+ | ( Inside the "Microsoft Virtual PC" executable you can find an AMIBIOS resource which can also be modified with AMIBIOS modification utilities.\\ | ||
But there are huge restrictions: | But there are huge restrictions: | ||
- | * never try any Option ROM / Extension ROM experiments --> after the modification Microshit's Virtual PC hangs while P.O.S.T. | + | * never try any Option ROM / Extension ROM experiments --> after the modification Microsoft's Virtual PC hangs while P.O.S.T. |
- | * Virtual PC is generally just for Winshit. ) | + | * Virtual PC is generally just for Windows. ) |
+ | \\ | ||
+ | It is recommended to read the message threads below for an introduction: | ||
+ | * [[http://www.vmware.com/community/thread.jspa?threadID=10817&start=0&tstart=0|VMWare BIOS Modification / translation]] | ||
+ | * [[http://www.vmware.com/community/thread.jspa?threadID=28149&tstart=0|VMware BIOS modification - for Linux users]] | ||
+ | After this, compile or download an EtherBoot ROM for the PCNET32 adapter (Vendor ID: 0x1022, DeviceID: 0x2000), because VMware emulates an AMD LANCE / PCNET adapter by default. | ||
- | To get introduced to the VMware BIOS modification, read the threads below: | + | After downloading/compiling the AMD LANCE / PCNET32 EtherBoot ROM, open the extracted VMware BIOS file with the Phoenix BIOS Editor and add the EtherBoot ROM as a new Option ROM. |
- | [[http://www.vmware.com/community/thread.jspa?threadID=10817&start=0&tstart=0|VMWare BIOS Modification / translation]] | + | |
- | [[http://www.vmware.com/community/thread.jspa?threadID=28149&tstart=0|VMware BIOS modification - for Linux users]] | + | |
- | After this, open the extracted VMware BIOS file with the Phoenix BIOS Editor and add EtherBoot ROM as a new Option ROM. | + | Next, save the modified BIOS file to a certain place and keep the path/filename in mind. |
- | + | ||
- | Then, safe the modified BIOS file to a certain place and keep the path/filename in mind. | + | |
The last step is to add following line: | The last step is to add following line: | ||
<file>bios440.filename = "path to the modified BIOS file/BIOS file name"</file> | <file>bios440.filename = "path to the modified BIOS file/BIOS file name"</file> | ||
- | |||
...to VMware's configuration file. | ...to VMware's configuration file. | ||
=== 2. Using EtherBoot as replacement for VMware's build-in network boot ROMs === | === 2. Using EtherBoot as replacement for VMware's build-in network boot ROMs === | ||
- | With some nonofficial switches, VMware 5 is able to emulate three different network cards: | + | VMware usually emulates an AMD LANCE network interface card. But with some non-official switches, VMware 5 is able to emulate three different network card types: |
* AMD Am79C970A - PCnet LANCE PCI Ethernet Controller | * AMD Am79C970A - PCnet LANCE PCI Ethernet Controller | ||
* Intel E1000 | * Intel E1000 | ||
* VMXNET - VMware PCI Ethernet Adapter | * VMXNET - VMware PCI Ethernet Adapter | ||
- | Each emulated network card has its own emulated network boot ROM. | + | In VMware, each emulated network card has its own emulated network Boot ROM. In this case the VMware developers decided to use the Intel PXE as network boot ROM code. |
- | So, when it is already possible to emulate three different network cards why not also getting the control of their emulated BOOTROM / BOOTROM content? :) | + | |
+ | So, when it is already possible to choose between three different emulated network cards, why not also getting the control of their emulated BOOTROM / BOOTROM content? :) | ||
And why not replacing the default (PXE) network boot ROM with EtherBoot? :) | And why not replacing the default (PXE) network boot ROM with EtherBoot? :) | ||
Line 69: | Line 80: | ||
- | Well, after playing/testing with VMware, I could figure out many new undocumented switches. | + | Well, after playing/testing with VMware, I could see that I also figured out sine new undocumented switches. |
Most of them were sent to [[http://sanbarrow.com/vmx.html|Sanbarrow]]. | Most of them were sent to [[http://sanbarrow.com/vmx.html|Sanbarrow]]. | ||
- | But I could see that I figured out some switches which are usefully for Option ROM / Extension ROM testing and usefully for EtherBoot development. | + | But I could see that I also figured out some switches which are usefully for Option ROM / Extension ROM testing and usefully for EtherBoot development. |
Here are the results: | Here are the results: | ||
First, download or compile EtherBoot ROM for one or all of following network cards: | First, download or compile EtherBoot ROM for one or all of following network cards: | ||
- | a) | + | * a)<file>e1000:e1000-82545em-copper -- [0x8086,0x100f] |
- | + e1000:e1000-82545em-copper -- [0x8086,0x100f] | + | ("Intel E1000", Vendor ID: 8086 , Device ID: 100F)</file> |
- | ("Intel E1000", Vendor ID: 8086 , Device ID: 100F) | + | * b)<file>pcnet32:pcnet32 -- [0x1022,0x2000] |
- | + | ("AMD Am79C970A - PCnet LANCE PCI Ethernet Controller", Vendor ID: 1022 , Device ID: 2000 )</file> | |
- | b) | + | \\ |
- | + pcnet32:pcnet32 -- [0x1022,0x2000] | + | * <file>( Hint: There is currently no: "c)", because EtherBoot sourcecode for the |
- | ("AMD Am79C970A - PCnet LANCE PCI Ethernet Controller", Vendor ID: 1022 , Device ID: 2000 ) | + | VMXNET - VMware PCI Ethernet Adapter [Vendor ID: 15AD , Device ID: 0720] does not exist at the time. )</file> |
- | + | ||
- | ( Hint: There is currently no EtherBoot sourcecode for the VMXNET - VMware PCI Ethernet Adapter Vendor ID: 15AD , Device ID: 0720 ) | + | |
Line 92: | Line 101: | ||
ethernet0.virtualDev = "e1000" | ethernet0.virtualDev = "e1000" | ||
e1000bios.filename = "path/etherboot-for-E1000" | e1000bios.filename = "path/etherboot-for-E1000" | ||
+ | ethernet0.opromsize = 70144 | ||
ethernet1.present = "TRUE" | ethernet1.present = "TRUE" | ||
Line 98: | Line 108: | ||
</file> | </file> | ||
- | I spent nearly two hours to also prepare a [[http://bnobtc.pix-art.com/images/borgbios/vmware/etherboot-in-vmware.gif|decent animation]], which shows the described method. :) | + | I spent nearly two hours to also prepare a [[http://img220.imageshack.us/img220/7897/etherbootinvmwaredx5.gif|decent animation]], which shows the described method. :) |
PS: | PS: | ||
Line 107: | Line 117: | ||
=== 3. Putting EtherBoot into Bochs === | === 3. Putting EtherBoot into Bochs === | ||
- | Because Bochs is also able to use additional Option ROMs, you can simply use this feature for EtherBoot testing and development. | + | The PC emulator (x86 emulator): "Bochs" generally emulates a NE2000-compatible network card. Because Bochs is also able to use additional Option ROMs, you can simply use this feature for EtherBoot testing and development. |
- | After downloading a suitable EtherBoot ROM (for a NE2000-compatible Ethernet adapter), just add following line to a Bochs configuration file: | + | After compiling or downloading a suitable EtherBoot ROM (for a NE2000-compatible Ethernet adapter), just add following line to a Bochs configuration file: |
<file> | <file> | ||
optromimage1: file=../etherboot.rom, address=0xd0000 | optromimage1: file=../etherboot.rom, address=0xd0000 | ||
</file> | </file> | ||
Regarding to: "loading Option ROMs", the current Bochs releases use an emulated BIOS which is not squeamish like general and commercial (Award/AMI/Phoenix) BIOS code. | Regarding to: "loading Option ROMs", the current Bochs releases use an emulated BIOS which is not squeamish like general and commercial (Award/AMI/Phoenix) BIOS code. | ||
- | This means that the Option ROM header (correct PCI vendor / Device ID / PCI class ID) will not be checked by Bochs' BIOS. | + | This means that the Option ROM header (correct PCI vendor / Device ID / PCI class ID) will not be checked by Bochs' BIOS.\\ |
So, Bochs can load and run any kind of ISA/PCI Option ROMs without changing / modifying the Option ROM header before. | So, Bochs can load and run any kind of ISA/PCI Option ROMs without changing / modifying the Option ROM header before. | ||
- | + | \\ | |
Used links in the article and further interesting links: | Used links in the article and further interesting links: | ||
+ | * a) EtherBoot inside emulators/VMs: | ||
+ | * [[http://sourceforge.net/mailarchive/forum.php?thread_id=11504279&forum_id=48022]] | ||
+ | * [[http://sourceforge.net/mailarchive/forum.php?thread_id=11529915&forum_id=48022]] | ||
+ | * [[http://sourceforge.net/search/?ml_name=etherboot-discuss&type_of_search=mlists&group_id=4233&words=vmware]] | ||
+ | * [[http://sourceforge.net/search/?ml_name=etherboot-discuss&type_of_search=mlists&group_id=4233&words=bochs]] | ||
- | a) EtherBoot inside emulators/VMs: | + | * b) |
- | [[http://sourceforge.net/mailarchive/forum.php?thread_id=11504279&forum_id=48022]] | + | * EtherBoot Option ROM in VMware and further Option ROM related screenshots / animations |
- | [[http://sourceforge.net/mailarchive/forum.php?thread_id=11529915&forum_id=48022]] | + | [No longer available] |
- | [[http://sourceforge.net/search/?ml_name=etherboot-discuss&type_of_search=mlists&group_id=4233&words=vmware]] | + | |
- | [[http://sourceforge.net/search/?ml_name=etherboot-discuss&type_of_search=mlists&group_id=4233&words=bochs]] | + | |
- | b) | + | * c) |
- | EtherBoot Option ROM in VMware and further Option ROM related screenshots / animations | + | * [[http://www.vmware.com/community/thread.jspa?threadID=10817&start=0&tstart=0|VMWare BIOS Modification / translation]] |
- | [[http://bnobtc.pix-art.com/images/borgbios/vmware/etherboot-in-vmware.gif]] | + | |
- | [[http://bnobtc.pix-art.com/images/borgbios/vmware]] | + | |
- | [[http://bnobtc.pix-art.com/images/borgbios/romos]] | + | |
- | c) | + | * d) |
- | [[http://www.vmware.com/community/thread.jspa?threadID=10817&start=0&tstart=0|VMWare BIOS Modification / translation]] | + | * [[http://www.vmware.com/community/thread.jspa?threadID=28149&tstart=0|VMware BIOS modification - for Linux users]] |
- | + | ||
- | d) | + | |
- | [[http://www.vmware.com/community/thread.jspa?threadID=28149&tstart=0|VMware BIOS modification - for Linux users]] | + | |
- | + | ||
- | e) Option ROM projects: | + | |
- | [[http://bnobtc.pix-art.com/en|"Already realized Option ROM ideas"]] | + | |
+ | * e) Option ROM projects: | ||
+ | * [[[No longer available] --> "Already realized Option ROM ideas"]] | ||
+ | * f) | ||
+ | * [[http://rayer.ic.cz/romos/romose.htm|ROMOS]] | ||
This article was created to help users, who want to use EtherBoot in VMware and/or bochs. | This article was created to help users, who want to use EtherBoot in VMware and/or bochs. | ||
Furthermore it shows fast methods to test new added EtherBoot features with emulators / virtual machines. | Furthermore it shows fast methods to test new added EtherBoot features with emulators / virtual machines. | ||
I decided to publish this article in the EtherBoot Mailing List, because this is the right place. | I decided to publish this article in the EtherBoot Mailing List, because this is the right place. | ||
+ | |||
+ | The Etherboot Wiki author Anselm (username: "Stockholm") was allowed to add this article to the the EtherBoot Wiki. | ||
If you want to provide this article on other sites / in computer magazines, then get in contact with me before. | If you want to provide this article on other sites / in computer magazines, then get in contact with me before. | ||
Line 158: | Line 167: | ||
--BIOS Tool Collection-- | --BIOS Tool Collection-- | ||
+ | |||
--BIOS modification and realtime desktop help service-- | --BIOS modification and realtime desktop help service-- | ||
- | http://bnobtc.pix-art.com | + | |
+ | [No longer available] | ||
--BIOS Logo Gallery-- | --BIOS Logo Gallery-- | ||
- | http://bnobtc.pix-art.com/bioslogo | ||
- | http://bnobtc.pix-art.com/images/bioslogo | ||
- | -- | ||
+ | [No longer available] |