Debian 12 + NVIDIA驱动:给人工智能爱好者的安装指南

news2024/11/16 1:24:05

Debian 12是最新发布的Debian GNU/Linux发行版,代号为Bookworm。人工智能程序通常需要大量的计算资源,尤其是GPU,来加速训练和推理过程。为了让Debian 12系统能够正常渲染桌面,并充分利用Nvidia GPU的性能,我们需要安装合适的显卡驱动。
本文介绍如何安装Debian 12系统和Nvidia显卡驱动,以打造一个高效的人工智能运行环境。我们将从以下方面进行介绍:

  • 安装简介:介绍系统的重要更新和安装注意事项。
  • 磁盘分区:合理地划分磁盘空间,以满足人工智能程序的需要。
  • 初始配置:做一些简单的配置,方便后续使用。
  • 显卡驱动安装:下载和安装Nvidia官网提供的最新版本的显卡驱动,以支持GPU和CUDA工具。
  • 多余程序卸载:清理掉一些不必要或者不常用的自带程序,以节省磁盘空间和注意力。
  • 软件生态补充:虚拟机安装macOS,以运行Debian缺少的软件,比如微信小程序开发工具和微信。

安装简介

Debian 12这次发行包含了许多软件的更新,比较重要的是Linux 内核映像使用了6.1版本,GNOME桌面使用了43版本。

Linux内核6.1带来了一些新的特性和改进,例如:

  • 支持Rust语言编写内核代码,提高内核的安全性和可靠性。
  • 引入MG-LRU算法,优化内存回收和提高系统性能。
  • 改进Btrfs文件系统的性能。

GNOME 43也提供了一系列的新特性和改进,提高了GNOME桌面环境的易用性和美观性,例如比以前更方便地进行截图和录屏。

从Debian官网下载最新稳定版镜像,如当前是debian-12.0.0-amd64-DVD-1.iso。安装过程中几个需要注意的地方:

  1. 设置用户和密码:root密码置空。这样可以禁用root账户,并且用户账户可以使用sudo。
    设置用户和密码

  2. 对磁盘进行分区:手动。这样可以灵活决定每个分区的大小和位置。Debian图形安装程序很方便,输入分区大小可以带单位,如100 MB,不需要手动计算字节数。
    对磁盘进行分区

  3. 配置软件包管理器:使用网络镜像站点。如果安装过程中有接网络,选择中国的镜像站点可以加快软件包下载速度。

磁盘分区

磁盘分区是在安装系统时需要进行的一个重要步骤。这里介绍一种比较常见的手动分区方案,适用于拥有两块硬盘(一块固态硬盘和一块机械硬盘)的台式机。我们将把固态硬盘用于存放操作系统和程序文件,以提高启动和运行速度;我们将把机械硬盘用于存放用户文件,以节省成本和扩展容量。分区方案如下:

  • EFI系统分区:100 MB,固态硬盘。这个分区用于存放启动引导程序。
  • 交换空间:5 GB,固态硬盘。这个分区用于在内存不足时,把一部分内存数据暂存到磁盘上,以避免系统崩溃。因为平时基本用不上交换空间,而且现在内存也不贵,我的内存是32G,如果分配这么大的交换空间,有点浪费,所以选择分配较小的交换空间。
  • /:固态硬盘。这个分区是根目录。固态硬盘的剩余空间都分配给它。
  • /var:50 GB,机械硬盘。这个分区用于存放一些经常变化的数据,如日志文件、缓存文件、临时文件等。
  • /home:机械硬盘。这个分区用于存放用户文件,如文档、图片、视频等。机械硬盘的剩余空间都分配给它。人工智能的数据集和模型可以放在用户目录下,所以该分区尽可能大,我这边分配给它接近2T。

初始配置

1. 中文目录改英文

如果关闭图形界面,中文显示会乱码,所以最好用英文,也能避免某些软件不支持中文路径的问题。

export LANG=en_US
xdg-user-dirs-gtk-update
export LANG=zh_CN.UTF-8

2. apt配置

打开“Software & Update”,选中main,下载自中国的服务器,去掉cdrom,并重新载入。
该操作等效于将以下内容写入/etc/apt/sources.list:

# deb cdrom:[Debian GNU/Linux 12.0.0 _Bookworm_ - Official amd64 DVD Binary-1 with firmware 20230610-10:23]/ bookworm main non-free-firmware
deb http://ftp.cn.debian.org/debian/ bookworm main

并且完成了以下命令:

sudo apt update

3. 安装vim编辑器

sudo apt install vim

显卡驱动安装

Debian 12自带的显卡驱动是Nouveau,容易出问题,比如我安装完进入系统后屏幕不断闪烁。为了桌面能正常工作,也为了运行深度学习程序,我们需要安装Nvidia官方的显卡驱动。

1. 下载驱动程序

