編譯qemu最新版本
Ⅰ 求助,編譯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
Ⅱ 在windows下使用QEMU編譯linux內核怎麼做
能用虛擬機,Linux內核使用大量的GCC拓展,而且整個工程是用makefile來控制 在Windows下雖然有對應的GCC工具和make工具 但配置起來都比較麻煩!既然選擇學習linux內核 那麼linux下C語言編程和操作系統應該都有一定的基礎 而且現在桌面版的linux系統已經很人性化 像fedora Ubuntu都很好用了 不需要繁雜的配置!
Ⅲ 如何使用QEMU來編譯打包armhf/arm64的snap包
首先,你需要設置QEMU和ARM二進制以及asdebootstrap支持: sudo apt-get install debootstrap qemu-user-static qemu-system git \gcc-arm-linux-gnueabihf binfmt-support 現在,創建文件系統本身(這是為2GB圖片)和它掛載在/mnt目錄中。
Ⅳ 使用buildroot編譯arm架構的linux內核,使其支持usb攝像頭,並使用qemu虛擬運行
#沒有吧ext* 和 VFS編進去吧
cd/usr/src/linux
makemenuconfig
#選擇ext4和VFS,在FileSystem里,很好找
make;makemole_install;makeinstall
Ⅳ kvm和qemu的關系 kvm為什麼沒有做io虛擬化 半虛擬化和全虛擬化的區別 kvm是否在內
不同的基於KVM的虛擬化平台,可能會採用不同的虛擬化組件,目前主流的採用QEMU-KVM組件,但在不同的產品里版本有所不同,功能也有差異,下面就幾個概念進行梳理下
KVM:Kernel-Based Virtual Machine 基於內核的虛擬機,是Linux內核的一個可載入模塊,通過調用Linux本身內核功能,實現對CPU的底層虛擬化和內存的虛擬化,使Linux內核成為虛擬化層,需要x86架構的,支持虛擬化功能的硬體支持(比如Intel VT,AMD-V),是一種全虛擬化架構。KVM在2007年年2月被導入Linux 2.6.20內核中。從存在形式來看,它包括兩個內核模塊:kvm.ko 和 kvm_intel.ko(或kvm_amd.ko),本質上,KVM是管理虛擬硬體設備的驅動,該驅動使用字元設備/dev/kvm(由KVM本身創建)作為管理介面,主要負責vCPU的創建,虛擬內存的分配,vCPU寄存器的讀寫以及vCPU的運行。
QEMU:是一套由Fabrice Bellard編寫的模擬處理器的自由軟體,它是一個完整的可以單獨運行的軟體,可以獨立模擬出整台計算機,包括CPU,內存,IO設備,通過一個特殊的「重編譯器」對特定的處理器的二進制代碼進行翻譯,從而具有了跨平台的通用性。QEMU有兩種工作模式:系統模式,可以模擬出整個電腦系統,另一種是用戶模式,可以運行不同與當前硬體平台的其他平台上的程序(比如在x86平台上運行跑在ARM平台上的程序);其代碼地址 http://git.qemu.org/qemu.git ,有興趣的同學可以自己去看看,目前最新的版本是2.7.0,在0.9.1及之前版本還可以使用kqemu加速器(可以理解為QEMU的一個插件,用來提高QEMU的翻譯性能,支持Windows平台),但1.0以後版本就只能使用qemu-kvm(只支持Linux)進行加速了,1.3版本後QEMU和QEMU-KVM合二為一了。
QEMU-KVM:從前面對KVM內核模塊的介紹知道,它只負責CPU和內存的虛擬化,載入了它以後,用戶就可以進一步通過工具創建虛擬機(KVM提供介面),但僅有KVM還是不夠的,用戶無法直接控制內核去做事情(KVM只提供介面,怎麼創建虛擬機,分配vCPU等並不在它上面進行),還必須有個運行在用戶空間的工具才行,KVM的開發者選擇了比較成熟的開源虛擬化軟體QEMU來作為這個工具,並對其進行了修改,最後形成了QEMU-KVM。
在QEMU-KVM中,KVM運行在內核空間,QEMU運行在用戶空間,實際模擬創建,管理各種虛擬硬體,QEMU將KVM整合了進來,通過/ioctl 調用 /dev/kvm,從而將CPU指令的部分交給內核模塊來做,KVM實現了CPU和內存的虛擬化,但kvm不能虛擬其他硬體設備,因此qemu還有模擬IO設備(磁碟,網卡,顯卡等)的作用,KVM加上QEMU後就是完整意義上的伺服器虛擬化
當然,由於qemu模擬io設備效率不高的原因,現在常常採用半虛擬化的virtio方式來虛擬IO設備,另文再談
綜上所述,QEMU-KVM具有兩大作用:
1.提供對cpu,內存(KVM負責),IO設備(QEMU負責)的虛擬
2.對各種虛擬設備的創建,調用進行管理(QEMU負責)
libvirt
順帶提一提libvirt,這是RedHat開始支持KVM後,大概是覺得QEMU+KVM方案中的用戶空間虛擬機管理工具不太好用或者通用性不強,所以乾脆搞了個libvirt出來,一個針對各種虛擬化平台的虛擬機管理的API庫,一些常用的虛擬機管理工具如virsh(類似vim編輯器),virt-install,virt-manager等和雲計算框架平台(如OpenStack,OpenNebula,Eucalyptus等)都在底層使用libvirt提供的應用程序介面。
libvirt主要由三個部分組成:API庫,一個守護進程 libvirtd 和一個默認命令行管理工具 virsh。
總結:
目前來說,QEMU是一個獨立的虛擬化解決方案,並不依賴KVM(它本身自己可以做CPU和內存的模擬,只不過效率較低),而KVM是另一套虛擬化解決方案,對CPU進行虛擬效率較高(採用了硬體輔助虛擬化),但本身不提供其他設備的虛擬化,借用了QEMU的代碼進行了定製,所以KVM方案一定要依賴QEMU
即使後來RedHat後來開發了libvirt,也只能簡單的認為是個虛擬機管理工具,仍然需要通過用戶空間QEMU來與KVM進行交互
Ⅵ qemu如何使用
qemu常用網路模式是user、tap。
user使用有局限性,
1) 由於其在QEMU內部實現所有網路協議棧,因此其性能較差。
2) 不支持部分網路功能(如ICMP),所以不能在客戶機中使用ping命令測試外網連通性。
3) 不能從宿主機或外部網路直接訪問客戶機。需要作地址重定向。
tap方式網路沒有這些限制。
通過tap又可以實現bridge和nat方式的網路連接。
Ⅶ 最新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聯盟收集整理
Ⅷ 請教如何編譯SDL和qemu
在試用VirtualBox後我就扔掉qemu和bochs了
Ⅸ 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...