兩篇博文結(jié)合起來看
host OS: Fedora 12 下載QEMU源代碼從QEMU官網(wǎng)下載源代碼http://wiki./Download,,目前的最新版本是qemu-0.12.4.tar.gz 還有單獨(dú)的加速模塊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 前三個(gè)是必須的,,后面我沒有遇到提示,編譯時(shí)如果遇到某庫沒有安裝,,可以用yum search或者yum list來查找相關(guān)的軟件包,,安裝dev版本的 接下來編譯 ./configure make make install 全部編譯花費(fèi)的時(shí)間很長,QEMU會(huì)把所有的target都編譯出來,,如果只需要模擬特定的平臺(tái),,可以 ./configure TARGET=i386-softmmu 運(yùn)行QEMU安裝好QEMU之后可以從官網(wǎng)上下載一個(gè)很小的包含linux系統(tǒng)的虛擬磁盤來實(shí)驗(yàn)一下linux-0.2.img.bz2,不過這個(gè)linux剪裁的很小實(shí)在做不了什么,,磁盤鏡像也很小,,不能往里面放東西 QEMU現(xiàn)在都是用VNC方式運(yùn)行的,即QEMU會(huì)把自己當(dāng)做VNC的服務(wù)器端,,使用QEMU時(shí)還需要用VNC的客戶端來連接它,。 首先安裝VNC client軟件,可以用yum search vncviewer來搜索下可以的軟件,。 在終端中運(yùn)行QEMU,,5900表示在VNC服務(wù)器在本機(jī)的5900端口 qemu -hda linux-0.2.img.bz2 -vnc ::1:5900 打開另一個(gè)終端,輸入 vncview 127.0.0.1:5900 QEMU的GUI界面顯示 安裝guest OS首先創(chuàng)建一塊虛擬磁盤鏡像,,如果是準(zhǔn)備安裝Fedora這樣的OS,,還是創(chuàng)建10G以上的硬盤吧。用dd命令也可以創(chuàng)建一塊空的硬盤鏡像,,但是很慢,。 qemu-img create -f qcow2 disk.img 10G Fedora 12的系統(tǒng)安裝ISO鏡像文件一份,可以從fedora官網(wǎng)下載,,開始安裝操作系統(tǒng),-m 512表示指定內(nèi)存大小512M,,不可缺少,不然fedora12啟動(dòng)后畫面顯示出問題 qemu -hda disk.img -m 512 -cdrom Fedora.XXXX.iso -vnc ::1:5900 在另一個(gè)終端里輸入: vncviewer 127.0.0.1:5900 然后可以在QEMU窗口中安裝fedora,,一切步驟同裸機(jī)安裝,,就是很慢很慢 啟動(dòng)guest OS,目前發(fā)現(xiàn)的問題是對(duì)鍵盤的支持不好,,鍵位錯(cuò)亂了 qemu -hda disk.img -m 512 -vnc ::1:5900 guest與host文件交互問題,,解決方法很多,可以通過網(wǎng)絡(luò)傳輸,,QEMU還支持把host disk掛載使用,,我是把所需要的文件制作成iso鏡像,然后在啟動(dòng)qemu時(shí)用- cdrom來指定這個(gè)文件,,guest OS啟動(dòng)再從CDROM設(shè)備中把文件copy出來,,這個(gè)方法的缺點(diǎn)是不能實(shí)時(shí)的交互文件,,制作ISO文件,在linux下: mkisofs XXX YYY.iso 編譯內(nèi)核下載linux內(nèi)核源代碼: 解壓縮源代碼,放在/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補(bǔ)丁程序,,注意對(duì)應(yīng)的版本號(hào):http://www./ 打補(bǔ)丁 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 制作內(nèi)核鏡像 make bzImage 制作初始化鏡像 mkinitrd make install可以自動(dòng)完成工作使得下次系統(tǒng)從這個(gè)內(nèi)核啟動(dòng),手工做的話把內(nèi)核鏡像文件,,initrd文件和system.map文件一起復(fù)制到/boot/下面,,并修改/boot/grub/menu.lst 更換guest OS內(nèi)核將編譯好的三個(gè)文件制作成ISO文件,并通過qemu的-cdrom指定,,然后在guest OS中復(fù)制內(nèi)核到boot文件夾下,,修改menu.lst linux下制作iso鏡像文件的命令,,源文件放在/dev/cdrom目錄下:
mkisofs -r -o myiso.iso /dev/cdrom 從Tuxonice官網(wǎng)http://www./downloads/ 下載Hibernate腳本并安裝,可以通過修改/etc/hibernate/tuxonice.conf文件中的power method項(xiàng)使得hibernate命令支持不同級(jí)別的休眠 從實(shí)驗(yàn)中發(fā)現(xiàn),,suspend2disk使得QEMU的窗口也消失,,必須重新啟動(dòng)QEMU,,而suspen2mem則可以通過晃動(dòng)鼠標(biāo)等動(dòng)作喚醒,。
在LINUX編譯安裝QEMU
在Linux下編譯安裝QEMU2009-02-09 添加留言目錄 1.系統(tǒng)環(huán)境及版本Linux發(fā)行版本:ubuntu 8.04
安裝QEMU-0.9.1 2.準(zhǔn)備工作在QEMU主頁下載源代碼,,并解壓到/tmp目錄下(假設(shè)源代碼保存在~/Setup),。 $ tar zvxf ~/Setup/qemu-0.9.1.tar.gz -C /tmp 建立編譯環(huán)境: $ sudo apt-get install build-essential 編譯安裝QEMU,,最重要的工具就是gcc,。在大多數(shù)主機(jī),,特別是x86架構(gòu)的PC機(jī)上,gcc 4.x是不被QEMU所支持的,。build-essential 中包含的是 gcc 4.x,為了正確編譯,,需要低版本的gcc 3.x(gcc32 或 gcc34),,低版本安裝后,,QEMU的配置腳本(configure script)在配置時(shí)會(huì)自動(dòng)搜尋到,。我安裝的是gcc 3.4: $ sudo apt-get install gcc-3.4 cpp-3.4 安裝QEMU需要SDL開發(fā)庫的支持,,可以在其下載頁面上下載源代碼編譯安裝,,但是推薦在apt中安裝,,不容易出問題: $ sudo apt-get install libsdl1.2-dev 另外,還需要安裝zlib和ESD: sudo apt-get install zlib1g-dev zlib1g-dbg libesd0-dev 3.編譯安裝QEMU現(xiàn)在可以開始安裝了: $ cd /tmp/qemu-0.9.1$ ./configure --prefix=/usr/local/qemu 不加上prefix選項(xiàng)也是可以的,。這個(gè)選項(xiàng)的作用是指定安裝目錄,。如果不指定prefix,則可執(zhí)行文件默認(rèn)放在/usr/local/bin,,庫文件默認(rèn)放在/usr/local/lib,,配置文件默認(rèn)放在/usr/local/etc。由于QEMU不能用make uninstall的方法卸載,,指定安裝目錄可以便于卸載(其實(shí)就是刪掉整個(gè)安裝目錄),。 然后 $ make$ sudo make install make比較費(fèi)時(shí),請(qǐng)耐心等待,。 至此,,QEMU安裝完成,。 4.設(shè)置環(huán)境變量如果./configure時(shí)使用了prefix選項(xiàng),還需要設(shè)置環(huán)境變量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重新啟動(dòng)X Window,。
由于通過源碼安裝的qemu沒有辦法通過系統(tǒng)工具進(jìn)行卸載,,也沒有辦法通過make uninstall方法卸載,所以只能通過刪除文件的方式進(jìn)行卸載。 qemu可執(zhí)行文件默認(rèn)放在/usr/local/bin,,庫文件默認(rèn)放在/usr/local/libexec,配置文件默認(rèn)放在/usr/local/etc,,共享文件默認(rèn)放在/usr/local/etc/share,。要卸載源碼編譯的qemu,,需要到這四個(gè)目錄中找出相關(guān)的文件然后刪除掉,。 如果configure時(shí)沒有通過--target-list=指定編譯的目標(biāo)機(jī)體系結(jié)構(gòu),,則/usr/local/bin中的以qemu開頭的文件需要?jiǎng)h除,總共51個(gè),。 /usr/local/libexec中只有一個(gè)文件:qemu-bridge-helper,直接刪除即可,。
/usr/local/etc比較簡(jiǎn)單,,只有一個(gè)qemu目錄,其下有一個(gè)文件target-x86_64.conf,,直接將qemu目錄刪除即可,。 同/usr/local/etc一樣,qemu相關(guān)的共享文件都放在/usr/local/etc/share目錄下的qemu子目錄中,,直接將該子目錄刪除即可,。 error while loading shared libraries: cannot restore segment prot after reloc: Permission denied錯(cuò)誤原因在于selinux禁用了訪問此共享庫 解決辦法: 關(guān)閉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
|