您的位置:首页 > 运维架构 > Linux

VGA GPU passthrough 虚拟桌面pci穿透--Ubuntu与centos的内核升级步骤

2017-06-29 19:56 791 查看
转载注明: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/

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下的一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: