Ubuntu下UEFI安全启动安装Nvdia驱动

简介

众所周知,Ubuntu默认使用Nouveau开源驱动,其性能受限,因此我们需要安装Nvidia专用驱动。

安装专用驱动的一般方法非常简单,只需要sudo ubuntu-drivers devices && sudo ubuntu-drivers autoinstall即可,但该方法安装的驱动需要手动进行内核签名,否则其将无法与安全启动共存。因此,更推荐采取在Nvidia官网下载.run并执行安装的方式。

本博客结合其他优质博客,取其精华去其糟粕,结合本人在安装时遇到的实际问题,详细整理执行.run的安装方式,并发表此文。

博主系统环境如下:

  • KDE Neon 6.3
  • Geforce RTX 4060(Laptop)

安装必要环境

  1. 首先更新软件源:sudo apt update
  2. 安装必要编译环境:sudo apt install build-essential -y

卸载先前安装的驱动

  1. 首先,请确认先前是否安装了Nvidia驱动。使用dpkg -l | grep nvidia命令查看。
  2. 若先前以apt安装了驱动,使用sudo apt-get purge nvidia-*进行卸载;若先前以.run安装的驱动,使用sudo /usr/bin/nvidia-uninstall卸载。

下载驱动安装脚本

  1. 打开Nvidia驱动官网,查找并下载自己显卡的驱动。若不知道自己的显卡型号,执行lspci | grep -i vga进行查看。
  2. 耐心等待下载,由于服务器位于国外,下载速度较慢,请确保您有良好的国际互联网连接,相关资料请自行搜索,博主无法提供解决方案。
  3. 下载后,得到一个.run结尾的文件。

禁用开源驱动

  1. 执行echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf以永久禁用开源驱动。
  2. 执行sudo update-initramfs -u使命令生效。

安装动态内核模块支持(DKMS)

  1. 由于.run安装的驱动依赖于内核,当内核更新后,需重新执行.run的安装。因此,我们使用DKMS管理驱动,它会在内核更新后自动重新编译 NVIDIA 驱动模块。
  2. 安装DKMS:sudo apt install dkms -y

进入tty模式并安装

  1. 由于在GUI 环境下安装可能会失败,所以需要切换到纯文本模式进行安装。
  2. 使用sudo systemctl set-default multi-user.target && sudo reboot now重启计算机,重启后,使用系统账户的账号密码登录。
  3. 进入先前下载驱动的目录,此处以~/Download为例:cd ~/Download
  4. 为安装脚本添加可执行权限:sudo chmod a+x ./NVIDIA-Linux-x86_xxx.run。其中xxx请替换为实际驱动版本号。
  5. 执行安装脚本:sudo ./NVIDIA-Linux-x86_xxx.run --dkms,使用选项--dkms以启用DKMS模块进行安装。

生成签名密钥

  1. 一路继续安装,执行脚本会编译内核模块等。
  2. 当执行到询问是否需要签名页面时,选择“Sign the kernel module”。
  3. 签名密钥生成成功后,会展示.der扩展名的文件路径。

导入签名密钥

  1. 进入Nvidia目录:cd /usr/share/nvidia
  2. 使用.der文件进行签名:sudo mokutil --import nvidia-modsign-crt-xxx.der,其中xxx请替换为实际文件名。
  3. 会提示创建密码,输入后确认即可。
  4. 启用GUI模式并重启系统:sudo systemctl set-default graphical.target && sudo reboot now

对密钥签名

  1. 重启后,进入蓝屏的mok management页面。选择“Enroll mok”。
  2. 可见key 0以导入,之后对其签名,选择“Continue”,之后选择“yes”
  3. 输入导入签名密钥时设置的密码,之后选择“Reboot”。

验证

  1. 重启后,安装与签名过程已结束。使用nvidia-smi命令验证是否安装成功。

参考资料

本文参考博客:UEFI安全启动模式下安装ubuntu的nvidia显卡驱动。
本文添加了查看显卡型号,卸载先前驱动,在tty模式下安装,以及DKMS模块内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05_循环结构三目运算符

