debian如何編譯qemu
A. 如何編譯OpenWrt
准備工作
在開始編譯Openwrt之前需要您做些准備工作;與其他編譯過程一樣,類似的編譯工具和編譯環境是必不可少的:
一個構建OpenWrt映像的系統平台,簡單說就是准備一個操作系統(比如Ubuntu、Debian等);
確保安裝了所需的依賴關系庫, (在debian系統中就是安裝各種需要的軟體包)
OpenWrt源代碼副本
首先, 開機登陸到支持編譯Openwrt的操作系統(廢話了)。實體機或者虛擬機(Vmware 或者 Qemu)里的操作系統都行,這里推薦使用linux系統。 bsd和mac osx系統也可以編,但不推薦,且未驗證是否可編譯成功。下文假定您使用的是Debian操作系統,使用 apt-get 來管理包. 替代的選擇是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安裝所需要的各種軟體包, 包括編譯器,解壓工具,特定的庫等. 這些工作可以簡單的通過鍵入以下命令 (通常需要root 或者是 sudo 許可權),以root許可權安裝下列軟體包(可能並不完整,會有提示,提示缺少即裝就可以了):
32位(x86)請執行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev
64位(x86_64)請執行下列命令(多裝了哪些庫或軟體包呢?請您仔細看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386
參考 本列表中 所列的編譯環境所需要軟體包或庫。
某些依賴的為庫或軟體包也許操作系統中已經安裝過,此時apt-get會作出提示(提示您忽略或重新安裝的),別緊張,放輕鬆些,編譯Openwrt不會像編譯DD-WRT那樣難的(至少本人是體會到了編譯DD-WRT的難)。
最後下載一份完整的 Openwrt 源碼到編譯環境中。關於Openwrt的源代碼下載,途徑有二,一是通過 svn ,一是通過 git,建議使用 svn ,因為Openwrt主要以 svn 來維護Openwrt系統的版本。另外,請注意Openwrt中不同的分支版本,一個是用得較多的開發快照,俗稱 trunk,二是穩定版,俗稱 backfire。
B. 如何在Linux發行版上安裝和配置KVM和Open vSwitch
KVM和Open vSwitch分別是用於如今的數據中心中的最流行的開源虛擬機管理程序和虛擬交換機。
下面是在Ubuntu或Debian上安裝和配置KVM和Open vSwitch(OVS)的教程步驟:
雖然OVS以程序包的方式出現在Ubuntu或Debian上,但我在此還是通過源代碼來構建OVS,這將擁有最新的功能特性和修正版。
首先,安裝用於構建OVS的依賴項。
$sudoapt-getinstallbuild-essentiallibssl-devlinux-headers-$(uname-r)
通過源代碼來構建OVS,如下所示。下列步驟將構建OVS內核模塊以及OVS用戶空間工具。
$wgethttp://openvswitch.org/releases/openvswitch-1.9.3.tar.gz
$tarxvfvzopenvswitch-1.9.3.tar.gz
$cdopenvswitch-1.9.3
$./configure--with-linux=/lib/moles/`uname-r`/build
$make
接下來,繼續在/usr/local/share/下安裝OVS用戶空間組件:
$sudomakeinstall
下一步是,測試OVS內核模塊(安裝該模塊之前)。為此,先在內核中裝入內核模塊。
$sudoinsmod./datapath/linux/openvswitch.ko
證實OVS內核模塊已成功裝入。
$lsmod|grepopenvswitch
openvswitch 97934 0
一旦你證實openvswitch.ko已成功裝入到內核中,繼續安裝內核模塊,如下所示。
$sudomakemoles_install
配置和啟動Open vSwitch
創建一個框架式OVS配置資料庫。
$sudomkdir/etc/openvswitch
$sudoovsdb-toolcreate/etc/openvswitch/conf.db./vswit
chd/vswitch.ovsschema
啟動OVS資料庫伺服器。
$sudoovsdb-server--remote=punix:/usr/local/var/run/ope
nvswitch/db.sock-remote=db:Open_vSwitch,manager_options
--pidfile--detach
OVS配置資料庫初始化。
$sudoovs-vsctl--no-waitinit
最後,啟動OVS守護程序。
$sudoovs-vswitchd--pidfile--detach
將KVM安裝在Ubuntu或Debian上
使用apt-get命令,安裝KVM和必要的用戶空間工具。
$sudoapt-getinstallqemu-kvmlibvirt-binbridge-utils
virt-manager
將一個普通的非根用戶(如alice)添加到libvirtd群組,那樣該用戶不需要根用戶許可權,就能啟動虛擬機。
$sudoadseralicelibvirtd
退出,重新以該用戶身份登錄,讓群組成員的變更生效。
運行下面這個命令。如果你看到空空如也的虛擬機列表,這意味著KVM已成功設置完畢。
$virsh-cqemu:///systemlist
Id Name State
為KVM配置Open vSwitch
現在是時候創建OVS網橋啟動腳本了,那樣啟動或終止虛擬機時,OVS就能自動配置。
安裝依賴項(用戶模式Linux實用工具),這些依賴項將用於處理Linux網橋模式。
$sudoapt-getinstalluml-utilities
創建網橋啟動腳本,如下所示。
$sudovi/etc/openvswitch/ovs-ifup
#!/bin/sh
switch='br0'
/sbin/ifconfig$10.0.0.0up
ovs-vsctladd-port${switch}$1
$sudovi/etc/openvswitch/ovs-ifdown
#!/bin/sh
switch='br0'
/sbin/ifconfig$10.0.0.0down
ovs-vsctldel-port${switch}$1
$sudochmod+x/etc/openvswitch/ovs-if*
然後,創建一個默認的網橋br0,並添加一個物理網路介面,虛擬機將通過這個介面與外部網路進行聯系。在該教程中,我假設這類網路介面是eth5。
$sudoovs-vsctladd-brbr0
$sudoovs-vsctladd-portbr0eth5
藉助KVM啟動虛擬機
現在你可以准備啟動訪客虛擬機了。
我假設,你已經准備好了一個訪客虛擬機映像(比如ubuntu-client.img)。使用下面這個命令,啟動訪客虛擬機。
$sudokvm-m1024-netnic,macaddr=11:11:11:EE:EE:EE-ne
ttap,script=/etc/openvswitch/ovs-ifup,downscript=/etc/op
envswitch/ovs-ifdown-vnc:1-drivefile=/home/dev/images
/ubuntu-client.img,boot=on
這會創建並啟動一個訪客虛擬機;一旦訪客虛擬機啟動,其虛擬介面就自動添加到OVS網橋br0。
你可以使用ovs-vsctl這個命令,核實OVS的狀態,如下所示。