导航:首页 > 源码编译 > qemu运行自己编译的bios

qemu运行自己编译的bios

发布时间:2022-07-01 14:37:43

A. qemu如何使用

qemu常用网络模式是user、tap。
user使用有局限性,
1) 由于其在QEMU内部实现所有网络协议栈,因此其性能较差。
2) 不支持部分网络功能(如ICMP),所以不能在客户机中使用ping命令测试外网连通性。
3) 不能从宿主机或外部网络直接访问客户机。需要作地址重定向。
tap方式网络没有这些限制。
通过tap又可以实现bridge和nat方式的网络连接。

B. 使用buildroot编译arm架构的linux内核,使其支持usb摄像头,并使用qemu虚拟运行

#没有吧ext* 和 VFS编进去吧

cd/usr/src/linux
makemenuconfig
#选择ext4和VFS,在FileSystem里,很好找
make;makemole_install;makeinstall

C. qemu怎么用qemu-img创建的镜像运行一个环境

创建虚拟机镜像

 

要在一台host上跑起一个虚拟机一般需要两个步骤:

第一步:创建虚拟机镜像

qemu-img create -f raw /images/vm1.raw 8G

qmeu-img创建的镜像是一个稀疏文件,也就是说刚创建出来的文件并没有8G,它会随着数据的增多慢慢增加,直到8G

 

第二步:启动虚拟机

kvm /imges/vm1.raw

运行结果: 因为镜像里面没有任何内容,所以提示找不到可引导设备。

 

使用qemu-img管理镜像

 

qemu-img基本命令

 

上节介绍了使用qemu-img创建镜像,这一节将会介绍qemu-img在镜像管理上的强大功能。

qemu-img有很多命令,包括下面常用的,当然qemu-img -h你懂得。

info

查看镜像的信息

create

创建镜像

check

检查镜像

convert

转化镜像的格式,(raw,qcow ……)

snapshot

管理镜像的快照

rebase

在已有的镜像的基础上创建新的镜像

resize

增加或减小镜像大小

 创建镜像

 

qemu-img create -f <fmt> -o <options> <fname> <size>

 举例:

qemu-img create -f raw -o size=4G /images/vm2.raw

 

hzgatt@hzgatt:~/images$ ll total 0-rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw hzgatt@hzgatt:~/images$ ll -s total 00 -rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw

 

