编译安装QEMU 及卸载

host OS: Fedora 12

下载QEMU源代码

从QEMU官网下载源代码http://wiki.qemu.org/Download,目前的最新版本是qemu-0.12.4.tar.gz
还有单独的加速模块kqemu-1.4.0pre1.tar.gz
解压缩

tar zvxf qemu-0.12.4.tar.gz

编译

编译QEMU需要用到的工具和库:gcc libsdl1.2-dev zlib1g-dev libasound2-dev pkg-config libgnutls-dev pciutils-dev
前三个是必须的,后面我没有遇到提示,编译时如果遇到某库没有安装,可以用yum search或者yum list来查找相关的软件包,安装dev版本的
接下来编译

./configure make make install

全部编译花费的时间很长,QEMU会把所有的target都编译出来,如果只需要模拟特定的平台,可以

./configure TARGET=i386-softmmu

运行QEMU

安装好QEMU之后可以从官网上下载一个很小的包含linux系统的虚拟磁盘来实验一下linux-0.2.img.bz2,不过这个linux剪裁的很小实在做不了什么,磁盘镜像也很小,不能往里面放东西
QEMU现在都是用VNC方式运行的,即QEMU会把自己当做VNC的服务器端,使用QEMU时还需要用VNC的客户端来连接它。
首先安装VNC client软件,可以用yum search vncviewer来搜索下可以的软件。
在终端中运行QEMU,5900表示在VNC服务器在本机的5900端口

qemu -hda linux-0.2.img.bz2 -vnc ::1:5900

打开另一个终端,输入

vncview 127.0.0.1:5900

QEMU的GUI界面显示

安装guest OS

首先创建一块虚拟磁盘镜像,如果是准备安装Fedora这样的OS,还是创建10G以上的硬盘吧。用dd命令也可以创建一块空的硬盘镜像,但是很慢。

qemu-img create -f qcow2 disk.img 10G

Fedora 12的系统安装ISO镜像文件一份,可以从fedora官网下载,开始安装操作系统,-m 512表示指定内存大小512M,不可缺少,不然fedora12启动后画面显示出问题

qemu -hda disk.img -m 512 -cdrom Fedora.XXXX.iso -vnc ::1:5900

在另一个终端里输入:

vncviewer 127.0.0.1:5900

然后可以在QEMU窗口中安装fedora,一切步骤同裸机安装,就是很慢很慢
启动guest OS,目前发现的问题是对键盘的支持不好,键位错乱了

qemu -hda disk.img -m 512 -vnc ::1:5900

guest与host文件交互问题,解决方法很多,可以通过网络传输,QEMU还支持把host disk挂载使用,我是把所需要的文件制作成iso镜像,然后在启动qemu时用- cdrom来指定这个文件,guest OS启动再从CDROM设备中把文件copy出来,这个方法的缺点是不能实时的交互文件,制作ISO文件,在linux下:

mkisofs XXX YYY.iso

编译内核

下载linux内核源代码: 解压缩源代码,放在/usr/src/kernels

gzip -d linux-2.6.32.tar.gz tar -xvf linux-2.6.32.tar mv -rf linux-2.6.32 /usr/src/kernels

下载Tuxonice补丁程序,注意对应的版本号:http://www.tuxonice.net/ 打补丁

cd /usr/src/kernels/linux-2.6.32 (the root directory of your tree) bzcat /path/to/patch | patch -p1

config,把电源管理那部分的功能都enable,dubug功能enalbe

make menuconfig

编译

make make module_install

制作内核镜像

make bzImage

制作初始化镜像

mkinitrd

make install可以自动完成工作使得下次系统从这个内核启动,手工做的话把内核镜像文件,initrd文件和system.map文件一起复制到/boot/下面,并修改/boot/grub/menu.lst

更换guest OS内核

将编译好的三个文件制作成ISO文件,并通过qemu的-cdrom指定,然后在guest OS中复制内核到boot文件夹下,修改menu.lst
linux下制作iso镜像文件的命令,源文件放在/dev/cdrom目录下:

mkisofs -r -o myiso.iso /dev/cdrom

