[转帖]解决kqemu不能正常工作,让你的qemu真正跑起来

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
头像
Einhorn
帖子: 114
注册时间: 2006-04-29 10:24

[转帖]解决kqemu不能正常工作,让你的qemu真正跑起来

#1

帖子 Einhorn » 2006-08-04 6:03

首先从 http://fabrice.bellard.free.fr/qemu/download.html 下载 qemu-0.8.1-i386.tar.gz (Binary distribution for linux-i386 (untar it in '/')), 解压缩后直接按照目录结构复制到”/”下.

下载 freedos.img.bz2 (FreeDOS disk image (modified version from the Bochs project)), 解压后得到 freedos.img, 即可使用命令 qemu freedos.img 执行:
图片
同时也可以看到命令行中有警告信息:
  • Could not open '/dev/kqemu' - QEMU acceleration layer not activated
图片
说明 kqemu 并没有起作用.

接着就要安装 kqemu 了, 首先安装必要的开发环境:

代码: 全选

$ sudo apt-get install linux-headers-$(uname -r) build-essential gcc
我这边是 linux-headers-2.6.15-26, gcc 的版本是 4.0.3 .

然后下载 kqemu-1.3.0pre9.tar.gz - New version with full virtualization support

按照其中的文档 kqemu-doc.html 进行操作, 首先进行编译:
将压缩文件解压, 进入解压后的目录, 依次执行

代码: 全选

./configure
make
sudo make install
此时已经能够看到 /dev/kqemu 了, 但是执行 qemu 的时候还是报告 “Could not open '/dev/kqemu' ”, 于是重启系统, 发现重启后 /dev/kqemu 就没有了, 经过仔细研究 kqemu-1.3.0pre9.tar.gz 中的 install.sh 文件, 发现可以这样解决:
将 install.sh 中的如下几句话写到 /etc/rc.local 中即可(注意要放在原有的最后一句“exit 0”之前):
  • # Create the kqemu device. No special priviledge is needed to use kqemu.
    device="/dev/kqemu"
    rm -f $device
    mknod $device c 250 0
    chmod 666 $device
然后在 rc.local 中再加上一句:
  • /sbin/modprobe kqemu
重新启动 Ubuntu, 可以看到 /dev/kqemu, 执行 qemu freedos.img 试验来一下, 果然没有出现 “Could not open '/dev/kqemu' ”, 在 qemu 的控制台(可以在 qemu 界面上使用热键 ctrl-alt-2 进入, 通过 “info kqemu” 命令验证了 kqemu 确实已经 enable 了:
图片
建立一个 4G 的硬盘:

代码: 全选

$ qemu-img create -f qcow winxp.4G.img 4G
Formating 'winxp.4G.img', fmt=qcow, size=4194304 kB
使用 ISO 文件光盘启动, 安装 WinXP:

代码: 全选

$ qemu -cdrom DeepinXP-V4.iso -boot d -m 384 -net nic -net user  winxp.4G.img
在运行时可能会报告内存不足:
  • You do not have enough space in '/dev/shm' for the 384 MB of QEMU virtual RAM.
    To have more space available provided you have enough RAM and swap, do as root:
    umount /dev/shm
    mount -t tmpfs -o size=400m none /dev/shm
按照提示重新 mount /dev/shm 就可以了

安装完毕后可以使用

代码: 全选

$ qemu -cdrom DeepinXP-V4.iso -boot c -m 256 -net nic -net user -kernel-kqemu  winxp.4G.img
启动 WinXP 了:
图片
怎么样,够快了吧:)
原帖地址:http://thinkbase.net/w/main/Wiki?2006-0 ... 2%8C+kqemu[/img][/list]
头像
yanqian
帖子: 23
注册时间: 2005-08-31 14:18

我的情况是这样的

#2

帖子 yanqian » 2007-05-09 19:30

下载kqemu:
http://fabrice.bellard.free.fr/qemu/kqe ... e11.tar.gz

安装linux-headers:

代码: 全选

sudo apt-get install linux-headers-`uname -r`
然后进行编译安装:

代码: 全选

./configure
make
make install
这时并没有看到/dev/kqemu,接着运行modprobe:

代码: 全选

sudo /sbin/modprobe kqemu
此时可以看到/dev/kqemu了,但是其权限是这样的:
ls /dev/kqemu -l
crw-rw---- 1 root root 10, 61 2007-05-09 18:52 /dev/kqemu
于是运行下面这个命令更改权限,使得Others拥有读写权限:

代码: 全选

sudo chmod 666 /dev/kqemu 
现在就OK了。
剩下的就和你讲的差不多,修改rc.local,将上面两行加入,省得每次重启后都得重复运行:
/sbin/modprobe kqemu
chmod 666 /dev/kqemu
头像
yanqian
帖子: 23
注册时间: 2005-08-31 14:18

#3

帖子 yanqian » 2007-05-10 19:40

You do not have enough space in '/dev/shm' for the 384 MB of QEMU virtual RAM.
To have more space available provided you have enough RAM and swap, do as root:
umount /dev/shm
mount -t tmpfs -o size=400m none /dev/shm
请问这个/dev/shm的大小是在哪里设置的啊?
可否更改其默认值,使其默认就挂载大一点,省得每次运行qemu都要umount、重新mount。
回复