hzgatt@hzgatt:~/images$ qemu-img info vm2.raw image: vm2.raw file format: raw virtual size: 4.0G (4294967296 bytess h

D. qemu 怎么运行 android

qemu从某种意义上功能类似于vmware/virtual box之类的软件,可以让你在当前OS中运行其它的操作系统,但是这仅仅是qemu的一种功能 qemu还可以模拟不同的cpu架构下的系统,比如在普通的个人pc上运行 arm linux之类,这个vmware之类的可能没有 关于qemu的使用 先到官网上下载qemu的源代码,目前是 1.2,如果使用的是linux系统,这个好办,直接编译安装,网上有不少说明的文档 使用的过程一般分为三步 1. 创建虚拟机文件系统 qemu-img create /f qcow2 xxx.img 10G 2. 在虚拟机文件系统中安装操作系统 qemu-system-i386 -hda xxx.img -cdrom xxx.iso -boot d 以xxx.img为文件系统,xxx.iso是系统安装ISO文件 3. 运行安装好的操作系统 qemu-system-i386 -hda xxx.img 运行xxx.img中的系统 以上的命令参数都比较简单,实际使用中需根据具体情况自己配置

E. 如何在linux上使用qemu执行镜像文件

1. 编译kernel
mkdir -p ~/misc/qemu
cd ~/misc/qemu
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.7.tar.bz2
tar xvfj linux-3.3.7.tar.bz2
cd linux-3.3.7
make defconfig
make
cp arch/x86/boot/bzImage ..
2. 制作根文件系统
cd ~/misc/qemu
dd if=/dev/zero of=rootfs.img bs=1M count=10
mkfs.ext3 rootfs.img
mkdir rootfs
sudo mount -t ext3 -o loop rootfs.img rootfs
cd rootfs
mkdir dev proc sys
3. 编译busybox
cd ~/misc/qemu
wget http://busybox.net/downloads/busybox-1.20.1.tar.bz2
tar xvfj busybox-1.20.1.tar.bz2
cd busybox-1.20.1
make defconfig
make menuconfig
(将busybox编译为静态连接方式)
- Busybox Settings
- Build options
- Build Busybox as a static binary
make
make install CONFIG_PREFIX=~/misc/qemu/rootfs
cd ~/misc/qemu
sudo umount rootfs
4. 运行
图形界面下:
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/bin/ash"
命令行界面:
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/bin/ash" -curses
通过vnc运行:
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/linuxrc" -curses -vnc 192.168.1.237:1
上面192.168.1.237为本机的一个IP地址。在另外一台机器上运行vnc client,填入192.168.1.237:1,即可通过vnc连接到linux系统
改进1:mount /proc和/sys,以及创建/dev/下的设备节点

启动后,/dev下无设备文件,而且/proc, /sys都没有mount上,导致有些命令无法运行(如top)。为了解决这个问题,可以修改启动脚本/linuxrc为:
#!/bin/ash

/bin/mount -t proc proc /proc
/bin/mount -t sysfs sysfs /sys
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

/bin/ash

然后chmod a+x /linuxrc,umount后再执行
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/linuxrc"

有关mdev的介绍和使用可以参考:
http://hi..com/kebey2004/blog/item/3692f6079b8e9dda7a894721.html

改进2:编一个最小kernel
make allnoconfig
make menuconfig
选择:
- Executable file formats / Emulations
- 选择Kernel support for ELF binaries
- Device Drivers
- 选择ATA/ATAPI/MFM/RLL support
- 选择generic/default IDE chipset support
- File systems
- 选择Ext3 journalling file system support
make
qemu -kernel linux-3.3.7/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/hda init=/linuxrc" -curses

F. 最新windows版qemu虚拟机使用技巧

RedflagWorkstation下已经带了QEMU
#QEMU-imgcreatewindows.img2G#这个就是创建虚拟机磁盘,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬盘
-cdrom指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径
-m是指定虚拟机使用的内存大小,如512M
-boot指定虚拟机启动用的设备,-boot后可以选择的参数是a,c,d.其中a是指从软盘启动,c就是用硬盘启动,d是光驱启动。
-enable-audio
-localtime使用实际主板bios上的时间。
应该可以顺利的进入虚拟机了,并开始安装了。
RedflagWorkstation下已经带了QEMU
#QEMU-imgcreatewindows.img2G#这个就是创建虚拟机磁盘,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬盘
-cdrom指定使用光驱,这个参数后面必须要跟个文件名,可以是物理光驱/dev/hda,可以使用ISO文件,为文件的路径
-m是指定虚拟机使用的内存大小,如512M
-boot指定虚拟机启动用的设备,-boot后可以选择的参数是a,c,d.其中a是指从软盘启动,c就是用硬盘启动,d当然就是光驱启动了。
-enable-audio
-localtime使用实际主板bios上的时间。
应该可以顺利的进入虚拟机了,并开始安装了。
安装过程中,要求换盘:在QEMU中按ctrl alt 2切换到QEMUmonitor模式输入?或help可以查看可用命令及使用说明。(在其他版本的QEMU中,运行QEMU加载OS后,这个shell就会自动变成QEMUmonitor模式)
changedevicefilename—changearemovablemedia
如changecdrom/tmp/xp1.iso
常用的快捷键:
ctrl alt F全屏切换
ctrl alt鼠标在虚拟机和主机间切换
虚拟机上网设置两种方式:
1.usermodenetwork:
这种方式实现虚拟机上网很简单,类似vmware里的nat,QEMU启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。
2.tap/tunnetwork:
这种方式要比usermode复杂一些,但是设置好后虚拟机互联网虚拟机主机通信都很容易
这种方式设置上类似vmware的host-only,QEMU使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.

dora 5 下的qemu安装使用qemu是最近出现的一种新的虚拟机,本身小巧的系 统和linux的加速器,使它一经面世就受到了热烈的欢迎,国内也有不少用户,但没有一篇完整的文章介 绍,使许多人走了不少弯路,其实,安装是比较简单的,较为复杂的部分是在网络部分,下面,就以 Fedora 5加kernel 2.6.17.4做为主机详细介绍qemu的安装和使用
一.安装
下载
qemu最新版是0.81,同时下载加速器kmenu,最新版是1.3
http://fabrice.bellard.free.fr/qemu/download.html
先安装Kqemu
$ tar zxvf kqemu-1.3.0pre9.tar.gz
$ cd kqemu-1.3.0pre9
$ su root
# ./configure
# make
# make install

然后安装qemu
# tar zxvf qemu-0.8.1.tar.gz
# cd qemu-0.8.1
#./configure --prefix=/usr/local --enable-kqemu --enable-user --enable-alsa --disable-gcc-check
说明:
--enable-user 可以允许系统下的所有用户使用Qemu
--enable-alas 可以允许系统共享系统的声音系统
--disable-gcc-check 因为wqemu默认是使用gcc3.2,我的系统gcc已经升级到了4.1,所有禁止了qemu对gcc的检查
#make
#make install
经过以上的操作,加速器和qemu都已经安装完成了。

二.创建新的img
用户可以将img文件创建到任意位置,只要有足够的空间就行。
# mkdir win2kp
# cd win2k
# qemu-img create win2k.img 2G
Formating 'win2k.img', fmt=raw, size=2097152 kB
2G是指定虚拟机的硬盘大小的
三.网络的设置
国 内的很多人都讲加参数就如何可以使用网络,但实际远没那么简单,我就是一开始看了网络上某人的贴子,结果是反反复复,网络一直不能正常工作,后来从 qemu的网站上下了所有的doc才搞定(比如有人发的贴都是使用-user-net就可以上网了,不但把语法写错了,而且只有这个参数根本就上不了 网!),在此我只说最复杂的部分,就是主机<->虚拟机<->internet全通的模式。
这种方式是使用tun/tap模式,必须崾内核的支持,主机上会增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它.
首先查看你的内核是否支持tun设备:
#ls -l /lib/moles/2.6.17.4/kernel/drivers/net/tun.ko
如果存在,则执行下面的命令,否则重新编译模块。
#modprobe tun

这时检查moles:
#lsmod |grep tun
tun 10240 1
tun 加载成功以后,要手工编辑一个shell.而且必须放在/etc下,文件名必须是qemu-ifup.最后要记得给脚本加上执行权限,如果要允许系 统下的所有用户使用,还必须更改脚本的权限,并在脚本中的命令前加上sudo,下面是是个完整的,给所有用户使用的脚本。

#vi /etc/qemu-ifup :
#!/bin/sh
sudo /sbin/ifconfig $1 192.168.10.1
sudo route add -host 192.168.10.100 dev $1
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

#chmod a+x /etc/qemu-ifup

四.安装虚拟系统
虚拟机的启动有很多选项,下面我就以我安装好的win2k来说明
如果要使用shm,必须进行以下的操作
# umount /dev/shm
# mount -t tmpfs -o size=528m none /dev/shm
别忘了启动加速器
#modprobe kqemu
shm的容量必须比你将要分配给虚拟机的内存大16m,否则无法使用,上面是准备给虚拟机512m的内存,所以,shm被设置成了528,如果你只给虚拟机256m的内存,上面的size应该是272.
好了,下面准备开始给上面创建的win2k.img装入系统
# qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -boot d -m 512 -win2k-hack
对于win2k的安装必须指定-win2k-hack参数,否则安装会中途出错退出,这个参数只需要在安装的时候使用,在运行的时候是不需要的。
-hda是指定将要使用的image文件,也就是windows的C盘
-cdrom 是准备给cdrom的驱动器,也就是windows的D盘,有人说这个参数是-cdrom /dev/cdrom,是指定你的主机的cdrom的位置,这是一个天大的错误,这里指的是启动后的虚拟机,和主机的cdrom在哪里没关系,当然,你的 系统必须有cdrom,如果没有cdrom,我想在linux下虚拟mount一个还是很容易的。
-boot d ,就是指定系统从D启动,各上面一项相关的
-m 512,指定分配组虚拟机的内存
如果一切顺利,安装完成以后,你就可以启动系统了

五.启动虚拟机
首先,按前面的介绍,加载好加速器和tun的模块,如果前面已经加载了,这里就不再需要了,只在主机重启了以后需要,如果经常使用虚拟机,也可以将它们直接添加进/etc/rc.d/rc.local让系统自动加载。
#modprobe kqemu
#modprobe tun
#qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -hdb fat:/home/seabird/work -m 512 -localtime -net nic -net tun
参数:
-hdb fat:/home/seabird/work
这是一个非常有用的参数,它的意思是把主机的/home/seabird/work目录直接以fat的格式加载到虚拟机,当然,它是只读的
-localtime,指定虚拟机使用当前的系统时间
-net nic -net tun
这两个参数必须同时使用,否则,你还是上不了网,它的意思是启动虚拟机的网卡同时和主机以及internet通讯,只有这个参数加载的时候,系统才会去读取/etc/qemu-ifup文件,其它的模式是不会读取这个文件的。
启 动完成以后,将win2k的网卡地址指定为192.168.10.100,网关设为1921.68.10.1还记得/etc/qemu- ifup文件吗,这个文件中的地址和你的虚拟机的地址是相关的,并不像有些人说的你可以像主机一样随便指定地址去上网,它是把主机作为一个NAT设备来使 用的。当然,你别忘记指定一个虚拟机可以到达的DNS服务器
六.后记
1.指定虚拟机的网络地址的时候。千万别指一个和你的主机相同网段的,那样,你是不可能上网的。
2.可以去安装98,但到目前的最新版为止,winxp在大多情况下安装是不成功的,这个在qemu的网站上说的很清楚,只有等以后的版本了,所以,你看到的安装winxp的贴子是没有实践的,我在三台配置不同的机器上安装都以失败告终了。
3.win2k运行的时候,如果用它自己的关机是关不掉虚拟机的,原因是不支持电源管理, 教你一个方法,使用win2k的安装/卸载硬件,一步步往下走, 在windows搜索完硬件后出现的对话窗中选择添加新硬件(白痴的windows,我竟然不能让它跳过搜索), ->下一步,选择“否,我想从列表选择硬件”->下一步->NT Apm/legacy支持->下一步,安装完成后你就可以正常关机了。
4.qemu还有一个最大的优点是可以启动你的硬盘上的双系统,如果现在就是双系统,你可以像下面一样直接启动:
#qemu -hda /dev/hda1 -m 512 -net nic -net tun
/hda1是你的另一个系统的硬盘分区,如果你是grub启动,这里就是你的grub所在的位置,等grub菜单出现后,选择想启动的系统就可以了(天啊,别选你现在正在运行的系统啊). Linux联盟收集整理

G. 为什么编译的内核qemu运行不了

你还需要准备一个initrd,然后使用qemu的命令启动,使用你的image和initrd,配置好参数就可以了。system.map启动不需要

H. 汇编语言编写的程序怎样才能用QEMU虚拟机启动

(1)QEMU是虚拟机,需要操作系统,你的exe需要在操作系统中运行。解决方法:在QEMU里装一个DOS或Windows。
(2)exe是编译给操作系统使用的,操作系统加载它时需要一些信息,这些不相干的机器码就是干这个用的。

I. qemu怎么把针对powerpc板的u-boot跑起来

使用Qemu模拟Cortex-A9运行U-boot和Linux 作者来源于网络

我的开发环境: Ubuntu-12.04 所有软件包为最新

1. 安装GNU工具链

sudo apt-get insatll gcc-arm-linux-gnueabi

sudo apt-get insatll g++-arm-linux-gnueabi
安装完成后会在 /usr/arm-linux-gnueabi/ 目录下生成库文件、头文件等。 我安装的GCC版本为:
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Copyright (C) 2011 Free Software Foundation, Inc.

2. 安装Qemu模拟器
sudo apt-get install qemu qemu-system qemu-utils

这时应该已经可以运行qemu-system-arm命令了, 其版本为:
qemu-system-arm --version

QEMU emulator version 1.0.50 (Debian 1.0.50-2012.03-0ubuntu2), Copyright (c) 2003-2008 Fabrice Bellard

3. 编译和运行U-boot:
到 ftp://ftp.denx.de/pub/u-boot/ 下载最新版本的U-Boot源代码, 我用的目前最新版本 u-boot-2012.04.tar.bz2
解压后进入源代码目录,在Makefile里面增加两行:

ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
其实就是告诉它使用ARM编译器来编译。

make ca9x4_ct_vxp_config
make
这里配置目标板为 Cortex-A9x4 vexpress. 之所以选这个配置可以从 boards.cfg文件里看到, vexpress是ARM公司使用Cortext-A9的一个开发板,相关的代码在 board/armltd/vexpress/ 目录,配置文件为include/configs/ca9x4_ct_vxp.h。 而且关键的是Qemu里面已经支持这个板卡。

编译完成后会生成u-boot文件
运行:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
或者
qemu-system-arm -M vexpress-a9 -m 256M -serial stdio -kernel u-boot
发现,如果没有指定-nographics, 则必须要加-serial stdio才会有打印。

参数-m 256M为指定内存大小。-M 指定板卡的名称, 支持的板卡可以用-M ?查看, 如下:
#qemu-system-arm -M ?
Supported machines are:
beagle Beagle board (OMAP3530)
beaglexm Beagle board XM (OMAP3630)
............
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
vexpress-a9 ARM Versatile Express for Cortex-A9
vexpress-a15 ARM Versatile Express for Cortex-A15
正常运行的结果:

qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot

U-Boot 2012.04 (Jul 08 2012 - 00:14:08)

DRAM: 256 MiB
WARNING: Caches not enabled
Flash: ## Unknown flash on Bank 1 - Size = 0x00000000 = 0 MB
## Unknown flash on Bank 2 - Size = 0x00000000 = 0 MB
*** failed ***
MMC: MMC: 0
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: smc911x-0
Hit any key to stop autoboot: 0
VExpress#
VExpress# printenv
baudrate=38400
bootcmd=run bootflash;
bootdelay=2
bootflash=run flashargs; cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; bootm ${kernel_addr} ${ramdisk_addr_r}
console=ttyAMA0,38400n8
。。。。。
注意:如果在检测Flash failed后停止运行,是因为在 arch/arm/lib/board.c里面 board_init_r()函数里检测Flash失败后调用了hang(), 暂时先把hang()去掉就可以运行下去了。

4. 编译和运行Linux内核:
到http://www.kernel.org/下载最新的Linux内核源码,我下载的是linux-3.4.4.tar.bz2. 解压后修改Makefile, ARCH = arm, CROSS_COMPILE=arm-linux-gnueabi-

make vexpress_defconfig
(可以到 arch/arm/configs/ 目录看到所有自带的配置文件, 我们使用vexpress板卡默认的配置文件)
然后 make menuconfig --> System Type 把 Enable the L2x0 outer cache controller 取消, 否则Qemu会起不来, 暂时还不知道为什么。
然后就可以make了。 最后会生成 arch/arm/boot/zImage 文件, 这就是我们需要的内核映像。

5. 制作根文件系统:
这部分网上有非常多的介绍,就不细说了。 大概流程是:先创建标准的Linux目录结构, 到http://www.busybox.net/上下载最新的Busybox源代码编译安装到刚才创建的目录,
拷贝ARM的库文件到相应目录,在etc/目录创建若干必须的启动脚本和配置文件。 下面说一下怎么生成一个ext3格式的文件系统映像:

dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32 //创建一个32M的空文件
mkfs.ext3 a9rootfs.ext3 //格式化为EXT3
sudo mount -t ext3 a9rootfs.ext3 a9rootdir/ -o loop //挂载到a9rootdir目录
cp path/to/your/rootfs/* a9rootdir/ -Rf //拷贝文件到该目录,相对于放到a9rootfs.ext3里面
sudo umount a9rootdir/
至此a9rootfs.ex3 就包含了我们创建的根文件系统内容, 并且是ext3格式。

6. 使用Qemu运行Linux:

qemu-system-arm -kernel zImage -serial stdio -M vexpress-a9 -append "root=/dev/mmcblk0 console=ttyAMA0 console=tty0" -sd a9rootfs.ext3
Qemu可以模拟SD卡, 我们把a9rootfs.ext3作为一个SD设备,对应的设备文件即为 /dev/mmcblk0, 以它作为根文件系统启动。 ttyAMA0: Serial console; tty0: Framebuffer Console. 最后放一张启动后的图片:

阅读(2682) | 评论(0) | 转发(0) |
0

上一篇:kernel 启动过程之五, initcall 的来由, console 的初始化
下一篇:linux下jlink安装
相关热门文章
A sample .exrc file for vi e...
游标的特征
IBM System p5 服务器 HACMP ...
busybox的httpd使用CGI脚本(Bu...
Solaris PowerTOP 1.0 发布
linux dhcp pei roc
关于Unix文件的软链接
求教这个命令什么意思,我是新...
sed -e "/grep/d" 是什么意思...
谁能够帮我解决LINUX 2.6 10...

J. 求助,编译qemu

编译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设备中把文件出来,这个方法的缺点是不能实时的交互文件,制作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,bug功能enalbe
make menuconfig

编译
make make mole_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

阅读全文

与qemu运行自己编译的bios相关的资料

热点内容
88影视打不开了 浏览:515
青岛办离婚用什么app 浏览:738
查询坐标命令 浏览:991
教孩子学编程ppt 浏览:813
77服务器怎么找 浏览:991
国外免费电影网站 浏览:914
java负数二进制 浏览:670
单片机多字节加减程序 浏览:151
手机网店用什么APP好 浏览:926
周星驰粤语资源 浏览:520
莱美健身教练app叫什么 浏览:887
有道词典forlinux 浏览:203
汇开优店的代理app叫什么 浏览:141
如何体验原生态的安卓 浏览:847
精致lee滤波源码 浏览:851
美颜都用什么app 浏览:139
单片机内存 浏览:554
mci命令 浏览:651
风月片洗发店 浏览:833
台湾电影,一个双腿残疾的人 浏览:737