赞
踩
Linux是一个宏内核(monolithic kernel)系统,其内核的体积结构是单内核的,但它充分采用了微内核的设计思想。这便使得Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可动态装载或卸载/*5*/。
Linux内核组成有进程管理(Process management)、定时器(timer)、中断管理(interrupt management)、内存管理(memory management)、模块管理(module management)、虚拟文件系统接口(VFS layer)、文件系统(file system)、设备驱动程序(device driver)、进程间通信(inter-process communication)、网络管理(network management)、系统启动(system init)等操作功能的实现/*8*/。
在实际应用中,我们通常需要借助一些开源代码库完成项目,而为项目搭建好适配的运行环境是首当其冲的。因此,我们需要根据具体的项目及开源代码库要求来配置不同版本的系统环境。
详细的Linux内核切换方法可参照参考资料-Linux系统信息查阅及命令操作/*5*/
Linux不同版本内核下载可参照参考资料-Linux不同版本内核下载地址
Open3D_ML环境要求(按需选择requirements文件)可参照参考资料-CUDA下载网址- "requirements-torch-cuda.txt"
CUDA对应适配的Linux系统内核版本可参照参考资料-CUDA下载网址- “Installation Guide Linux“
本文编译及切换Linux不同版本内核方法主体遵从参考资料-Linux系统信息查阅及命令操作/*5*/,但是其中也存在部分差异以及编译报错解决过程,执行差异如下述。
***1 依据/*5*/的步骤,笔者在4.安装内核模块这一步产生了编译报错(1),后查阅资料了解到需要先编译modules,则先于4.执行 sudo make -j12 modules(笔者cpu核数为6);
***2 于***1后编译产生编译报错(2/3),后查阅资料[7]了解到,可以采用修改.config文件10702行及10709行解决。具体文件情况详见图一、图二;
***3 于***2后编译产生编译报错(4),后经查阅资料/*9*/了解到两种方法解决,笔者采用了修改.config文件方法,因为通过/*11*/查阅得知,Linux 5.15.25内核的scripts/pahole-flags.sh文件是空文件。再次尝试sudo make -j12 modules弹出编译选择界面(图三)选择1即可;
***4 于***3后已经完成了内核模块modules编译,然后再sudo make -j12 modules_install进行modules_install内核模块安装,而后在进行sudo make -j12 install时产生编译报错(5)。首先,笔者按照报错提示执行了sudo make -j12(此时,Kernel: arch/x86/boot/bzImage is ready (#2),说明已解决问题),然后再执行sudo make -j12 install即可;
***5 在安装成功之后,进入切换Linux内核步骤。在修改grub.cfg文件,笔者利用命令 sudo gedit grub.cfg,按照/*5*/完成第111行、第115行及第116行修改(注意到,对应/*5*/则sleep --interruptible 10应修改为0)。具体文件情况详见图四;
***6 后续继续按照/*5*/执行即可。
内核编译遇到的报错:
1、Sed:Can not open modules.order:No such file or directory
make:*** [Makefile:1387:_modinst_] Error 2
2、*** No rule to make target "debian/canonical-revoked-certs.pem"
make: *** [certs] Error 2
3、*** No rule to make target "debian/canonical-certs.pem"
make: *** [certs] Error 2
4、FAILED:load BTF from vmlinux:Invalid argument
make:*** [Makefile:1161:vmlinux] Error 255
5、*** Missing file: arch/x86/boot/bzImage
*** You need to run "make" before "make install"
make: *** [arch/x86/Makefile:262:install]] Error 1
Linux内核版本降为了5.15.25,切换内核操作完结。
对于Linux(Ubuntu)系统下的对应NVIDIA显卡驱动安装已经有大量博客发布于CSDN、博客园及其它平台。本文几乎完全按照参考资料[4]进行操作,有些许差异说明如下。
***1 禁用nouveau(自由开放源代码GPU驱动程序,是为NVIDIA的GPU所编写的,也可用于属于系统芯片的高通系列,此驱动程序是由一群独立的软件工程师所编写。使用体验相距NVIDIA官方驱动较远)后必须重新启动Linux-Ubuntu系统。
对于NVIDIA显卡驱动下载安装,需要注意的是:
1、基于/*4*/确定本机NVIDIA_GPU型号并通过CUDA下载网址-Installation Guide Linux查看适配Linux内核(内核版本和GCC版本),最后于NVIDIA GeForce驱动程序下载网址下载对应驱动版本(NVIDIA GeForce是笔者的GPU型号,不同型号选择不同驱动程序);
2、同时也需要根据具体项目需求(如Open3D_ML依赖要求为CUDA v11.7.0)来匹配显卡驱动版本,以对应后续的CUDA、cudnn及Pytorch版本。
需要注意的是,此处CUDA Version指的是GPU支持的最高CUDA版本,意味着安装的CUDA版本必须小于等于v12.4。
对于Open3D_ML拓展库而言,Pytorch及CUDA的下载可直接按照CUDA下载网址-"requirements-torch-cuda.txt"(值得注意,其下载位置为虚拟环境内),笔者按照参考资料[9]进行测试。
对于完整的CUDA及cudnn下载安装可参考参考资料[8],此处以项目完成为目的,不做赘述。
[2] Linux安装NVIDIA显卡驱动的正确姿势_linux怎么安装nvidia-CSDN博客
[3] 环境感知算法——1.简介与GPU驱动、CUDA和cudnn配置-CSDN博客
[4] Linux系统下安装英伟达(NVIDIA)的驱动_linux安装nvidia驱动-CSDN博客
[5]【CUDA】Ubuntu系统如何安装CUDA保姆级教程(2022年最新)_ubuntu_自牧君-GitCode 开源社区
[7] 18序回答—Archemar and BitManipulator
debian - Attempting to compile kernel yields a certification error - Unix & Linux Stack Exchange
[8] linux安装CUDA+cuDNN_linux服务器安装cuda10,2和cudnn-CSDN博客
[9] 如何查看自己的cuda环境,以及其对应版本_conda查看cuda版本-CSDN博客
/*1*/ Ubuntu Desktop Guide(Ubuntu桌面指南-Ubuntu 22.04 Jammy Jellyfish)
/*2*/ Linux命令大全(手册) – 真正好用的Linux命令在线查询网站
(Linux系统内置了很多命令行工具,每个命令都有详细的手册页。可以在终端中输入“man 某个命令符”来查阅具体的使用方法)
/*3*/ 如何关闭secure boot?secure boot的关闭方法_secure boot怎么关闭-CSDN博客
/*4*/ 如何确定Linux服务器已经安装了NVIDIA驱动程序 - 知乎
/*5*/ 编译运行Linux内核(切换Linux内核版本)_linux 切换内核-CSDN博客(内核灵活切换重要)
/*6*/ Ubuntu 20.04 升级最新内核、安装指定内核版本
/*7*/ Linux内核版本切换
/*8*/ Linux内核简介、版本号、发布历史及发行版_linux内核版本2.0发布于-CSDN博客
/*9*/ Compiling older Linux Kernels can fail with load BTF from vmlinux: invalid argument - devkernel.io
/*10*/ Ubuntu 22.04 编译 Linux 5.16.5 内核报错:FAILED: load BTF from vmlinux: Invalid argument-CSDN博客
/*11*/ https://elixir.bootlin.com/linux/v5.15.25/source/scripts/pahole-flags.sh
/*12*/ Linux下载安装百度网盘
/*13*/
linux下anaconda的环境创建以及管理_哔哩哔哩_bilibili
/*14*/ Anaconda安装【Linux系统】_哔哩哔哩_bilibili
The Linux Kernel Archives(工业化产品应用适配常用)
http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/(国内镜像-加快下载速度)
NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA
CUDA Zone - Library of Resources | NVIDIA Developer
Installation Guide Linux :: CUDA Toolkit Documentation(阅读官方文档十分重要!!!)
https://github.com/isl-org/Open3D-ML/blob/main/requirements-torch-cuda.txt(版本匹配也重要)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。