runsisi's

technical notes

qemu 编译

2019-03-01 runsisi#openstack#qemu

Ubuntu 和 CentOS 源里带的 qemu 都没有 debug 包,导致定位问题或者跟踪源代码非常麻烦,因此有必要重新编译。

以 v2.5.0 版本为例:

~$ ./configure --target-list=x86_64-softmmu --enable-kvm --enable-debug --enable-rbd --enable-vnc --extra-cflags="-g3" --extra-ldflags="-g3" --disable-strip --disable-pie --disable-gtk --disable-spice --disable-curses --disable-gnutls --disable-curl --prefix=$PWD/../qemu-tar
~$ make -j4
~$ make install
~$ tree ../qemu-tar

可以直接拷贝 ../qemu-tar/bin/qemu-system-x86_64 至目标机器执行,如果出现如下的错误:

qemu: could not load PC BIOS 'bios-256k.bin'

则在命令行上加上类似 -L /usr/share/qemu/ 的选项,具体的路径需要查看 bios 文件的位置(如 rpm -ql qemu),如 CentOS 下可能需要如下命令行:

~$ ./qemu-system-x86_64 -enable-kvm -m 1G -boot menu=on -drive file=rbd:test_pool/root,format=raw -vnc :20 -L /usr/share/qemu/

Ubuntu 下可能需要如下命令行:

~$ ./qemu-system-x86_64 -enable-kvm -m 1G -boot menu=on -drive file=rbd:test_pool/root,format=raw -vnc :20 -L /usr/share/qemu/ -L /usr/share/seabios -L /usr/lib/ipxe/qemu/

如果目标机器已经安装过 qemu,则直接拷贝至 /usr/bin 目录替换原有的 qemu-system-x86_64 相对来说更方便。