On 12/07/2012 11:20 PM, Casey DeLorme
wrote:
Xen 4.2 compiled from source should include both
traditional and upstream qemu.
Upstream does not have complete passthrough support, if you
are doing anything of that nature best to stick to
traditional.
The Xen Man Pages have the most up to date configuration:
The flag to set per HVM Configuration is
`device_model_version`, its values are "qemu-xen" and
"qemu-xen-traditional", the traditional being the default.
Key benefits are alternative BIOS, though the UEFI BIOS has
to be specified to build when compiling Xen.
IIRC, I tried setting the 'device_model_version' flag to "qemu-dm"
and "qemu-xen". In both cases I got the error message I quoted.
If "qemu-dm" has been deprecated, the error makes sense. If, for
some reason, qemu-upstream didn't get pulled down, the error would
also make sense. I didn't try try "qemu-xen-traditional". But
that's only because I'm pretty sure that, once the other two
values failed, I checked the contents of "
/usr/lib/xen-4.2/bin/"
and found it had no qemu executables.
Still, my recollection could be wrong. I thought I had documented
most the non-trivial errors that I encountered. I have a feeling
that I lost some of those I captured after reformatting my Dom0
LV. I was pretty sleep deprived after two marathon session last
week. So, if I forget to backup my error logs, I could also be
misremembering what the results of changing 'device_model_version'
values were.
BTW, are there any significant advantages to using the OVMF UEFI
firmware? I thought since my motherboard has an UEFI firmware,
having qemu use an UEFI firmware might somehow be advantageous.
However, the last time I tried compiling Xen with "--enable-ovmf",
make bombed out with the following:
"/usr/bin/gcc" -c -x assembler -imacros
/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/DEBUG/AutoGen.h
-m64 --64 -melf_x86_64 -o
/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Library/BaseUefiCpuLib/X64
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Library/BaseUefiCpuLib
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/DEBUG
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/MdePkg
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/MdePkg/Include
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/MdePkg/Include/X64
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg
-I/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Include
/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.iii
gcc: error: unrecognized command line option ‘--64’
make[7]: Leaving directory
`/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib'
gcc: error: unrecognized command line option ‘-melf_x86_64’
make[7]: ***
[/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj]
Error 1
build.py...
: error 7000: Failed to execute command
make tbuild
[/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/Build/OvmfX64/DEBUG_GCC44/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib]
build.py...
: error F002: Failed to build module
/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf
[X64, GCC44, DEBUG]
- Failed -
Build end time: 04:32:20, Dec.08 2012
Build total time: 00:00:02
make[6]: *** [ovmf.bin] Error 1
make[6]: Leaving directory
`/mnt/work/src/xen/xen-unstable.hg/tools/firmware/ovmf-remote'
make[5]: *** [subdir-all-ovmf] Error 2
make[5]: Leaving directory
`/mnt/work/src/xen/xen-unstable.hg/tools/firmware'
make[4]: *** [subdirs-all] Error 2
make[4]: Leaving directory
`/mnt/work/src/xen/xen-unstable.hg/tools/firmware'
make[3]: *** [all] Error 2
make[3]: Leaving directory
`/mnt/work/src/xen/xen-unstable.hg/tools/firmware'
make[2]: *** [subdir-install-firmware] Error 2
make[2]: Leaving directory
`/mnt/work/src/xen/xen-unstable.hg/tools'
make[1]: *** [subdirs-install] Error 2
make[1]: Leaving directory
`/mnt/work/src/xen/xen-unstable.hg/tools'
make: *** [install-tools] Error 2
I wish I knew enough about gcc to understand the significance of
those two 'unrecognized command line options'. From what Kristian
Hagsted Rasmussen said in his post here, "How to set GCC version
for ovmf compilation", he seems to think the problem is a gcc
version mismatch. Unfortunately for him and myself, no response
has been forthcoming on this particular issue.
Anyway. if having a UEFI firmware for qemu is no real advantage,
I'll just install the alternate build of Xen I did without OVMF
enabled.