LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: bird00126

[求助[编译QEMU出错。

[复制链接]
 楼主| 发表于 2006-4-5 22:13:29 | 显示全部楼层
apt-get install libsdl-gfx1.2 libsdl-gfx1.2-dev
回复 支持 反对

使用道具 举报

发表于 2006-4-6 11:05:20 | 显示全部楼层
./configure 已正常,make出错
安装列表:
aptitude install gcc-3.4 gcc-3.4-base
ls -s /usr/bin/gcc-3.4 /usr/bin/gcc
aptitude install libsdl-gfx1.2-4 libsdl-gfx1.2-dev
aptitude install make
aptitude install linux-source-2.6.16
会产生:/usr/src/linux-source-2.6.16.tar.bz2
cd /usr/src
tar jxvf /usr/src/linux-source-2.6.16.tar.bz2
ln -s /usr/src/linux-source-2.6.16 linux
http://fabrice.bellard.free.fr/qemu/download.html下载qemu kqemu
tar zxvf qemu-0.8.0.tar.gz
tar zxvf kqemu-0.7.2.tar.gz
cp -R kqemu qemu-0.8.0/
cd qemu-0.8.0
./configure
make
出错信息最后几行:
{standard input}: Assembler messages:
{standard input}:415: Error: symbol `seq' is already defined
{standard input}:463: Error: symbol `sem_nsems' is already defined
{standard input}:485: Error: symbol `lock' is already defined
{standard input}:658: Error: symbol `lock' is already defined
{standard input}:1408: Error: symbol `flags' is already defined
{standard input}:1724: Error: symbol `files' is already defined
{standard input}:1931: Error: symbol `blocks' is already defined
{standard input}:2629: Error: symbol `d_flags' is already defined
{standard input}:3233: Error: symbol `flags' is already defined
{standard input}:3303: Error: symbol `s_type' is already defined
{standard input}:3519: Error: symbol `mmap' is already defined
{standard input}:3561: Error: symbol `lock' is already defined
{standard input}:3632: Error: symbol `data' is already defined
{standard input}:3728: Error: symbol `nlink' is already defined
{standard input}:3734: Error: symbol `size' is already defined
{standard input}:3758: Error: symbol `owner' is already defined
{standard input}:3764: Error: symbol `next' is already defined
{standard input}:3770: Error: symbol `parent' is already defined
{standard input}:3782: Error: symbol `data' is already defined
{standard input}:3812: Error: symbol `base' is already defined
make[3]: *** [/info/infocenter/download/qemu-0.8.0/kqemu/kqemu-linux.o] 错误 1
make[2]: *** [_module_/info/infocenter/download/qemu-0.8.0/kqemu] 错误 2
make[2]: Leaving directory `/usr/src/linux-source-2.6.16'
make[1]: *** [kqemu.ko] 错误 2
make[1]: Leaving directory `/info/infocenter/download/qemu-0.8.0/kqemu'
make: *** [all] 错误 2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-7 07:23:32 | 显示全部楼层
好像要安装公司 source
apt-get install linux-source-2.6.16
回复 支持 反对

使用道具 举报

发表于 2006-4-7 08:03:21 | 显示全部楼层
Post by bird00126
好像要安装公司 source
apt-get install linux-source-2.6.16

已安装:
  aptitude install linux-source-2.6.16
但我没有对linux-source-2.6.16进行编译,需不需要对其进行编译我不懂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-7 18:42:46 | 显示全部楼层
看一下这里,在百度里找的
http://www.cnblogs.com/huqingyu/archive/2005/04/03/131104.html

我是没有编译的,因为好象说2.6的内核可以不用编译.
回复 支持 反对

使用道具 举报

发表于 2006-4-11 09:58:23 | 显示全部楼层
aptitude install gcc-3.4 gcc-3.4-base
aptitude install libsdl-gfx1.2-4 libsdl-gfx1.2-dev
aptitude install make
aptitude install linux-source-2.6.16
会产生:/usr/src/linux-source-2.6.16.tar.bz2
cd /usr/src
tar jxvf /usr/src/linux-source-2.6.16.tar.bz2
ln -s /usr/src/linux-source-2.6.16 /lib/modules/2.6.16-1-686/build
aptitude install gcc
cd /usr/src/linux-source-2.6.16
make mrproper
确保内核源码纯净,保证kqemu编译出来可用。
cp /boot/config-2.6.16-1-686 .config
将当前内核配置文件复制过来
make scripts/
生成kqemu需要的东东,没有这步,编译就会出错。
http://fabrice.bellard.free.fr/qemu/download.html下载qemu kqemu
tar zxvf qemu-0.8.0.tar.gz
tar zxvf kqemu-0.7.2.tar.gz
cp -R kqemu qemu-0.8.0/
cd qemu-0.8.0
aptitude purge gcc
将gcc-4.0删除
ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
./configure
make
make install
编译安装一切正常
#qemu
QEMU PC emulator version 0.8.0, Copyright (c) 2003-2005 Fabrice Bel
...
#ls -l /dev/kqemu
crw-rw-rw- 1 root root 250, 0 2006-04-11 09:50 /dev/kqemu
#ls -la /lib/modules/2.6.16-1-686/misc/kqemu.ko
-rw-r--r-- 1 root root 36838 2006-04-11 09:50 /lib/modules/2.6.16-1-686/misc/kqemu.ko
#modprobe kqemu
FATAL: Error inserting kqemu (/lib/modules/2.6.16-1-686/misc/kqemu.ko): Invalid module format
不知道为什么,是不是用gcc-3.4编译就不能用。
回复 支持 反对

使用道具 举报

发表于 2006-4-11 10:16:24 | 显示全部楼层
看看你的内核使用什么版本的gcc编译的。编译内核模块时最好用相同版本的gcc。
回复 支持 反对

使用道具 举报

发表于 2006-4-11 16:13:35 | 显示全部楼层
没有办法gcc-4.0 没法编译qemu,只好用gcc-3.0
回复 支持 反对

使用道具 举报

发表于 2006-4-12 09:24:29 | 显示全部楼层
已解决,谢谢各位热心支持
用gcc3 编译 qemu 用 gcc4编译 kqemu
到 kqemu 目录下单独 make
rm /usr/bin/gcc
aptitude install gcc
cd ~/qemu-0.8.0/kqemu
make
在当前目录下产生kqemu.ko
cd /lib/modules/2.6.16-1-686/misc
cp /info/infocenter/download/qemu-0.8.0/kqemu/kqemu.ko .
modprobe kqemu
参考: 哪里有qemu0.7.2的gcc4 patch?
        http://www.linuxsir.cn/bbs/showthread.php?t=227193
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表