目录 一、双重for循环 练习 二、break关键字 三、continue 关键字 练习 四、三元运算 / 三目运算 一、双重for循环 外层循环 循环一次,,,内层循环 循环一圈!!! 循环里嵌套循环: for(var…

数据结构初阶-二叉树链式

目录 1.概念与结构 2.二叉数链式的实现 2.1遍历规则 2.2申请内存空间 2.3手动构建一棵二叉树 2.4二叉树结点的个数 2.5二叉树叶子结点的个数 2.6二叉树第K层结点个数 2.7二叉树的高度 2.8二叉树中查找值为x的结点 2.9二叉树的销毁 3.层序遍历 3.1概念 3.2层序遍历…

鸿蒙HarmonyOS NEXT之无感监听

鸿蒙中存在一些无感监听,这些监听经过系统API封装使用很简单,但是对实际业务开发中有很重要,例如埋点业务、数据统计、行为上报、切面拦截等。 Navigation的页面切换 在鸿蒙中Navigation被用来作为路由栈进行页面跳转,如果你想知…

批量处理word里面表格的空白行

1,随便打开一个word文档。 2,按下Alt F11 VBA编辑器,在左侧的「工程资源管理器」窗口中找到Normal 项目,右键选择插入->模块。 弹出一下弹窗 3,输入一下代码 代码: Sub RemoveEmptyTableRows()Dim tbl As TableDim row As R…

3ds Max 2026 新功能全面解析

一、视口性能与交互体验升级 1. Hydra 2.0 视口渲染引擎 3ds Max 2026 引入了 Hydra 2.0,大幅优化了视口渲染性能,尤其是在处理复杂场景和高质量实时预览时,流畅度提升显著。 支持USD(通用场景描述)格式&#xff0c…

JVM垃圾回收笔记02-垃圾回收器

文章目录 前言1.串行(Serial 收集器/Serial Old 收集器)Serial 收集器Serial Old 收集器相关参数-XX:UseSerialGC 2.吞吐量优先(Parallel Scavenge 收集器/Parallel Old 收集器)Parallel Scavenge 收集器Parallel Old 收集器相关参数-XX:UseParallelGC ~ -XX:UseParallelOldGC-…

图解AUTOSAR_SWS_UDPNetworkManagement

AUTOSAR UDP 网络管理 (UdpNm) 技术详解 基于 AUTOSAR 规范的 UDP 网络管理模块可视化指南 目录 AUTOSAR UDP 网络管理 (UdpNm) 技术详解 目录1. 概述2. UdpNm 状态机 2.1 状态机概述2.2 主要状态说明2.3 状态转换机制2.4 并行状态3. UdpNm 架构设计 3.1 架构概述3.2 接口设计3…

android 图形开发的技能学习路线

需要以下几个方面的知识: OpenGL ES的基础和高级应用图形渲染管线的工作原理3D数学(矩阵、向量、四元数)着色器编程(GLSL)libGDX框架的使用和定制性能优化和内存管理跨平台渲染技术 接下来,考虑如何结构化…

使用AI一步一步实现若依(26)

功能26:新增一个新员工培训页面 功能25:角色管理 功能24:菜单管理 功能23:从后端获取路由/菜单数据 功能22:用户管理 功能21:使用axios发送请求 功能20:使用分页插件 功能19:集成My…

vue响应式原理剖析

一、什么是响应式? 我们先来看一下响应式意味着什么?我们来看一段代码: m有一个初始化的值,有一段代码使用了这个值; 那么在m有一个新的值时,这段代码可以自动重新执行; let m = 20 console.log(m) console.log(m * 2)m = 40上面的这样一种可以自动响应数据变量的代码机…

无人机航电系统电池技术解析!

1. 常用电池类型 锂聚合物电池(LiPo) 特点:高能量密度、轻量化、放电效率高,是目前主流选择。 缺点:对过充/过放敏感,需严格管理,存在轻微膨胀或起火风险。 锂离子电池(Li-ion…

ubuntu下终端打不开的排查思路和解决方法

问题现象描述:ubuntu开机后系统桌面显示正常,其他图形化的app也都能打开无异常,唯独只有terminal终端打不开,无论是鼠标点击终端软件,还是ctrlaltt,还是altF2后输入gnome-terminal后按回车,这三…

Maven入门

1、简介 Apache Maven是一个项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 2、作用 1)依赖导…

Rk3588,Opencv读取Gmsl相机,Rga yuv422转换rgb (降低CPU使用率)

RK3588, 使用OpenCv 读取 gmsl 相机,获得yuv422格式图像, 使用 rga 转换 rgb 图像。减少cpu占用率. 查看相机信息 v4l2-ctl --all -d /dev/cam0 , 查看自己相机分辨率,输出格式等信息,对应修改后续代码测试… Driver Info:Driver name : rkcifCard type : rkc…

鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)

引言:为什么我要写这份开发指南? 作为一名老技术,最近特别喜欢研究鸿蒙相机功能,而且目前已经更新到API15了,那么咱们更要好好研究一下。而且从手持云台到车载记录仪,每个项目都面临独特挑战:车…

【NLP 49、提示工程 prompt engineering】

目录 一、基本介绍 语言模型生成文本的基本特点 提示工程 prompt engineering 提示工程的优势 使用注意事项 ① 安全问题 ② 可信度问题 ③ 时效性与专业性 二、应用场景 能 ≠ 适合 应用场景 —— 百科知识 应用场景 —— 写文案 应用场景 —— 解释 / 编写…

数字转换(c++)

【题目描述】 如果一个数 xx 的约数和 yy (不包括他本身)比他本身小,那么 xx 可以变成 yy ,yy 也可以变成 xx 。例如 44 可以变为 33 ,11 可以变为 77 。限定所有数字变换在不超过 nn 的正整数范围内进行,…

如何同步fork的更新

当你fork了一个代码仓库后,要将其与原始源码保持同步,可以按照以下步骤进行操作: 1. 添加原始仓库作为远程源 在本地命令行中,进入到你fork后的代码仓库目录,然后使用以下命令添加原始仓库(通常称为upstr…

CentOS系统下安装tesseract-ocr5.x版本

CentOS系统下安装tesseract-ocr5.x版本 安装依赖包: yum update -y yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel yum install automake libtool bzip2 -y手动编译安装GCC(因系统默认安装的GCC版本比较…

MyBatis打印SQL日志的配置

配置MyBatis打印日志的步骤如下&#xff0c;支持多种日志框架&#xff08;如Logback、Log4j2等&#xff09;&#xff1a; 一、选择日志框架并添加依赖&#xff08;以常见组合为例&#xff09; 1. Logback&#xff08;推荐&#xff09; <!-- Maven 依赖 --> <depende…