从Tuxonice官网http://www.tuxonice.net/downloads/ 下载Hibernate脚本并安装,可以通过修改/etc/hibernate/tuxonice.conf文件中的power method项使得hibernate命令支持不同级别的休眠
从实验中发现,suspend2disk使得QEMU的窗口也消失,必须重新启动QEMU,而suspen2mem则可以通过晃动鼠标等动作唤醒。



在LINUX编译安装QEMU

在Linux下编译安装QEMU2009-02-09添加留言目录

 


 

1.系统环境及版本

Linux发行版本:ubuntu 8.04

安装QEMU-0.9.1

 

2.准备工作

QEMU主页下载源代码,并解压到/tmp目录下(假设源代码保存在~/Setup)。

$ tar zvxf ~/Setup/qemu-0.9.1.tar.gz -C /tmp

建立编译环境:

$ sudo apt-get install build-essential

 

编译安装QEMU,最重要的工具就是gcc。在大多数主机,特别是x86架构的PC机上,gcc 4.x是不被QEMU所支持的。build-essential 中包含的是 gcc 4.x,为了正确编译,需要低版本的gcc 3.x(gcc32 或 gcc34),低版本安装后,QEMU的配置脚本(configure script)在配置时会自动搜寻到。我安装的是gcc 3.4:

$ sudo apt-get install gcc-3.4 cpp-3.4

安装QEMU需要SDL开发库的支持,可以在其下载页面上下载源代码编译安装,但是推荐在apt中安装,不容易出问题:

$ sudo apt-get install libsdl1.2-dev

另外,还需要安装zlib和ESD:

sudo apt-get install zlib1g-dev zlib1g-dbg libesd0-dev

 

 

3.编译安装QEMU

现在可以开始安装了:

$ cd /tmp/qemu-0.9.1$ ./configure --prefix=/usr/local/qemu

不加上prefix选项也是可以的。这个选项的作用是指定安装目录。如果不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。由于QEMU不能用make uninstall的方法卸载,指定安装目录可以便于卸载(其实就是删掉整个安装目录)。

然后

$ make$ sudo make install

make比较费时,请耐心等待。

至此,QEMU安装完成。

 

4.设置环境变量

如果./configure时使用了prefix选项,还需要设置环境变量PATH,否则bash是找不到qemu的命令的(除非你输入该命令的具体路径,如/usr/local/qemu/bin/qemu)。编辑/etc/profile

$ sudo gedit /etc/profile

在文件中添加

PATH="$PATH:/usr/local/qemu/bin"export PATH

保存,退出,并用Ctrl+Alt+Backspace重新启动X Window。


卸载qemu 1.4.1

 

由于通过源码安装的qemu没有办法通过系统工具进行卸载,也没有办法通过make uninstall方法卸载,所以只能通过删除文件的方式进行卸载。

qemu可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/libexec,配置文件默认放在/usr/local/etc,共享文件默认放在/usr/local/etc/share。要卸载源码编译的qemu,需要到这四个目录中找出相关的文件然后删除掉。

如果configure时没有通过--target-list=指定编译的目标机体系结构,则/usr/local/bin中的以qemu开头的文件需要删除,总共51个。

/usr/local/libexec中只有一个文件:qemu-bridge-helper,直接删除即可。

/usr/local/etc比较简单,只有一个qemu目录,其下有一个文件target-x86_64.conf,直接将qemu目录删除即可。

同/usr/local/etc一样,qemu相关的共享文件都放在/usr/local/etc/share目录下的qemu子目录中,直接将该子目录删除即可。

 

error while loading shared libraries:  cannot restore segment prot after reloc: Permission denied错误原因在于selinux禁用了访问此共享库

解决办法: 关闭selinux

1、编辑/etc/selinux/config文件,找到SELINUX=enforcing,改为SELINUX=disabled

2、编辑/etc/sysconfig/selinux文件,找到SELINUX=enforcing,改为SELINUX=disabled

3、重启电脑

http://blog.csdn.net/siling4/article/details/6916208

posted on 2014-09-08 22:34  wpjamer  阅读(6058)  评论(0编辑  收藏  举报

导航