VGA GPU passthrough 虛擬桌面pci穿透--Ubuntu與centos的內核升級步驟

轉載註明:http://blog.csdn.net/hubbybob1/article/details/73920296
在做虛擬化桌面的過程中使用spice很難做到3d效果並且usb打印機穿透過去的在安裝驅動的時候安裝不起來,因此usb打印機無法使用,因此採用的穿透的方法,就是把GPU和usb controller穿透到虛擬機內部使用。對於GPU的穿透有兩種方法VFIO PCI和KVMGT,本文先針對VFIO PCI做內核升級,然後再去研究KVMGT的方式。

1.確認主機是否支持GPU穿透,cpu一定要支持VT-d(VT-x,VT-c可以去查),否則只能穿透usb而GPU無法使用。
2.Linux的內核支持無論是ubuntu還是centos7都要在內核4.8以上,本人使用的是4.11.1和4.11.5(centos下的),那麼分別來介紹一下內核的升級。

一.顯示ubuntu,如果是最新版本的ubuntu 16.04 就可以不必升級到4.11.1因爲本事4.8就支持vfio的。
1.查看vfio的支持情況

uname -a //查看內核版本
ls /dev/vfio/  //查看內核時候含有vfio模塊

這個命令就可查看在dev下是否已經含有設備驅動vfio,若果是ubuntu16.04那就會含有。
2.下載linux4.11.1並升級內核
方法一:

sudo apt-get update //這一步更新包列表
sudo apt-get dist-upgrade //這一步安裝所有可用更新,包括新內核

方法二:推薦
在ubuntu的內核網站上下載 http://kernel.ubuntu.com/~kernel-ppa/mainline/ ,這個網站含有所有版本的內核,最新的爲4.12.7,但我們下載4.11.1就好。

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.1/linux-headers-4.11.1-041101_4.11.1-041101.201705140931_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.1/linux-headers-4.11.1-041101-generic_4.11.1-041101.201705140931_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.1/linux-image-4.11.1-041101-generic_4.11.1-041101.201705140931_amd64.deb
下載好後安裝:
dpkg -i linux-headers-4.11.1-041101_4.11.1-041101.201705140931_all.deb
dpkg -i linux-headers-4.11.1-041101-generic_4.11.1-041101.201705140931_amd64.deb
dpkg -i linux-image-4.11.1-041101-generic_4.11.1-041101.201705140931_amd64.deb

安裝好後就會在/boot下看到很多相關的內核config文件
查看當前主機所有內核版本

dpkg --get-selections | grep linux //查看當前主機所有內核版本
apt purge linux-headers-4.11.3-041103 linux-headers-4.11.3-041103-generic linux-image-4.11.3-041103-generic//刪除某個內核
apt-get install libssl-dev libncurses5-dev //安裝編譯內核的相關工具

下載內核源碼:https://www.kernel.org/pub/linux/kernel/v4.x/ 在這個網站可只找到所有版本的源碼下載
下載下來的源碼是linux-4.11.1.tar.gz 或者linux-4.11.1.tar.xz 然後解壓到/usr/src/

wget http://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.11.1.tar.xz
tar -Jxvf linux-4.11.1.tar.xz -C /usr/src/   //.xz
cd /usr/src/linux-4.11.1/ //進到源碼下
cp /boot/config-4.11.1-041101-generic .config //把加載好的內核配置考到4.11.1源碼下

編譯內核源碼:

make menuconfig

在device driver內找到vfio的相關選項,並選上

Devices Drivers -->  VFIO Non-Privileged userspace driver framework   -->
		 <M>   VFIO support for PCI devices 
		 [*]     VFIO PCI support for VGA devices  

編譯安裝:

make -j8
make modules_install
make install

安裝完畢後重啓,到此ubuntu的內核升級就完畢了
二、centos 7的內核升級
由於centos 7是3.x版本的內核,所以必須得升級才能使用
1.加載源:http://www.linuxidc.com/Linux/2015-02/112697.htm

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org //導入key
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm//安裝elrepo的yun源
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available //列出可用的最新的內核相關包
yum --enablerepo=elrepo-kernel install kernel-ml //安裝最新的穩定內核 在/boot下會看到目前的4.11.5

如果報錯:

另一個應用程序是:PackageKit
內存:33 M RSS(1.3 GB VSZ)
已啓動:XXXXXXXXXXXXX
狀態:睡眠中 ,進程ID:13901

只需要把它殺死:

kill -9 13901

如果找不到源:可以清除所有源,然後重新導入阿里源(就是上面)就可以了

yum clean all 

然後下載linux4.11.5的源碼並解壓放到/usr/src/下面,從/boot/下拷貝config文件並編譯安裝源碼,其過程與ubuntu下的一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章