打开浏览器,访问Nvidia官网下载页面。在页面上,选择以下选项:

  • 产品类型: GeForce
  • 产品系列: GeForce RTX 30 Series(根据实际显卡型号选择)
  • 产品家族: GeForce RTX 3060(根据实际显卡型号选择)
  • 操作系统: Linux 64-bit
  • 下载类型: 生产分支生
  • 语言:Chinese (Simplified)
    然后点击搜索按钮,就会显示出可用的驱动程序。点击下载按钮,就会开始下载一个以.run结尾的文件(例如,NVIDIA-Linux-x86_64-530.41.03.run)。

2. 安装依赖包和内核头文件

在安装驱动之前,我们需要安装一些依赖包和内核头文件,以便驱动能够正确编译和加载。输入以下命令:

sudo apt install gcc make linux-headers-$(uname -r)

为了防止以后内核版本升级导致显卡驱动运行异常,我们需要禁止内核更新。参考以下命令:

dpkg --get-selections | grep linux

sudo apt-mark hold linux-image-6.1.0-9-amd64 linux-headers-6.1.0-9-amd64 linux-headers-6.1.0-9-common

3. 运行驱动程序

我们需要切换到下载驱动程序的目录(例如,~/Downloads),并给驱动程序赋予可执行权限。参考以下命令:

cd ~/Downloads
chmod u+x NVIDIA-Linux-x86_64-530.41.03.run

然后,我们就可以运行驱动程序了。参考以下命令:

sudo ./NVIDIA-Linux-x86_64-530.41.03.run

这会启动一个交互式的安装向导,让我们选择一些选项。安装过程中,可能会出现一些警告或错误信息,我们可以忽略警告,或者按照提示处理错误。

4. 处理错误信息

如果错误信息提示我们停止gdm3,就运行以下命令(否则跳过这一步):

sudo /etc/init.d/gdm3 stop

停止gdm3后,会关闭图形界面,进入一个黑屏的命令行模式,重新运行驱动程序。

如果错误信息提示我们驱动与Nouveau冲突,就需要禁用Nouveau(否则跳过这一步)。驱动会帮我们生成/etc/modprobe.d/nvidia-installer-disable-nouveau.conf文件,确认文件已经写入后,我们只需运行以下命令:

sudo update-initramfs -u

sudo reboot

重启后重新运行驱动程序。

5. 验证驱动

我们可以使用以下命令来验证驱动是否正常工作:

nvidia-smi

我们可以从输出的信息中看到驱动版本号、最高支持的CUDA版本号、显存占用、GPU温度等信息。

多余程序卸载

在安装完Debian 12系统后,我们可能会发现系统中自带了一些不必要的程序,如游戏。卸载自带程序有两种方法,一种是使用图形界面的软件管理器,另一种是使用命令行的apt工具。

打开“软件”,我们可以卸载的有:

  • 2048
  • 对对碰
  • 俄罗斯方块
  • 国际象棋
  • 黑白棋
  • 华容道
  • 机器人
  • 连珠消球
  • 扫雷
  • 数独
  • 数壹
  • 四邻
  • 四子连线
  • 推盘
  • 消色块
  • 掷骰子
  • AisleRiot 接龙游戏
  • GNOME 贪食蛇

如果不喜欢用firefox浏览器,可以卸载掉它。建议安装好需要的浏览器后再来卸载。

sudo apt purge firefox-esr

卸载完成后,可以使用以下命令来清理一些不再需要的依赖包和配置文件:

sudo apt-get --purge autoremove

软件生态补充

我们日常使用的软件和开发工具,基本Debian都有,比如百度网盘、有道云笔记、QQ等。但难免个别软件没有提供Linux版,比如微信小程序开发工具,这时我们可以利用虚拟机来运行,推荐安装macOS。
macOS

总结

人工智能之路,漫漫无垠,只有不断前行,才能见到风景。安装系统是我们探索人工智能的第一步,但绝不是最后一步。在接下来的文章中,我将和你分享更多关于人工智能的知识和经验。敬请期待!
Debian 12
文件系统
资源


如果你喜欢我的文章,欢迎扫码关注我的公众号,获取更多技术干货,遇到问题也可以来交流哦!

技术长跑

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

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

相关文章

【Dubbo】Dubbo源码环境与开发环境搭建

📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…

数据库信息速递 为何你的公司应从以数据驱动为核心向以决策驱动为核心的转变 --所谓AI项目是垃圾堆 (译)...

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

结构体内存对齐与联合体

目录 前言 结构体大小的计算 修改默认对齐数 前言 当我们了解结构体的声明,结构体的自引用,结构体变量的定义和初始化,如何计算结构体的大小呢?结构体类型的数据是在内存中如何存放的呢?这也是本文需要讨论的问题;…

CVPR 2023 | 图像超分,结合扩散模型/GAN/部署优化,low-level任务,视觉AIGC系列

1、Activating More Pixels in Image Super-Resolution Transformer 基于Transformer的方法在低级别视觉任务中,如图像超分辨率,表现出了令人印象深刻的性能。Transformer的潜力在现有网络中仍未得到充分发挥。为了激活更多的输入像素以实现更好的重建&a…

