Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vmwarebios [2006/06/26 16:51]
mcb30 Remove childish obscenities
vmwarebios [2009/03/13 06:10] (current)
mcb30
Line 3: Line 3:
  
 ===== 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 21: Line 27:
   * 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
-  * start 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 28: Line 34:
  
 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 Methods: ==== ==== Alternative Methods: ====
Line 33: Line 41:
 === 1. Putting EtherBoot into the VMware BIOS === === 1. Putting EtherBoot into the VMware BIOS ===
  
-VMware is currently the only PC emulator with a commercial modular BIOS which can be easily modified.+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. 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.+\\ 
 +( 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 Microsoft'​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 Windows. )   * 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.
  
-It is recommended to read the message threads below for an introduction:​ +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, compile or download an EtherBoot ROM for the PCNET32 adapter (Vendor ID: 0x1022DeviceID: 0x2000). Then 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. Next, save the modified BIOS file to a certain place and keep the path/​filename in mind.
Line 52: Line 62:
 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 ===
  
-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:+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
  
-In VMware, each emulated network card has its own emulated network ​boot ROM. In this case the VMware developers decided to use Intel'​s ​PXE as network boot ROM code.+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 choose between three different emulated 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 cardswhy 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 73: Line 82:
 Well, after playing/​testing with VMware, I could see that I also figured out sine 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)<​file> ​    + e1000:​e1000-82545em-copper -- [0x8086,​0x100f] +  * a)<​file>​e1000:​e1000-82545em-copper -- [0x8086,​0x100f] 
-     ​("​Intel E1000",​ Vendor ID: 8086 , Device ID: 100F)</​file>​ +("​Intel E1000",​ Vendor ID: 8086 , Device ID: 100F)</​file>​ 
-  * b)<​file> ​    + pcnet32:​pcnet32 -- [0x1022,​0x2000] +  * b)<​file>​pcnet32:​pcnet32 -- [0x1022,​0x2000] 
-     ​("AMD Am79C970A - PCnet LANCE PCI Ethernet Controller",​ Vendor ID:  1022 , Device ID: 2000 )</​file>​ +("AMD Am79C970A - PCnet LANCE PCI Ethernet Controller",​ Vendor ID:  1022 , Device ID: 2000 )</​file>​ 
- +\\ 
-( Hint: There is currently no EtherBoot sourcecode for the VMXNET - VMware PCI Ethernet Adapter Vendor ID:  15AD , Device ID: 0720 )+  * <​file>​( Hint: There is currently no: "​c)",​ because ​EtherBoot sourcecode for the 
 +  ​VMXNET - VMware PCI Ethernet Adapter ​[Vendor ID:  15AD , Device ID: 0720] does not exist at the time. )</​file>​
  
  
Line 91: 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 97: 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 106: Line 117:
  
 === 3. Putting EtherBoot into Bochs === === 3. Putting EtherBoot into Bochs ===
-The PC emulator (x86 emulator) Bochs 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.+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 compiling or 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:
Line 113: Line 124:
 </​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:​   * a) EtherBoot inside emulators/​VMs:​
Line 126: Line 136:
  
   * b)   * b)
-    * EtherBoot Option ROM in VMware and further Option ROM related screenshots / animations ​[[http://​bnobtc.pix-art.com/​images/​borgbios/​vmware/​etherboot-in-vmware.gif]] +    * EtherBoot Option ROM in VMware and further Option ROM related screenshots / animations  
-    * [[http://​bnobtc.pix-art.com/​images/​borgbios/​vmware]] +[No longer available]
-    * [[http://​bnobtc.pix-art.com/​images/​borgbios/​romos]]+
  
   * c)   * c)
Line 137: Line 146:
  
   * e) Option ROM projects:   * e) Option ROM projects:
-    * [[http://​bnobtc.pix-art.com/en|"​Already realized Option ROM ideas"​]] +    * [[[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 170:
 --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]+[No longer available]
- +
-[[http://​bnobtc.pix-art.com/​images/​bioslogo]] +
- +

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code vmwarebios (generated for current page)