Difference between revisions of "QEMU"

From ReactOS Wiki
Jump to: navigation, search
Line 1: Line 1:
 
Qemu is a free x86 Emulator/Virtual Machine for Linux and Windows.
 
Qemu is a free x86 Emulator/Virtual Machine for Linux and Windows.
If you are looking for something faster, you can try the Qemu Accelerator Module (documentation [http://www.qemu.org/kqemu-doc.html here]) or [[VMware]].
+
 
 +
If you are looking for something faster, you can try the [http://bellard.org/qemu/kqemu-doc.html Qemu Accelerator Module] or [[VMware]].
  
 
== Grabbing debug messages ==
 
== Grabbing debug messages ==
Line 7: Line 8:
 
For grabbing that output, you need Qemu version 0.6.1 or later, in which you can specify the -serial option.
 
For grabbing that output, you need Qemu version 0.6.1 or later, in which you can specify the -serial option.
  
Like this:
+
Your command line could look like this:
<pre>$ qemu -serial stdio -cdrom roslive.iso -boot d</pre>
+
<pre>qemu -L . -hda C:\qemu\ReactOS.vmdk -cdrom C:\RosBE\Source\Reactos.iso -serial CON</pre>
 
 
Tested on Windows XP and Vista with qemu 0.9.0:
 
<pre>C:\qemu>qemu -L . -hda C:\qemu\ReactOS.vmdk -cdrom C:\RosBE\Source\Reactos.iso -serial file:con</pre>
 
Be sure to use the paths valid depending on your configuration an program paths.
 
  
Valid arguments to -serial include filename and pipes so other valid configurations include for example:
+
Be sure to use valid paths (depending on your configuration an program paths).
  
 +
Valid arguments to -serial include filenames, pipes, COM Ports and [http://bellard.org/qemu/qemu-doc.html#SEC10 more].
 +
Those arguments could be:
 
<pre>
 
<pre>
 
-serial file:"C:\roslog.txt"
 
-serial file:"C:\roslog.txt"
 
-serial pipe:"\\pipe1\"
 
-serial pipe:"\\pipe1\"
 +
-serial COM4
 
</pre>
 
</pre>
  

Revision as of 15:47, 10 October 2008

Qemu is a free x86 Emulator/Virtual Machine for Linux and Windows.

If you are looking for something faster, you can try the Qemu Accelerator Module or VMware.

Grabbing debug messages

By default, ReactOS debug messages are sent to the serial port (COM1). For grabbing that output, you need Qemu version 0.6.1 or later, in which you can specify the -serial option.

Your command line could look like this:

qemu -L . -hda C:\qemu\ReactOS.vmdk -cdrom C:\RosBE\Source\Reactos.iso -serial CON

Be sure to use valid paths (depending on your configuration an program paths).

Valid arguments to -serial include filenames, pipes, COM Ports and more. Those arguments could be:

-serial file:"C:\roslog.txt"
-serial pipe:"\\pipe1\"
-serial COM4

Using com0com with QEMU

com0com is a free utility to create virtual serial port pairs which can be used to capture the debug output of ReactOS and direct it to a terminal program such as TeraTerm.

From Carlos Bramini (Carlo Bramix):

1) Get QEMU. If you have not it yet, my suggestion is to download Qemu Manager, it already includes a recent build of QEMU and it it helps you to configure virtual machines.

2) Get com0com and install it. Next, run the com0com command shell and type

install PortName=COM4 PortName=COM5

and it will create two virtual ports connected together. If you prefer different ports, just change the com names; however you can get a simple help by typing "help" to the shell prompt.

3) Create a virtual machine for running ReactOS under QEMU. Be sure to select one of the newly created ports by adding this option to the command line of QEMU:

-serial COM4

WARNING: you must write "COM4" with capital letters and not "com4" otherwise QEMU won't use serial port at all!!!

4) Open a terminal programme. You can use Teraterm or HyperTerminal. Start a new connection and select "COM5" as communication port. (If COM5 is not listed, try COM4 --atylmo 00:27, 1 January 2008 (CET))

5) Finally, launch QEMU and select ReactOS debug into the boot menu.

FINAL NOTE: the properties of the serial port, like the baud rate, are not important. Instead, be sure to select "NO FLOW CONTROL" otherwise the terminal programme doesn't seem to receive the characters. Hardware flow control (with RTS/CTS) or software flow control (XON/XOFF) does not seem to work during my tests.

and GreatLord suggests to use RosTE (ReactOS Test Environment) instead of setting this up manually.

ReactOS preloaded with QEMU

A preloaded QEMU image of ReactOS can be found here.


Installing ReactOS on QEMU

1. Create a drive image, on which ReactOS will be installed, by typing:

qemu-img create ReactOS.img 100M

100M stands for 100 megabytes- that shall be enough. It shall be greater, if you plan to install some application to try under ReactOS.

2. In *nix only, type:

sudo umount /dev/shm
sudo mount -t tmpfs -o size=144m none /dev/shm

3. Type:

qemu -L . -m 256 -cdrom ReactOS.iso -hda ReactOS.img -boot d -localtime -serial file:ReactOS.log

-m 256 stand for 256MB RAM -boot d instructs qemu to boot from the cdrom. Without -boot d it will boot from the HDD (Reactos.img).

ReactOS.iso is the image of the installation cd, which can be downloaded from http://www.reactos.org/en/download.html


When reinstalling ReactOS, perform steps 2 (if necessary) and 3 only.

If you want to copy some files to ReactOS, you could create an CD-ROM image and mount it on qemu. You can run qemu this way:

qemu -L . -m 256 -cdrom Applications.iso -hda ReactOS.img -localtime -serial file:ReactOS.log

See also

External sites