Difference between revisions of "QEMU"

From ReactOS Wiki
Jump to: navigation, search
(Merge HOWTO/setup_ReactOS_sound_with_Qemu)
m (A few naming and consistency fixes.)
Line 1: Line 1:
Qemu is a free x86 Emulator/Virtual Machine for Linux and Windows.
+
QEMU is a free x86 emulator for Linux and Windows. A preloaded QEMU image of ReactOS can be found [http://www.reactos.org/en/download.html here].
  
 
If you are looking for a faster virtual machine, give [[VirtualBox]] or [[VMware]] a try.
 
If you are looking for a faster virtual machine, give [[VirtualBox]] or [[VMware]] a try.
  
== ReactOS preloaded with QEMU ==
+
== Installing ReactOS on QEMU ==
  
A preloaded QEMU image of ReactOS can be found [http://www.reactos.org/en/download.html here].
+
* Create a drive image, on which ReactOS will be installed, by typing:
<!-- file not found, url updated, previous url: http://www.reactos.org/xhtml/en/download.html -->
 
  
== Installing ReactOS on QEMU ==
+
qemu-img create ReactOS.img 100M
1. Create a drive image, on which ReactOS will be installed, by typing:
 
  
<pre>qemu-img create ReactOS.img 100M</pre>
+
''100M'' stands for 100 megabytes- that shall be enough. It shall be greater, if you plan to install some application to try under ReactOS.
  
''100M'' stands for 100 megabytes- that shall be enough.
+
* In *nix only, type:
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
  
<pre>sudo umount /dev/shm
+
* Type:
sudo mount -t tmpfs -o size=144m none /dev/shm</pre>
 
  
3. Type:
+
qemu -L . -m 256 -cdrom ReactOS.iso -hda ReactOS.img -boot d -localtime -serial file:ReactOS.log
  
<pre>qemu -L . -m 256 -cdrom ReactOS.iso -hda ReactOS.img -boot d -localtime -serial file:ReactOS.log</pre>
 
 
''-m 256'' stand for 256MB RAM
 
''-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).
+
''-boot d'' instructs QEMU to boot from the CD-ROM. Without ''-boot d'' it will boot from the hard drive (Reactos.img).
  
''ReactOS.iso'' is the image of the '''installation''' cd, which can be downloaded from http://www.reactos.org/en/download.html
+
''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.
  
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:
  
If you want to copy some files to ReactOS, you could create an CD-ROM image and mount it on qemu.
+
qemu -L . -m 256 -cdrom Applications.iso -hda ReactOS.img -localtime -serial file:ReactOS.log
You can run qemu this way:
 
<pre>qemu -L . -m 256 -cdrom Applications.iso -hda ReactOS.img -localtime -serial file:ReactOS.log</pre>
 
  
 
=== Setting up Sound ===
 
=== Setting up Sound ===
  
==== Using AC97 emulation (QEmu 0.10.1 or later) ====
+
==== Using AC97 emulation (QEMU 0.10.1 or later) ====
 
 
- Set emulation to AC97 (-soundhw ac97)
 
  
- Install the drivers using downloader! (You need to reboot twice)
+
* Set emulation to AC97 (-soundhw ac97)
 +
* Install the drivers using Downloader! (You need to reboot twice)
  
 
===== Known Issues =====
 
===== Known Issues =====
  
- Audio sounds glitchy when changing the audio stream with a high sample rate to a stream with low sample rate
+
* Audio sounds glitch when changing the audio stream with a high sample rate to a stream with low sample rate
  
 
==== Using ES1370MP emulation ====
 
==== Using ES1370MP emulation ====
  
- Set emulation to ES1370 (-soundhw es1370)
+
* Set emulation to ES1370 (-soundhw es1370)
 
+
* Install drivers from here [http://rapidshare.com/files/236843299/windows2.zip.html]
- Install drivers from here [http://rapidshare.com/files/236843299/windows2.zip.html]
+
* Create a file named import.reg with the following contents
 
 
- Create a file named import.reg with the following contents
 
  
 
<pre>
 
<pre>
Line 92: Line 85:
 
"LineOutVol_Right"=dword:fff9f203
 
"LineOutVol_Right"=dword:fff9f203
 
"LineOutMute"=dword:00000000
 
"LineOutMute"=dword:00000000
 
 
</pre>
 
</pre>
- Import those settings by starting cmd.exe and regedit import.reg
 
  
- Reboot
+
* Import those settings by starting cmd.exe and regedit import.reg
 +
* Reboot
  
- If you don't hear any sound in '''QEMU 0.10.x''', you'll have to set QEMU_AUDIO_DRV=fmod (available: dsound; fmod; sdl; none ; wav (dump to file) - see qemu docs for info. gabriel_it
+
If you don't hear any sound in '''QEMU 0.10.x''', you'll have to set QEMU_AUDIO_DRV=fmod (available: dsound; fmod; sdl; none ; wav (dump to file) - see QEMU documentation for information.
  
 
===== Known Issues =====
 
===== Known Issues =====
  
- After starting first audio stream, you need to leave qemu and re-enter (seems to be a qemu bug)
+
After starting first audio stream, you need to leave QEMU and re-enter (seems to be a QEMU bug)
  
 
== Using ReactOS LiveCD on QEMU ==
 
== Using ReactOS LiveCD on QEMU ==
  
1. Move to the previously created directory with the "cd" command.
+
# Move to the previously created directory with the <code>cd</code> command.
2. There, type in the following command,
+
# There, type in the following command:
  
 
  qemu -L <Path to your QEMU folder>\bios -cdrom <filename>.iso -m 64
 
  qemu -L <Path to your QEMU folder>\bios -cdrom <filename>.iso -m 64
Line 114: Line 106:
  
 
By default, ReactOS debug messages are sent to the serial port (COM1).
 
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.
+
For grabbing that output, you need QEMU version 0.6.1 or later, in which you can specify the -serial option.
  
Valid arguments to -serial include filenames, pipes, COM Ports and [http://www.qemu.org/qemu-doc.html#SEC10 more].
+
Valid arguments to -serial include file names, pipes, COM Ports and [http://www.qemu.org/qemu-doc.html#SEC10 more].
 
Those arguments could be:
 
Those arguments could be:
<pre>
+
 
-serial file:"C:\roslog.txt"
+
-serial file:"C:\roslog.txt"
-serial pipe:"\\pipe1\"
+
-serial pipe:"\\pipe1\"
-serial COM4
+
-serial COM4
</pre>
 
  
 
=== Redirect to a file ===
 
=== Redirect to a file ===
 +
 
If you're using the QEMU virtual machine and want to redirect the serial output to a file, add the following to your QEMU command line:
 
If you're using the QEMU virtual machine and want to redirect the serial output to a file, add the following to your QEMU command line:
 
  -serial file:''FILENAME''
 
  -serial file:''FILENAME''
Line 131: Line 123:
  
 
=== Redirect to the console ===
 
=== Redirect to the console ===
The method above redirects the output to a file.
+
 
If you want to redirect it to the console, there are two different methods. They depend on the operating system you run QEMU under.
+
The method above redirects the output to a file. If you want to redirect it to the console, there are two different methods. They depend on the operating system you run QEMU under.
 +
 
 
* Under Windows, add the following to your QEMU command line: <pre>-serial file:CON</pre>
 
* Under Windows, add the following to your QEMU command line: <pre>-serial file:CON</pre>
 
* Under a Unix-based operating system, add the following to your QEMU command line: <pre>-serial stdio</pre>
 
* Under a Unix-based operating system, add the following to your QEMU command line: <pre>-serial stdio</pre>
Line 142: Line 135:
 
Add the following option to your QEMU command line
 
Add the following option to your QEMU command line
  
<pre>-serial COM4</pre>
+
-serial COM4
  
 
Write "COM4" with capital letters otherwise QEMU won't use the serial port at all!
 
Write "COM4" with capital letters otherwise QEMU won't use the serial port at all!
Line 151: Line 144:
  
 
== Speeding up QEMU ==
 
== Speeding up QEMU ==
 +
 
If you feel that QEMU is too slow for you, consider using the KQEMU module.
 
If you feel that QEMU is too slow for you, consider using the KQEMU module.
  
Line 156: Line 150:
  
 
== Notes ==
 
== Notes ==
* Networking should work by itself using the '-net nic' and '-net user' switches with QEMU.  
+
 
 +
Networking should work by itself using the '-net nic' and '-net user' switches with QEMU.  
  
 
== External sites ==
 
== External sites ==
  
* [http://www.qemu.org/ QEMU homepage]
+
[http://www.qemu.org/ QEMU homepage]
  
 
[[Category:Virtualization software]]
 
[[Category:Virtualization software]]
 
[[Category:Free software]]
 
[[Category:Free software]]

Revision as of 02:33, 17 November 2009

QEMU is a free x86 emulator for Linux and Windows. A preloaded QEMU image of ReactOS can be found here.

If you are looking for a faster virtual machine, give VirtualBox or VMware a try.

Installing ReactOS on QEMU

  • 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.

  • In *nix only, type:
sudo umount /dev/shm
sudo mount -t tmpfs -o size=144m none /dev/shm
  • 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 CD-ROM. Without -boot d it will boot from the hard drive (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

Setting up Sound

Using AC97 emulation (QEMU 0.10.1 or later)

  • Set emulation to AC97 (-soundhw ac97)
  • Install the drivers using Downloader! (You need to reboot twice)
Known Issues
  • Audio sounds glitch when changing the audio stream with a high sample rate to a stream with low sample rate

Using ES1370MP emulation

  • Set emulation to ES1370 (-soundhw es1370)
  • Install drivers from here [1]
  • Create a file named import.reg with the following contents
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\Settings]
"WaveVol_Left"=dword:00040000
"WaveVol_Right"=dword:00040000
"WaveLineSM"=dword:00000000
"WaveWaveInSM_Left"=dword:01010101
"WaveWaveInSM_Right"=dword:00000000
"CDVol_Left"=dword:fffffff6
"CDVol_Right"=dword:fffffff6
"CDLineSM"=dword:00000000
"CDWaveInSM_Left"=dword:00000000
"CDWaveInSM_Right"=dword:00000000
"LineInVol_Left"=dword:fffffff6
"LineInVol_Right"=dword:fffffff6
"LineLineSM"=dword:01000001
"LineWaveInSM_Left"=dword:00000000
"LineWaveInSM_Right"=dword:00000000
"MicBoost"=dword:00000001
"MicVol"=dword:fffffff6
"MicLineMute"=dword:00000001
"MicWaveInSM_Left"=dword:00000000
"MicWaveInSM_Right"=dword:00000000
"AuxVol_Left"=dword:fffffff6
"AuxVol_Right"=dword:fffffff6
"AuxLineSM"=dword:00000000
"AuxWaveInSM_Left"=dword:00000000
"AuxWaveInSM_Right"=dword:00000000
"PhoneVol"=dword:fffffff6
"PhoneMute"=dword:00000000
"PhoneWaveInSM_Left"=dword:00000000
"PhoneWaveInSM_Right"=dword:00000000
"LineOutVol_Left"=dword:fff9f203
"LineOutVol_Right"=dword:fff9f203
"LineOutMute"=dword:00000000
  • Import those settings by starting cmd.exe and regedit import.reg
  • Reboot

If you don't hear any sound in QEMU 0.10.x, you'll have to set QEMU_AUDIO_DRV=fmod (available: dsound; fmod; sdl; none ; wav (dump to file) - see QEMU documentation for information.

Known Issues

After starting first audio stream, you need to leave QEMU and re-enter (seems to be a QEMU bug)

Using ReactOS LiveCD on QEMU

  1. Move to the previously created directory with the cd command.
  2. There, type in the following command:
qemu -L <Path to your QEMU folder>\bios -cdrom <filename>.iso -m 64

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.

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

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

Redirect to a file

If you're using the QEMU virtual machine and want to redirect the serial output to a file, add the following to your QEMU command line:

-serial file:FILENAME

Replace FILENAME with the name of a file, into which the debug output shall be written.

Redirect to the console

The method above redirects the output to a file. If you want to redirect it to the console, there are two different methods. They depend on the operating system you run QEMU under.

  • Under Windows, add the following to your QEMU command line:
    -serial file:CON
  • Under a Unix-based operating system, add the following to your QEMU command line:
    -serial stdio

Serial port connection using com0com

Setup the com0com driver like explained in this com0com guide.

Add the following option to your QEMU command line

-serial COM4

Write "COM4" with capital letters otherwise QEMU won't use the serial port at all!

Open your terminal program and start a new connection to your second virtual port. If that port is not listed, try COM4.

Another option is to use the ReactOS Test Environment instead of setting this up manually.

Speeding up QEMU

If you feel that QEMU is too slow for you, consider using the KQEMU module.

Refer to this KQEMU guide for detailed information about installation and usage.

Notes

Networking should work by itself using the '-net nic' and '-net user' switches with QEMU.

External sites

QEMU homepage