为CentOS8编译5.4.8内核以及设定默认启动时的首选内核+GPU Passthrough

2023-05-16

   因为配置了一台新电脑,用来做kvm服务器,本想着通过GPU Passthrough,利用上 GTX1060(6G)显卡来用于虚拟机的显卡,但是我的显卡是和CPU在一个总线上,分为了1个组,无法完成。 各种搜教程,看到高版本的内核可以支持直接映射,但是是4.7以上的kernel才行,所以为 centos8编译了最新的稳定版内核。

1.最新版内核的下载、编译

如何编译内核,有比较多的教程,这里推荐看下面链接的

https://www.makeuseof.com/tag/compile-linux-kernel/ 

值得一提的是,使用 # make menuconfig 后,建议选择到 load,将从 /boot 下复制出来,重命名为“.config”的配置文件进行加载,再进行适当修改。 我这里因为要用到NTFS格式的硬盘分区,所以就将这个功能编译进了内核。 可以参考下列文章

https://www.linuxidc.com/Linux/2017-11/148276.htm

 

load .config file

                  建议使用键盘上的 TAB 按键,先选择Load选项,加载 .config文件

需要编译一个仅用于当前系统配置情况的,比较精简的内核的,可以使用命令: # make localmodconfig  

这将创建一个名为.config的文件,该文件告诉GCC从内核源代码进行编译的内容。 make localmodconfig命令检测当前正在运行的内核组件,并将其标记为要编译。 

2.可能出现的问题

2.1.在配置好 “.config”文件, 开始使用命令: # make -j 8   (根据你的CPU的核心数量更改一下数字)后,可能出现如下原因引起的错误:

make[1]: *** No rule to make target 'certs/rhel.pem', needed by 'certs/x509_certificate_list'.  Stop.

则直接用命令: # vi .config      对.config这个配置文件进行修改,利用vi编辑工具的查找功能,找到 certs/rhel.pem 字符, 将这一行和下面的两行前面都加上 “#”,将这共计3行给注释掉,再进行编译。

我的机器是8核的,感觉只用了不到10分钟就编译完了。

2.2.还有可能因为需要提供 X.509 key之类的停止。  这个比较简单,只需要按键盘上的 “ENTER”键,让编译程序继续下去就可以了。

 

3.查看默认的启动内核和调整其顺序

参看下列链接的文章

https://www.golinuxcloud.com/boot-with-old-kernel-version-rhel-8-grubby/

总结起来就是:

3.1 查看目前系统内所有的可启动内核及其版本号:

# ls -l /boot/vmlinuz-*

显示效果如下:

我这里编译了两个,分别是5.4.8和4.9.208 两个版本的。 感觉5.4.8的更快

3.2 查看当前所使用了内核版本:

# uname -a

查看更详细的内容,

# grubby --info=/boot/vmlinuz-5.4.8-0108_X64

3.3 查看当前使用的内核在启动列表中所排的顺序(也可能出现在启动时,手动选择了旧的内核,则显示的数字不同)

# grubby --default-index

显示数字0,说明当前的内核 5.4.8-0108_X64是首选启动内核, 如果显示是1,2,3之类的数字,则说明你手动选择了非默认内核,并且你的系统中的内核数量较多

3.4 将某个内核设定为首选启动内核,例如我们选择centos8系统原来的 vmlinuz-4.18.0-80.11.2.el8_0.x86_64成为默认首选启动内核

# grubby --set-default=/boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64

然后重新启动,则就会自动加载4.18.0-80.11.2.el8_0.x86_64了。

 

4. 新内核下GPU透传

更换了内核,目前还没有将GPU透传设定成功。 可能最主要的原因,是 GPU直接挂栽在CPU的PCIE总线上,这样的好处是游戏性能更好吧。

4.1贴一下我的硬件的图和 IOMMU 组的图

 4.2 与GPU透传相关的,比较有价值的文章的连接合集

https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF

https://pve.proxmox.com/wiki/Pci_passthrough

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/chap-guest_virtual_machine_device_configuration

下面这2篇,讲了如何打补丁 ACS patch,可惜我不会。有会的大神,希望能实验一下,放个中文版的教程