Ansible配置和模块

Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需…

Python自动化测试基础必备知识点总结

一、自动化测试的概念 性能系统负载能力稳定性过载操作下的系统瓶颈自动化测试,使用程序代替人工,可以提高测试效率性,自动化测试能自动化使用代码模拟大量用户,让用户请求多页和多用户并发请求收集参数,并对系统负载…

使用UnityXR配置PICO开发环境

效果展示: 一、说明 本文环境搭建测试基于Unity2021.3.26版本进行的,插件版本为当前官方最新版本PICO_SDK_v2.1.5,根据官方的描述,PICO Unity Integration SDK v2.x.x 系列是长期维护版本,支持 PICO Neo3 和 PICO 4 全…

VFP提取源码中各项信息,快速转换语言,时间比钱值钱

您辛苦了很长时间,编写了一套很不错的管理软件,行业使用很不错,代码行10万,有一天一位外国客户找到您,说想购买使用您的软件,但显示语言需要是英语的,三五天内就要使用,你怎么办&a…

Windows 禁止 IE 自动跳转 Edge「整合方案」

前言 IE 已经合并进 Edge 浏览器,IE「正式入土」 RESPECT ​ 昨晚,公司系统更新(Edge)结束后,原本正常运行的 RPA 全部下线,原因如图: ​ 早上起来,又是充满希望的一天,于…

Autoware.universe中激光雷达感知部分简述,一看就懂,不懂请打我

文章目录 整体把握各部分阐述滤除多余的检测框 总结 整体把握 Autoware.universe中激光雷达感知部分的主要流程为: 将原始点云数据输入地面滤波器和深度学习检测算法,分别得到地面滤波后的点云points_no_ground和Object检测框(该检测框内包含中心点、位…

端午赠礼:软件测试万能面试脚本,一节课学会软件测试,欸嘿

​ 写在前面: 又到端午了,四舍五入接下来马上要过年了,新一波的跳槽旺季马上来临,不知道你是不是已经安于现状,还是蓄势待发呢?最近我和我的同事们一顿讨论,拟写了大家可能会遇到的面试情况&…

大数据基础平台实施及运维

一、大数据介绍 1、为什么使用大数据技术 数据量越来越大,数据分析的实时性越来越强,数据结果应用范围越来越广。(从用户的访问量、量、访问时间、访问频率,市场可以得到很多信息) 2、大数据的定义 数据收集、数据…

随机数发生器设计(五)

随机数发生器设计(五)- 重播种、输出、自测试 4 重播种函数5 输出函数6 自测试 4 重播种函数 重播种函数利用熵输入及额外输入更新种子,同时对内部状态进行更新。重播种操作函数如下: 函数定义:SM3_RNG_Reseed(workin…

【数据库原理与实践】记忆型章节作业汇总

填空题部分: Chp 8 安全性与完整性 part 1: 数据库的安全性是指保护数据库以防止不合法的使用所造成的( 数据泄露、更改或破坏 )。计算机系统有三类安全性问题,即( 技术安全 )、管理安全和…

【gitflow】 概念基本介绍

gitflow 简介 什么是gitflow? 我们大家都很会用git,但是我们很少去关心我们要怎么用branch和版本控制。 只知道master是第一个主分支,其他分支都是次要分支, 那你知道如下的问题如何回答吗? 如何保证主分支的稳定…

vue3+ts封装axios 配置BASE_URL拦截器 单个接口的拦截 全局拦截器

1. config.ts 书写BASE_URL ( service/request/config.ts) BASE_URL书写的方式很多 1: 直接在axios.create里面写死 ,在打包或者测试的时候手动进行修改BASE_URL 2:新建一个文件 在文件里面判断当前的环境 进行赋值BASE_URL 3:定义.env文件 …

线程间同步

线程间资源竞争 int count 0;void * add(void *arg){int val,i;for(i 0;i< 5000;i ){val count;printf("%p: %d\n",pthread_self(),val);count val 1;}return nullptr; }int main(){pthread_t tida,tidb;pthread_create(&tida,NULL,add,NULL);pthread_c…

python爬虫进行AES解密遇到的问题

1、TypeError: Object type <class ‘str’> cannot be passed to C code 报错如下&#xff1a; File "C:\Python311\Lib\site-packages\Crypto\Util\_raw_api.py", line 143, in c_uint8_ptrraise TypeError("Object type %s cannot be passed to C cod…

【改进算法】混合鲸鱼WOA和BAT算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

0101B站学习视频发留言找小伙伴-实用小工具系列

文章目录 1 起因2 找方法3 bilibili_api4 实现5 知识点结语 1 起因 经常在B站看学习视频&#xff0c;但是一个人学习&#xff0c;偶尔在想&#xff0c;我学的怎么样&#xff1f;有没有用&#xff1f;有没有谁可以一起交流下&#xff1f;好在现在有互联网&#xff0c;可以极大的…