QEMU Upstream: Difference between revisions
(Update SeaBIOS information) |
|||
Line 1: | Line 1: | ||
= How to build QEMU (upstream version) with Xen = |
= How to build QEMU (upstream version) with Xen = |
||
Nowadays, xen-unstable will clone and build a qemu git tree from xenbits. (It is qemu-stable-1.0 today). But you can follow this guide to build the upstream unstable qemu git tree. |
|||
You can add this to your "xen-unstable.git/.config" file, so xen-unstable will clone and build the upstream tree. |
|||
<pre> |
|||
QEMU_UPSTREAM_URL = git://git.qemu.org/qemu.git |
|||
QEMU_UPSTREAM_REVISION = master |
|||
</pre> |
|||
Then, add "device_model_version = 'qemu-xen'" in your vm config file to use this new qemu. |
|||
Or build qemu out of the xen-unstable dir: |
|||
== Get the source == |
== Get the source == |
||
* Get Xen source (version 4.2 aka xen-unstable development version) |
* Get Xen source (version 4.2 aka xen-unstable development version) |
||
* Get QEMU upstream source from: |
* Get QEMU upstream source from: |
||
⚫ | |||
** Recommended: xen-stable-0.15 qemu branch |
|||
*** git://xenbits.xen.org/people/sstabellini/qemu-dm.git xen-stable-0.15 |
|||
*** Announcement of the "xen-stable-0.15" qemu branch and more info here: http://lists.xensource.com/archives/html/xen-devel/2011-07/msg01359.html |
|||
* Other option: Anthony's git tree used for development |
|||
⚫ | |||
* Example for "xen-stable-0.15" branch |
|||
** git clone git://xenbits.xen.org/people/sstabellini/qemu-dm.git qemu-dm.git |
|||
** cd qemu-dm.git |
|||
** git checkout -b xen-stable-0.15 origin/xen-stable-0.15 |
|||
== Build it! == |
== Build it! == |
||
Line 25: | Line 30: | ||
== Run it! == |
== Run it! == |
||
Either: |
Either: |
||
⚫ | |||
* Add "device_model = path/to/new/qemu" in your VM configuration files. |
|||
⚫ | |||
⚫ | |||
** device_model_override = '/root/work/qemu/_build/i386-softmmu/qemu-system-i386' |
|||
⚫ | |||
* Replace /usr/lib/xen/bin/qemu-dm by the qemu present in i386-softmmu/qemu of the build of QEMU. |
|||
with the last xen-unstable, device_model_version = 'qemu-xen' is needed in the guest configuration file. |
|||
'''Now xl will always try run qemu upstream with seabios, so build xen with seabios.''' |
'''Now xl will always try run qemu upstream with seabios, so build xen with seabios.''' |
||
* For troubleshooting device_model related errors (Xen specific options -domain-name, -vcpus, etc) see: http://xen.1045712.n5.nabble.com/Upstream-QEMU-not-working-with-Xen-unstable-lacks-option-definitions-td4372252.html |
* For troubleshooting device_model on older Xen related errors (Xen specific options -domain-name, -vcpus, etc) see: http://xen.1045712.n5.nabble.com/Upstream-QEMU-not-working-with-Xen-unstable-lacks-option-definitions-td4372252.html |
||
== Use with SeaBIOS == |
== Use with SeaBIOS == |
Revision as of 17:05, 15 March 2012
How to build QEMU (upstream version) with Xen
Nowadays, xen-unstable will clone and build a qemu git tree from xenbits. (It is qemu-stable-1.0 today). But you can follow this guide to build the upstream unstable qemu git tree.
You can add this to your "xen-unstable.git/.config" file, so xen-unstable will clone and build the upstream tree.
QEMU_UPSTREAM_URL = git://git.qemu.org/qemu.git QEMU_UPSTREAM_REVISION = master
Then, add "device_model_version = 'qemu-xen'" in your vm config file to use this new qemu.
Or build qemu out of the xen-unstable dir:
Get the source
- Get Xen source (version 4.2 aka xen-unstable development version)
- Get QEMU upstream source from:
Build it!
- Build Xen
- make xen tools, if it fail see bellow.
- Build QEMU upstream with Xen
- For xen-unstable.hg versions between 23412:996c7726a376 and 23632:33717472f37e you will need to copy path_to_xen/tools/libxc/xc_e820.h to $path_to_xen_source/dist/install/usr/include" for configuration script to work. After 23632:33717472f37e xc_e820.h was squashed into xenctrl.h
- ./configure --enable-xen --target-list=i386-softmmu --extra-cflags="-I$path_to_xen_source/tools/include -I$path_to_xen_source/tools/libxc -I$path_to_xen_source/tools/xenstore" --extra-ldflags="-L$path_to_xen_source/tools/libxc -L$path_to_xen_source/tools/xenstore"
- make
Troubleshooting compilation errors: If you get an error from configure like "ERROR: User requested feature xen ERROR: configure was not able to find it" then see this: http://xen.1045712.n5.nabble.com/Upstream-Qemu-With-Xen-configuration-problem-td4561779.html , ie. you need to point the paths for "configure" to xen source directory, not to xen dist directory.
Run it!
Either:
- With the latest xen-unstable tree, use:
- device_model_version = 'qemu-xen'
- device_model_override = '/root/work/qemu/_build/i386-softmmu/qemu-system-i386'
Now xl will always try run qemu upstream with seabios, so build xen with seabios.
- For troubleshooting device_model on older Xen related errors (Xen specific options -domain-name, -vcpus, etc) see: http://xen.1045712.n5.nabble.com/Upstream-QEMU-not-working-with-Xen-unstable-lacks-option-definitions-td4372252.html
Use with SeaBIOS
SeaBIOS support is now fully integrated into the Xen build system (in xen-unstable and xen-4.2 onwards) and is always used when using device_model_version = "qemu-xen".
If you want to build a version of SeaBIOS other than the default then you can override SEABIOS_UPSTREAM_URL and/or SEABIOS_UPSTREAM_TAG via .config. For reference the upstream SeaBIOS repository is [[1]].