https://forums.linuxmint.com/viewtopic.php?f=231&t=212692&start=200#p1270255

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为CentOS8编译5.4.8内核以及设定默认启动时的首选内核+GPU Passthrough 的相关文章

  • failed to run command ‘java’: No such file or directory

    failed to run command java No such file or directory 程序里远程执行shell命令 xff08 nohup java jar xff09 的执行 xff0c 后台日志报错如下 xff1a
  • vue3中的setup函数

    原文 xff1a vue3中的setup函数 落雪小轩韩的博客 CSDN博客 vue3setup 一 概念 xff1a setup是vue3中的一个新的配置项 xff0c 值为一个函数 xff0c 我们在组件中用到的数据 方法等等 xff0
  • vue同步请求

    原文地址 xff1a vue 同步请求 Aa duidui的博客 CSDN博客 vue同步请求 同步请求执行的顺序 async await 挂上的才是同步 没挂上的还是异步 async 方法名 await 请求方法 参数 then res
  • Anaconda上设置虚拟环境,并在jupyter notebook中切换。

    个人记录 xff0c 但欢迎阅读和赐教 我之前在Anaconda Navigator中建立虚拟环境 xff0c 然后在jupyter notebook的terminal中增加对应环境的ipykernel xff0c 这样可行 xff0c 但
  • 字符,字节和编码

    级别 xff1a 初级 摘要 xff1a 本文介绍了字符与编码的发展过程 xff0c 相关概念的正确理解 举例说明了一些实际应用中 xff0c 编码的实现方法 然后 xff0c 本文讲述了通常对字符与编码的几种误解 xff0c 由于这些误解
  • http协议原理

    HTTP工作原理 HTTP协议定义Web客户端如何从Web服务器请求Web页面 xff0c 以及服务器如何把Web页面传送给客户端 HTTP协议采用了请求 响应模型 客户端向服务器发送一个请求报文 xff0c 请求报文包含请求的方法 URL
  • TLS协议/SSL协议

    历史背景 SSL Secure Socket Layer 安全套接层 是基于HTTPS下的一个协议加密层 xff0c 最初是由网景公司 xff08 Netscape xff09 研发 xff0c 后被IETF xff08 The Inter
  • TCP协议

    TCP 基础 https www jianshu com p ef892323e68f TCP 使用固定的连接 TCP 用于应用程序之间的通信 当应用程序希望通过 TCP 与另一个应用程序通信时 xff0c 它会发送一个通信请求 这个请求必
  • UDP协议

    UDP 概述 xff08 User Datagram Protocol xff0c 用户数据报协议 xff09 用户数据报协议 UDP 只在 IP 的数据报服务之上增加了很少一点的功能 xff0c 这就是复用和分用的功能以及查错检测的功能
  • TCP和UDP的区别

    TCP协议与UDP协议的区别 首先咱们弄清楚 xff0c TCP协议和UDP协议与TCP IP协议的联系 xff0c 很多人犯糊涂了 xff0c 一直都是说TCP协议与UDP协议的区别 xff0c 我觉得这是没有从本质上弄清楚网络通信 xf
  • 网络协议概述

    互联网协议介绍 互联网的核心是一系列协议 xff0c 总称为 互联网协议 xff08 Internet Protocol Suite xff09 xff0c 正是这一些协议规定了电脑如何连接和组网 我们理解了这些协议 xff0c 就理解了互
  • go 编写tcp和udp服务端和客户端

    TCP协议 TCP IP Transmission Control Protocol Internet Protocol 即传输控制协议 网间协议 xff0c 是一种面向连接 xff08 连接导向 xff09 的 可靠的 基于字节流的传输层
  • tcp黏包问题

    服务端代码如下 xff1a span class token keyword package span main span class token keyword import span span class token punctuati
  • go sync.Pool 深入

    new函数的调用时机和pool的内存释放规则 以下代码调用了四次Get函数 xff0c 但是并不是每次都会new 第一次 xff0c 是a 61 pool Get byte xff0c 首次Get xff0c 在pool的private私有
  • 【AI理论学习】深入理解扩散模型:Diffusion Models(DDPM)(理论篇)

    深入理解扩散模型 xff1a Diffusion Models 引言扩散模型的原理扩散过程反向过程优化目标 模型设计代码实现Stable Diffusion DALL E Imagen背后共同的套路Stable DiffusionDALL
  • gin 框架原理

    Gin的路由原理 Gin的路由基于Trie树和压缩字典树算法 xff0c 什么是Trie树 xff1f 其实很好理解 xff0c 看下图 xff1a 单词at xff0c bee xff0c ben xff0c bt xff0c q组成的T
  • PowerDesigner导入sql脚本

    1 依次点击File gt Reverse Engineer gt Database 2 弹出弹窗对模型进行命名 xff0c 同时在DBMS下拉选择框中需要选择自己对应的数据库类型 xff0c 点击确定 新的弹窗 xff0c 选中Using
  • Gin路由算法模拟

    概述 Gin的路由算法是采用压缩字典树实现的 xff0c 基数树 xff08 Radix Tree xff09 又称为PAT位树 xff08 Patricia Trie or crit bit tree xff09 xff0c 是一种更节省
  • 使用gomail发送邮件

    概述 为了实现一个邮件验证码功能 xff0c 特意了解了一下go如何发送邮件 本来以为会很麻烦 xff0c 没想到其实很简单 工具类 实现的工具类如下 xff1a span class token keyword package span
  • redis实现消息队列的几种方式及其优劣

    概述 常用的消息队列有 xff0c rabbitMq kafka RocketMq ActiveMq等 这些消息队列需要独立安装部署 xff0c 作为一个中间件来提供服务 xff0c 虽然有着高性能 高可靠的优点 xff0c 但是额外部署这

随机推荐