當前位置:首頁 » 編程軟體 » qemuwindows編譯

qemuwindows編譯

發布時間: 2022-08-31 19:44:35

Ⅰ 怎樣在windows上用qemu安裝linux

您好,qemu是一款虛擬化軟體。使用者需要有一定命令行基礎,或直接下載qemu manger
qemu的一大缺點就是不能換軟盤、光碟
安裝Linux需要創建硬碟映像(別太小)和安裝光碟
在網路上搜索一下用法就可以了
只要你會使用它的命令行,就可以在qemu裡面像正常系統一樣的安裝.
望採納

Ⅱ 手機如何用qemu模擬windows

QEMU是一套開源的跨平台模擬器,該文主要介紹QEMU的常用命令以及使用QEMU模擬運行Windows98CE的方法和步驟。

關鍵詞:QEMU;模擬器;Windows

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)26-7263-02

計算機模擬器(computersimulator)指的是「用計算機模擬計算機的模擬器」。計算機模擬器已被用於在實際發行前調試微程序或者商業應用程序。由於該計算機上的操作都是模擬的,所有信息都可被程序員獲取,而模擬的速度、執行等都可以控制。

在最近為某銀行開發軟體的過程中,由於客戶工作環境比較復雜,需要在不同環境和硬體條件下對項目進行測試和部署,由於在一台電腦上反復安裝不同的測試環境是一件非常繁瑣費時的工作,所以這里選用QEMU模擬不同的軟硬體環境來完成不同環境下軟體的部署和調試測試。下面以使用QEMU模擬Windows98CE環境為例,介紹QEMU的使用方法。

1QEMU簡介

QEMU是一套由FabriceBellard所編寫的開源跨平台模擬器。它具備高速度及跨平台的特性。QEMU有兩種主要運作模式:1)Usermode模擬模式,亦即是使用者模式。QEMU能啟動那些為不同中央處理器編譯的Linux程序。而Wine及Dosemu是其主要目標。

2)Systemmode模擬模式,亦即是系統模式。QEMU能模擬整個電腦系統,包括中央處理器及其他周邊設備。它使得為系統源代碼進行測試及除錯工作變得容易。其亦能用來在一部主機上虛擬數部不同虛擬電腦。

QEMU可以模擬IA-32(x86)個人電腦,AMD64個人電腦,MIPSR4000,升陽的SPARCsun3與PowerPC等硬體架構,同時在支持硬體虛擬化的x86構架上可以使用KVM加速配合內核ksm大頁面備份內存,速度穩定遠超過VMwareESX。QEMU增加了模擬速度,某些程序甚至可以實時運行,同時可以在其他平台上運行Linux的程序,可以儲存及還原運行狀態(如運行中的程序),也可以虛擬網路卡,使虛擬機可以與真實網路及宿主機進行通信。

2使用QEMU模擬運行Windows98CE

首先介紹一些QEMU的常用命令,這些命令在模擬運行Windows的時候經常用到:

-fdbfile,使用file作為軟盤鏡像.,這里的file可以是軟盤鏡像文件名也可以是真實的軟盤設備,比如/dev/fd0。

-hdafile-hdbfile-hdcfile,這里的file是指硬碟的鏡像文件名。

-bootadc,用於指定系統啟動優先使用的設備,a指軟盤,c指硬碟,d指光碟機。

-mmegs,指定虛擬系統的內存大小,這里的單位是MB,QEMU默認的是128M。

-enable-audio,由於sb16的虛擬音效卡驅動在Windows下使用有些問題,默認QEMU是關閉這個選項。

-localetime,QEMU默認使用的是UTC時區

-user-net,使用UserMode網路設備來建立網路連接,這是默認的

虛擬網路模式,相當於VMware的NAT。

在安裝之前,首先准備好Windows98CE的安裝鏡像,然後使用

QEMU來製作磁碟鏡像,也就是為即將安裝的Windows98CE分配磁碟

空間,命令如下:

>cdc:/qemu/qemu-0.9.0-Windows(假設QEMU安裝在c:/qemu/qe-

mu-0.9.0-Windows目錄下)

>qemu-img.execreatewince.img10G

下面,開始在製作好的磁碟鏡像中安裝Windows98,步驟如下:

1)運行命令qemu-bootd-cdromWindows98.iso-hdawin98se.img

,用於啟動到DOS,分區和格式化,開始安裝。在DOS環境下,對磁碟進

行格式化等處理,,然後運行setup命令開始安裝windwos98CE,安裝過

程不再詳細描述

Ⅲ qemu如何使用

qemu常用網路模式是user、tap。
user使用有局限性,
1) 由於其在QEMU內部實現所有網路協議棧,因此其性能較差。
2) 不支持部分網路功能(如ICMP),所以不能在客戶機中使用ping命令測試外網連通性。
3) 不能從宿主機或外部網路直接訪問客戶機。需要作地址重定向。
tap方式網路沒有這些限制。
通過tap又可以實現bridge和nat方式的網路連接。

Ⅳ windows下的qemu怎麼模擬arm啊

使用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()去掉就可以運行下去了。

Ⅳ qemu windows怎麼用

為什麼要使用Qemu虛擬機呢? 這個虛擬機一般測試還行真正使用起來還是使用VM或Virtual box 還是一樣,載入個XP安裝版鏡像就可以了,Ghost版需要先將分配好的磁碟格式化再次載入鏡像進行安裝。

Ⅵ 最新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聯盟收集整理

Ⅶ 匯編語言編寫的程序怎樣才能用QEMU虛擬機啟動

(1)QEMU是虛擬機,需要操作系統,你的exe需要在操作系統中運行。解決方法:在QEMU里裝一個DOS或Windows。
(2)exe是編譯給操作系統使用的,操作系統載入它時需要一些信息,這些不相乾的機器碼就是干這個用的。

Ⅷ 如何在windows上編譯和運行xv6

首先編譯xv6涉及的工具包括gcc,binutils,make,qemu。
xv6需要能生成elf32格式的可執行文件的工具鏈,好在windows下已經有了mingw32這個gcc在windows下的移植,
這樣用mingw32編譯一套在windows下運行的i386-none-elf交叉工具鏈成為可能。
Make和qemu也是如此,這里需要說明的是默認網上下載的qemu可執行文件很可能是不帶有gdb調試功能的,
這也是需要重新自己編譯qemu的原因之一,第二個原因是qemu默認的輸入輸出會被定向到兩個文本文件,
直接後果是xv6的uart將無法使用,自己編譯qemu解決上述兩點。
接下來是修改makefile文件,這里同時涉及dd,sign.pl,vectors.pl,mkfs。
dd在這里的作用是將bootblock和kernel兩個文件組合構建xv6.img鏡像,sign.pl是在bootblock添加0xaa55引導標記,
vectors.pl是生成vectors.S文件,mkfs是構建xv6根文件系統鏡像fs.img用的。
我編寫了wd.c對應dd,sign.c對應sign.pl,vectors.S在linux構建時直接復制了,mkfs.c也需要修改。
wd.c

[cpp] view plain
#include <stdio.h>

int main(int argc, char *argv[])
{
char buf[512];
int n;
FILE *fdin;
FILE *fdout;

fdout = fopen(argv[1], "wb+");

fdin = fopen("bootblock", "rb");
for(n = 1; n > 0; ) {
n = fread(buf, 1, 512, fdin);
fwrite(buf, 1, n, fdout);
}
fclose(fdin);

fdin = fopen("kernel", "rb");
for(n = 1; n > 0; ) {
n = fread(buf, 1, 512, fdin);
fwrite(buf, 1, n, fdout);
}
fclose(fdin);
fclose(fdout);

return 0;
}

sign.c

[cpp] view plain
#include <stdio.h>

int main(void)
{
FILE *fd;
char buf[2];

buf[0] = 0x55;
buf[1] = 0xaa;

fd = fopen("bootblock", "rb+");
fseek(fd, 510, SEEK_SET);
fwrite(buf, 1, 2, fd);
fclose(fd);

return 0;
}
mkfs.diff

[cpp] view plain
19c19
< int fsfd;
---
> FILE *fsfd;
34a35,39
>
> #define bzero(s,n) memset(s,0,n)
> #define b(src,dest,n) memmove(dest,src,n)
> #define index(a,b) strchr(a,b)
>
61c66,67
< int i, cc, fd;
---
> int i, cc;
> FILE *fd;
75,76c81,82
< fsfd = open(argv[1], O_RDWR|O_CREAT|O_TRUNC, 0666);
< if(fsfd < 0){
---
> fsfd = fopen(argv[1], "wb+");
> if(fsfd == NULL){
118c124
< if((fd = open(argv[i], 0)) < 0){
---
> if((fd = fopen(argv[i], "rb+")) == NULL){
137c143
< while((cc = read(fd, buf, sizeof(buf))) > 0)
---
> while((cc = fread(buf, 1, BSIZE, fd)) > 0)
140c146
< close(fd);
---
> fclose(fd);
158,159c164,165
< if(lseek(fsfd, sec * 512L, 0) != sec * 512L){
< perror("lseek");
---
> if(fseek(fsfd, sec * 512L, SEEK_SET) != 0){
> perror("fseek");
162,163c168,169
< if(write(fsfd, buf, 512) != 512){
< perror("write");
---
> if(fwrite(buf, 1, 512, fsfd) != 512){
> perror("fwrite");
204,205c210,211
< if(lseek(fsfd, sec * 512L, 0) != sec * 512L){
< perror("lseek");
---
> if(fseek(fsfd, sec * 512L, SEEK_SET) != 0){
> perror("fseek");
208,209c214,215
< if(read(fsfd, buf, 512) != 512){
< perror("read");
---
> if(fread(buf, 1, 512, fsfd) != 512){
> perror("fread");

熱點內容
高中生電腦編程培訓 發布:2025-03-15 03:11:04 瀏覽:49
蘋果和安卓5g哪個比較值得 發布:2025-03-15 03:05:11 瀏覽:904
台式電腦連接伺服器的線叫什麼線 發布:2025-03-15 03:02:21 瀏覽:980
python求餘弦 發布:2025-03-15 02:59:47 瀏覽:55
什麼叫伺服器域名 發布:2025-03-15 02:58:13 瀏覽:317
php框架實例 發布:2025-03-15 02:58:01 瀏覽:937
android結束子線程結束 發布:2025-03-15 02:49:24 瀏覽:860
北京理工大學伺服器ip 發布:2025-03-15 02:46:16 瀏覽:709
自動配置腳本怎麼刪除 發布:2025-03-15 02:46:11 瀏覽:809
國內唯一免費的雲伺服器 發布:2025-03-15 02:27:36 瀏覽:982