This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

===== Using Etherboot inside the VMware BIOS ===== The following mail has been posted on June 26, 2006 by Borg No. One ===== Etherboot ROM in VMware and Bochs - The tutorial ===== (updated on 25.06.2006 ) 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 know 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 * boot 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 Method ==== === 1. Putting EtherBoot into 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 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. 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. * Virtual PC is generally just for Winshit. ) To get introduced to the VMware BIOS modification, read the threads below: [[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. 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: <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 === With some nonofficial switches, VMware 5 is able to emulate three different network cards: * AMD Am79C970A - PCnet LANCE PCI Ethernet Controller * Intel E1000 * VMXNET - VMware PCI Ethernet Adapter Each emulated network card has its own emulated network boot ROM. So, when it is already possible to emulate three different 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 figure out many new undocumented switches. 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. Here are the results: First, download or compile EtherBoot ROM for one or all of following network cards: a) + e1000:e1000-82545em-copper -- [0x8086,0x100f] ("Intel E1000", Vendor ID: 8086 , Device ID: 100F) b) + pcnet32:pcnet32 -- [0x1022,0x2000] ("AMD Am79C970A - PCnet LANCE PCI Ethernet Controller", Vendor ID: 1022 , Device ID: 2000 ) ( Hint: There is currently no EtherBoot sourcecode for the VMXNET - VMware PCI Ethernet Adapter Vendor ID: 15AD , Device ID: 0720 ) Second, open your VMware configuration file and add following lines: <file> ethernet0.present = "TRUE" ethernet0.virtualDev = "e1000" e1000bios.filename = "path/etherboot-for-E1000" ethernet1.present = "TRUE" ethernet1.virtualDev = "vlance" nbios.filename = "path/etherboot-for-AMD-lanCE" </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. :) 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 === 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: <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 [[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) [[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: [[http://bnobtc.pix-art.com/en|"Already realized Option ROM ideas"]] 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. 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-- http://bnobtc.pix-art.com --BIOS Logo Gallery-- http://bnobtc.pix-art.com/bioslogo 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)