前言
還記得之前關於體驗ESX服務器的那些事情嗎?你可以通過“利用單主機搭建和物理機器通訊的測試網絡(http://waringid.blog.51cto.com/65148/413530)”、“使用Vmware ESX 4.0搭建虛擬測試環境(http://waringid.blog.51cto.com/65148/220283)”、“通過VsPhere體驗MAC OS X(http://waringid.blog.51cto.com/65148/367393)”、“ESX搭建網絡測試環境(http://waringid.blog.51cto.com/65148/385767)”等這些內容來了解虛擬機的相關內容。想要體驗虛擬機除了要求CPU要支持以及硬件存儲需識別外還要對網卡有要求,正常情況下是無法加載Realtek系列的板載網卡的(有關ESX的兼容列表可以參考http://www.vmware.com/resources/compatibility/search.php?deviceCategory=io)。從列表中可以清楚知道哪些網卡可以驅動哪些是不受支持的,如下圖所示。
但既然ESX的內核用的是linux,那麼理論上是完全可以定製驅動程序的,只要方法正確應該就沒問題(Linux下GA-945GZM-S2網卡驅動安裝http://waringid.blog.51cto.com/65148/52013)。試過後才發現和linux下加載驅動的方式還真有點不同,以下是詳細方法。需說明的是此次測試的主板是GA-EP45-DS5。
上傳驅動文件
先通過遠程SSH或是ESX主機查看主板上所需驅動的網卡芯片類型。
-
lspci -n
可以從此看出板載網卡的ID是10ec:8168(最後一條),可以通過相關的網站來查詢ID號(http://www.pcidatabase.com/search.php?vendor_search_str=10ec&vendor_search.x=0&vendor_search.y=0)如下圖所示。
找到正確的驅動後可以直接去牛人很多的國外網站上下載(http://www.vm-help.com/forum/viewforum.php?f=11&sid=a2328391dae10f2ecb94a7f2fde62685)。然後將下載下來的文件(如本例中的oem-r8169-esx4.1.tgz文件)上傳至ESX主機。上傳的方式可通過瀏覽存儲或軟件上傳的方式傳送,如下圖所示。
或是用以下的方式上傳。如下圖所示。
加載驅動
將上傳的文件解壓並copy至適當位置,請參考以下指令。
-
tar zxvf oem-r8169-esx4.1.tgz
-
cp ./usr/lib/vmware/vmkmod/r8169.o /usr/lib/vmware/vmkmod/
-
ls -l /usr/lib/vmware/vmkmod/r8169.o
-
file /usr/lib/vmware/vmkmod/r8169.o
修改pci.xml文件
和正常的linux不同的是,ESX使用的是XML配置文件的方式來加載驅動,這個和ESXI的方式也不同。先用vi指令修改pci.xml文件,以8169關鍵字查找系統屏蔽的板載網卡,刪除相關內容。如下圖所示。
-
vi /etc/vmware/pci.xml
增加新驅動配置文件
編輯並保存好上面的pci.xml文件後,再建立和新驅動對應的配置文件.如下圖所示.
-
touch /etc/vmware/pciid/r81xx.xml
-
vi /etc/vmware/pciid/r81xx.xml
文件內容如下:
-
<?xml version='1.0' encoding='iso-8859-1'?>
-
<pcitable>
-
<vendor id="10ec">
-
<short>Realtek Semiconductor Co., Ltd.</short>
-
<name>Realtek Semiconductor Co., Ltd.</name>
-
<device id="8168">
-
<vmware label="nic">
-
<driver>r8168</driver>
-
</vmware>
-
<name>RTL8111/8168B PCI Express Gigabit Ethernet controller</name>
-
<table file="pcitable" module="ignore" />
-
<table file="pcitable.Linux" module="r8168">
-
<desc>Realtek|RTL8111/8168B PCI Express Gigabit Ethernet controller</desc>
-
</table>
-
</device>
-
<device id="8169">
-
<vmware label="nic">
-
<driver>r8169</driver>
-
</vmware>
-
<name>RTL-8169</name>
-
<table file="pcitable" module="ignore" />
-
<table file="pcitable.Linux" module="r8169">
-
<desc>Realtek|RTL-8169</desc>
-
</table>
-
</device>
-
</vendor>
-
</pcitable>
加載新驅動文件
-
vmkload_mod /usr/lib/vmware/vmkmod/r8169.o debug=5
-
vmkload_mod -l |grep r8
更新驅動及開機時啓用新驅動
-
esxcfg-pciid
-
esxcfg-module -e r8169
執行上述指令後,系統會自動更新simple.map文件,下圖驗證更新後的文件內容是否正確。
建立mf文件
-
touch /etc/vmware/init/manifests/vmware-r8196.mf
重啓ESX主機