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 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).
-Butin 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 thisopen the extracted VMware BIOS file with the Phoenix BIOS Editor and add EtherBoot ROM as a new Option ROM. +Nextsave 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 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 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]

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)