Differences

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

Link to this comparison view

Next revision
Previous revision
vmwarebios [2006/06/26 03:06]
stockholm created
vmwarebios [2009/03/13 06:10] (current)
mcb30
Line 1: Line 1:
-... waiting ​for the author ​of an e-mail to give publishing permission ​...+===== Using Etherboot inside the VMware BIOS ===== 
 +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 ===== 
 +(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: 
 + 
 +[[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]] 
 + 
 +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. 
 + 
 +==== Already known general method: ==== 
 + 
 +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 
 +  * store the CD image / floppy disk image to a file 
 +  * 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. 
 + 
 +In the last years, I acquired many BIOS and Option ROM related skills with real hardware and VMware and I also figured out different hints/​undocumented VMware switches which were not published anywhere before. 
 + 
 +Now, I will show you the methods to make EtherBoot testing/​developing faster and easier: 
 + 
 + 
 + 
 +==== Alternative Methods: ==== 
 + 
 +=== 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:​ 
 +  * 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. ) 
 +\\ 
 +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. 
 + 
 +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. 
 + 
 +Next, save the modified BIOS file to a certain place and keep the path/​filename in mind. 
 + 
 +The last step is to add following line: 
 +<​file>​bios440.filename = "path to the modified BIOS file/BIOS file name"</​file>​ 
 +...to VMware'​s configuration file. 
 + 
 +=== 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: 
 +  * AMD Am79C970A - PCnet LANCE PCI Ethernet Controller 
 +  * Intel E1000 
 +  * 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 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? :) 
 + 
 +And why not replacing the default (PXE) network boot ROM with EtherBoot? :) 
 + 
 +The answer is easy: nobody knew the undocumented network related switches in VMware'​s configuration file before. 
 + 
 + 
 +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]]. 
 +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: 
 + 
 +First, download or compile EtherBoot ROM for one or all of following network cards: 
 +  * a)<​file>​e1000:​e1000-82545em-copper -- [0x8086,​0x100f] 
 +("​Intel E1000",​ Vendor ID: 8086 , Device ID: 100F)</​file>​ 
 +  * b)<​file>​pcnet32:​pcnet32 -- [0x1022,​0x2000] 
 +("AMD Am79C970A - PCnet LANCE PCI Ethernet Controller",​ Vendor ID:  1022 , Device ID: 2000 )</​file>​ 
 +\\ 
 +  * <​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>​ 
 + 
 + 
 +Second, open your VMware configuration file and add following lines: 
 +<​file>​ 
 +ethernet0.present = "​TRUE"​ 
 +ethernet0.virtualDev = "​e1000"​ 
 +e1000bios.filename = "​path/​etherboot-for-E1000"​ 
 +ethernet0.opromsize = 70144 
 + 
 +ethernet1.present = "​TRUE"​ 
 +ethernet1.virtualDev = "​vlance"​ 
 +nbios.filename = "​path/​etherboot-for-AMD-lanCE"​ 
 +</​file>​ 
 + 
 +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: 
 +VMware is also able to use/load larger Option ROMs (32KB and more) as network BootROM. 
 +I could successfully configure and use " ROMOS " (64KB) as VMware E1000 network BootROM replacement too. 
 +<​file>​( e1000bios.filename = "​C:​\BIOS\romospci.bin"​ )</​file>​ 
 + 
 + 
 +=== 3. Putting EtherBoot into Bochs === 
 +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: 
 +<​file>​ 
 +optromimage1:​ file=../​etherboot.rom,​ address=0xd0000 
 +</​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. 
 +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. 
 + 
 +\\ 
 +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]] 
 + 
 +  * b) 
 +    * EtherBoot Option ROM in VMware and further Option ROM related screenshots / animations  
 +[No longer available] 
 + 
 +  * c) 
 +    * [[http://​www.vmware.com/​community/​thread.jspa?​threadID=10817&​start=0&​tstart=0|VMWare BIOS Modification / translation]] 
 + 
 +  * d) 
 +    * [[http://​www.vmware.com/​community/​thread.jspa?​threadID=28149&​tstart=0|VMware BIOS modification - for Linux users]] 
 + 
 +  * 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. 
 +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. 
 + 
 +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. 
 +Unauthorized publication on other sites, outside the EtherBoot Mailing List and/or in different print media is prohibited. 
 + 
 +If you have questions referring to EtherBoot Option ROMs or Option ROMs in general, then do not hesitate to ask your question here in the EtherBoot Mailing List. 
 + 
 + 
 + 
 +Borg Number One 
 + 
 +--BIOS Tool Collection-- 
 + 
 +--BIOS modification and realtime desktop help service-- 
 + 
 +[No longer available] 
 + 
 +--BIOS Logo Gallery-- 
 + 
 +[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)