編譯安裝QEMU 及卸載


host OS: Fedora 12

下載QEMU源代碼

從QEMU官網下載源代碼http://wiki.qemu.org/Download,目前的最新版本是qemu-0.12.4.tar.gz
還有單獨的加速模塊kqemu-1.4.0pre1.tar.gz
解壓縮

tar zvxf qemu-0.12.4.tar.gz

編譯

編譯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設備中把文件copy出來,這個方法的缺點是不能實時的交互文件,制作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,dubug功能enalbe

make menuconfig

編譯

make make module_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

從Tuxonice官網http://www.tuxonice.net/downloads/ 下載Hibernate腳本並安裝,可以通過修改/etc/hibernate/tuxonice.conf文件中的power method項使得hibernate命令支持不同級別的休眠
從實驗中發現,suspend2disk使得QEMU的窗口也消失,必須重新啟動QEMU,而suspen2mem則可以通過晃動鼠標等動作喚醒。



在LINUX編譯安裝QEMU

在Linux下編譯安裝QEMU2009-02-09 添加留言目錄

 


 

1.系統環境及版本

Linux發行版本:ubuntu 8.04

安裝QEMU-0.9.1

 

2.准備工作

QEMU主頁下載源代碼,並解壓到/tmp目錄下(假設源代碼保存在~/Setup)。

$ tar zvxf ~/Setup/qemu-0.9.1.tar.gz -C /tmp

建立編譯環境:

$ sudo apt-get install build-essential

 

編譯安裝QEMU,最重要的工具就是gcc。在大多數主機,特別是x86架構的PC機上,gcc 4.x是不被QEMU所支持的。build-essential 中包含的是 gcc 4.x,為了正確編譯,需要低版本的gcc 3.x(gcc32 或 gcc34),低版本安裝后,QEMU的配置腳本(configure script)在配置時會自動搜尋到。我安裝的是gcc 3.4:

$ sudo apt-get install gcc-3.4 cpp-3.4

安裝QEMU需要SDL開發庫的支持,可以在其下載頁面上下載源代碼編譯安裝,但是推薦在apt中安裝,不容易出問題:

$ sudo apt-get install libsdl1.2-dev

另外,還需要安裝zlib和ESD:

sudo apt-get install zlib1g-dev zlib1g-dbg libesd0-dev

 

 

3.編譯安裝QEMU

現在可以開始安裝了:

$ cd /tmp/qemu-0.9.1$ ./configure --prefix=/usr/local/qemu

不加上prefix選項也是可以的。這個選項的作用是指定安裝目錄。如果不指定prefix,則可執行文件默認放在/usr/local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc。由於QEMU不能用make uninstall的方法卸載,指定安裝目錄可以便於卸載(其實就是刪掉整個安裝目錄)。

然后

$ make$ sudo make install

make比較費時,請耐心等待。

至此,QEMU安裝完成。

 

4.設置環境變量

如果./configure時使用了prefix選項,還需要設置環境變量PATH,否則bash是找不到qemu的命令的(除非你輸入該命令的具體路徑,如/usr/local/qemu/bin/qemu)。編輯/etc/profile

$ sudo gedit /etc/profile

在文件中添加

PATH="$PATH:/usr/local/qemu/bin"export PATH

保存,退出,並用Ctrl+Alt+Backspace重新啟動X Window。


卸載qemu 1.4.1

 

由於通過源碼安裝的qemu沒有辦法通過系統工具進行卸載,也沒有辦法通過make uninstall方法卸載,所以只能通過刪除文件的方式進行卸載。

qemu可執行文件默認放在/usr/local/bin,庫文件默認放在/usr/local/libexec,配置文件默認放在/usr/local/etc,共享文件默認放在/usr/local/etc/share。要卸載源碼編譯的qemu,需要到這四個目錄中找出相關的文件然后刪除掉。

如果configure時沒有通過--target-list=指定編譯的目標機體系結構,則/usr/local/bin中的以qemu開頭的文件需要刪除,總共51個。

/usr/local/libexec中只有一個文件:qemu-bridge-helper,直接刪除即可。

/usr/local/etc比較簡單,只有一個qemu目錄,其下有一個文件target-x86_64.conf,直接將qemu目錄刪除即可。

同/usr/local/etc一樣,qemu相關的共享文件都放在/usr/local/etc/share目錄下的qemu子目錄中,直接將該子目錄刪除即可。

 

error while loading shared libraries:  cannot restore segment prot after reloc: Permission denied錯誤原因在於selinux禁用了訪問此共享庫

解決辦法: 關閉selinux

1、編輯/etc/selinux/config文件,找到SELINUX=enforcing,改為SELINUX=disabled

2、編輯/etc/sysconfig/selinux文件,找到SELINUX=enforcing,改為SELINUX=disabled

3、重啟電腦

http://blog.csdn.net/siling4/article/details/6916208


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM