当前位置: 首页 > news >正文

分析nvidia驱动run文件源码结构

下载驱动文件

归档版本驱动下载链接:

https://download.nvidia.com/XFree86/Linux-x86_64/

 

下载得到run文件,传输到linux虚拟机,中,执行解压命令,

scp NVIDIA-Linux-x86_64-550.54.14.run root@192.168.119.135:/rootAuthorized users only. All activities may be monitored and reported.
root@192.168.119.135's password:
NVIDIA-Linux-x86_64-550.54.14.run                                                                                                                 100%  293MB 124.0MB/s   00:02

 

查看run文件帮助命令

[root@openGauss-server01 ~]# bash NVIDIA-Linux-x86_64-550.54.14.run  --helpNVIDIA-Linux-x86_64-550.54.14.run [options]This program will install the NVIDIA Accelerated Graphics Driver
for Linux-x86_64 550.54.14 by unpacking the embedded tarball and
executing the ./nvidia-installer  installation utility.Below are the most common options; for a complete list use
'--advanced-options'.--infoPrint embedded info (title, default target directory) and exit.--checkCheck integrity of the archive and exit.-x, --extract-onlyExtract the contents of NVIDIA-Linux-x86_64-550.54.14.run, but do notrun 'nvidia-installer'.The following arguments will be passed on to the ./nvidia-installer
utility:-v, --versionPrint the nvidia-installer version and exit.-h, --helpPrint usage information for the common commandline options and exit.-A, --advanced-optionsPrint usage information for the common commandline options as well as the advanced options, and then exit.[root@openGauss-server01 ~]#

 

执行解压

[root@openGauss-server01 ~]# bash NVIDIA-Linux-x86_64-550.54.14.run  -x
Creating directory NVIDIA-Linux-x86_64-550.54.14
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 550.54.14........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
[root@openGauss-server01 ~]# ls -l
total 299684
-rw-------.  1 root root       789 Nov 13 19:42 anaconda-ks.cfg
-rw-r--r--.  1 root root         0 Nov 17 11:32 gauss_cron_omm
drwxr-xr-x.  3 root root      4096 Nov 17 11:27 GaussInstaller
drwxr-xr-x. 10 root root      4096 Feb 22  2024 NVIDIA-Linux-x86_64-550.54.14
-rw-r--r--.  1 root root 306861083 Nov 17 14:47 NVIDIA-Linux-x86_64-550.54.14.run
[root@openGauss-server01 ~]# ls NVIDIA-Linux-x86_64-550.54.14
10_nvidia.json                    libnvidia-allocator.so.550.54.14        libnvidia-wayland-client.so.550.54.14                    nvidia_layers.json
10_nvidia_wayland.json            libnvidia-api.so.1                      libnvoptix.so.550.54.14                                  nvidia-modprobe
15_nvidia_gbm.json                libnvidia-cfg.so.550.54.14              libOpenCL.so.1.0.0                                       nvidia-modprobe.1.gz
32                                libnvidia-eglcore.so.550.54.14          libOpenGL.so.0                                           nvidia-ngx-updater
firmware                          libnvidia-egl-gbm.so.1.1.1              libvdpau_nvidia.so.550.54.14                             nvidia-persistenced
html                              libnvidia-egl-wayland.so.1.1.13         LICENSE                                                  nvidia-persistenced.1.gz
kernel                            libnvidia-encode.so.550.54.14           makeself-help-script.sh                                  nvidia-persistenced-init.tar.bz2
kernel-open                       libnvidia-fbc.so.550.54.14              makeself.sh                                              nvidia-powerd
libcudadebugger.so.550.54.14      libnvidia-glcore.so.550.54.14           mkprecompiled                                            nvidia-settings
libcuda.so.550.54.14              libnvidia-glsi.so.550.54.14             nvidia-application-profiles-550.54.14-key-documentation  nvidia-settings.1.gz
libEGL_nvidia.so.550.54.14        libnvidia-glvkspirv.so.550.54.14        nvidia-application-profiles-550.54.14-rc                 nvidia-settings.desktop
libEGL.so.1.1.0                   libnvidia-gpucomp.so.550.54.14          nvidia-bug-report.sh                                     nvidia-settings.png
libEGL.so.550.54.14               libnvidia-gtk2.so.550.54.14             NVIDIA_Changelog                                         nvidia-smi
libGLdispatch.so.0                libnvidia-gtk3.so.550.54.14             nvidia-cuda-mps-control                                  nvidia-smi.1.gz
libGLESv1_CM_nvidia.so.550.54.14  libnvidia-ml.so.550.54.14               nvidia-cuda-mps-control.1.gz                             nvidia-xconfig
libGLESv1_CM.so.1.2.0             libnvidia-ngx.so.550.54.14              nvidia-cuda-mps-server                                   nvidia-xconfig.1.gz
libGLESv2_nvidia.so.550.54.14     libnvidia-nvvm.so.550.54.14             nvidia-dbus.conf                                         _nvngx.dll
libGLESv2.so.2.1.0                libnvidia-opencl.so.550.54.14           nvidia-debugdump                                         nvngx.dll
libGL.so.1.7.0                    libnvidia-opticalflow.so.550.54.14      nvidia-drm-outputclass.conf                              nvoptix.bin
libglvnd_install_checker          libnvidia-pkcs11-openssl3.so.550.54.14  nvidia_drv.so                                            pkg-history.txt
libGLX_nvidia.so.550.54.14        libnvidia-pkcs11.so.550.54.14           nvidia.icd                                               README.txt
libglxserver_nvidia.so.550.54.14  libnvidia-ptxjitcompiler.so.550.54.14   nvidia_icd.json                                          supported-gpus
libGLX.so.0                       libnvidia-rtcore.so.550.54.14           nvidia-installer                                         systemd
libnvcuvid.so.550.54.14           libnvidia-tls.so.550.54.14              nvidia-installer.1.gz
[root@openGauss-server01 ~]#

 

将整个目录打包成zip,下载到主机,交给ai分析此项目

 

执行压缩,大打包成zip

zip -r NVIDIA-Linux-x86_64-550.54.14.zip NVIDIA-Linux-x86_64-550.54.14

将远端文件scp到本地

C:\Users\wx\Downloads>scp root@192.168.119.135:/root/NVIDIA-Linux-x86_64-550.54.14.zip .Authorized users only. All activities may be monitored and reported.
root@192.168.119.135's password:
NVIDIA-Linux-x86_64-550.54.14.zip                                                     100%  439MB 145.4MB/s   00:03C:\Users\wx\Downloads>

得到README文档

2A. MINIMUM SOFTWARE REQUIREMENTSSoftware Element         Supported versions       Check With...---------------------    ---------------------    ---------------------Linux kernel             3.10 and newer           `cat /proc/version`X.Org xserver            1.7, 1.8, 1.9, 1.10,     `Xorg -version`1.11, 1.12, 1.13,    1.14, 1.15, 1.16,    1.17, 1.18, 1.19,    1.20, 21.1           Kernel modutils          2.1.121 and newer        `insmod --version`glibc                    2.11                     `/lib/libc.so.6`libvdpau *               0.2                      `pkg-config--modversion vdpau`libvulkan **             1.0.61                   `pkg-config--modversion vulkan`* Required for hardware-accelerated video playback. See Appendix G for more
information.** Required for applications which use the Vulkan API.If you need to build the NVIDIA kernel module:Software Element         Min Requirement          Check With...---------------------    ---------------------    ---------------------binutils                 2.9.5                    `size --version`GNU make                 3.77                     `make --version`gcc                      2.91.66                  `gcc --version`

 

项目结构图

 

NVIDIA-Linux-x86_64-550.54.14/
├── ──────────────────────────────────────────────────────────────────
│                         核心执行程序与配置                          │
├── ──────────────────────────────────────────────────────────────────
│ 
├── nvidia-installer          # NVIDIA驱动安装程序
├── nvidia-uninstaller        # 卸载脚本
├── nvidia-bug-report.sh      # 错误报告生成脚本
├── nvidia-xconfig            # X配置工具
├── nvidia-settings           # NVIDIA设置管理工具
├── nvidia-smi                # 系统管理接口工具
├── nvidia-debugdump          # 调试信息获取工具
├── nvidia-persistenced       # 持久化服务
├── nvidia-modprobe           # 内核模块加载工具
├── nvidia-cuda-mps-control   # CUDA多进程服务控制工具
├── nvidia-cuda-mps-server    # CUDA多进程服务服务器
├── nvidia-powerd             # 电源管理守护进程
├── nvidia-ngx-updater        # NGX组件更新工具
│
├── makeself.sh               # 自解压脚本生成工具
├── makeself-help-script.sh   # 安装帮助脚本
├── mkprecompiled             # 预编译工具
│
├── ──────────────────────────────────────────────────────────────────
│                         内核模块源代码                             │
├── ──────────────────────────────────────────────────────────────────
│
├── kernel/                   # 闭源内核模块源代码
│   ├── nvidia/               # 核心驱动模块
│   ├── nvidia-drm/           # DRM内核模块
│   ├── nvidia-modeset/       # 模式设置模块
│   ├── nvidia-uvm/           # 统一内存管理模块
│   ├── nvidia-peermem/       # 对等内存访问模块
│   └── common/               # 共享代码
│
├── kernel-open/              # 开源内核模块源代码
│   ├── nvidia/               # 核心驱动模块(开源部分)
│   ├── nvidia-drm/           # DRM内核模块(开源部分)
│   ├── nvidia-modeset/       # 模式设置模块(开源部分)
│   ├── nvidia-uvm/           # 统一内存管理模块(开源部分)
│   ├── nvidia-peermem/       # 对等内存访问模块(开源部分)
│   └── common/               # 共享代码
│
├── ──────────────────────────────────────────────────────────────────
│                           用户空间库                                │
├── ──────────────────────────────────────────────────────────────────
│
├── libEGL.so.550.54.14       # EGL实现库
├── libGL.so.1.7.0            # OpenGL实现库
├── libGLESv1_CM.so.1.2.0     # OpenGL ES 1.x实现库
├── libGLESv2.so.2.1.0        # OpenGL ES 2.x实现库
├── libGLX.so.0               # GLX实现库
├── libOpenGL.so.0            # OpenGL API库
├── libGLdispatch.so.0        # GL调度库
│
├── libcuda.so.550.54.14      # CUDA运行时库
├── libnvidia-ml.so.550.54.14 # NVIDIA管理库
├── libnvidia-encode.so.550.54.14 # 视频编码库
├── libnvcuvid.so.550.54.14   # CUVID视频解码库
├── libnvidia-opencl.so.550.54.14 # OpenCL实现库
├── libvdpau_nvidia.so.550.54.14 # VDPAU视频加速库
├── libnvoptix.so.550.54.14   # OptiX光线追踪库
│
├── ──────────────────────────────────────────────────────────────────
│                           32位兼容性库                              │
├── ──────────────────────────────────────────────────────────────────
│
├── 32/                       # 32位库目录
│   ├── libEGL.so.1.1.0       # 32位EGL库
│   ├── libGL.so.1.7.0        # 32位OpenGL库
│   ├── libGLESv2.so.2.1.0    # 32位OpenGL ES库
│   ├── libGLX.so.0           # 32位GLX库
│   ├── libcuda.so.550.54.14  # 32位CUDA库
│   └── ...                   # 其他32位库文件
│
├── ──────────────────────────────────────────────────────────────────
│                           固件与配置                                │
├── ──────────────────────────────────────────────────────────────────
│
├── firmware/                 # GPU固件
│   ├── gsp_ga10x.bin         # GA10x系列GPU GSP固件
│   └── gsp_tu10x.bin         # TU10x系列GPU GSP固件
│
├── nvidia.icd                # OpenCL ICD配置
├── nvidia_icd.json           # OpenCL ICD JSON配置
├── nvidia_layers.json        # NVIDIA层配置
├── nvidia-drm-outputclass.conf # X.org配置
├── 10_nvidia.json            # Wayland配置
├── 10_nvidia_wayland.json    # Wayland配置
├── 15_nvidia_gbm.json        # GBM配置
│
├── ──────────────────────────────────────────────────────────────────
│                           文档与辅助文件                            │
├── ──────────────────────────────────────────────────────────────────
│
├── README.txt                # 安装指南和文档
├── LICENSE                   # 许可协议
├── NVIDIA_Changelog          # 变更日志
├── pkg-history.txt           # 包历史记录
│
├── html/                     # HTML格式文档
│   ├── index.html            # 文档主页
│   ├── installdriver.html    # 安装指南
│   ├── supportedchips.html   # 支持的GPU列表
│   └── ...                   # 其他文档文件
│
├── supported-gpus/           # 支持的GPU相关文件
│
├── ──────────────────────────────────────────────────────────────────
│                           系统服务配置                              │
├── ──────────────────────────────────────────────────────────────────
│
├── systemd/                  # Systemd服务配置
│   ├── nvidia-sleep.sh       # 睡眠模式处理脚本
│   ├── system/               # 系统服务文件
│   └── system-sleep/         # 系统睡眠钩子
│
├── ──────────────────────────────────────────────────────────────────
│                           其他组件                                  │
├── ──────────────────────────────────────────────────────────────────
│
├── .manifest                 # 清单文件
├── nvngx.dll                 # NGX功能库
├── _nvngx.dll                # NGX功能库
├── nvoptix.bin               # OptiX二进制文件
├── libglvnd_install_checker/ # GLVND安装检查器
│
└── nvidia-application-profiles-550.54.14-rc # 应用配置文件

 

http://www.zskr.cn/news/64204.html

相关文章:

  • 详细介绍:Spring数据库连接控制全解析
  • 习题解析之:奇偶插入
  • 2025美白淡斑面膜品牌Top5实测推荐!色斑暗黄党必看,有效去痘印产品
  • 软件安全 --- 安卓安全 之 动态加载
  • 实用指南:复原大唐3d项目测试版
  • 2025年值得关注的纸杯机与纸碗机、纸盖机一体化解决方案提供商
  • 2025最新宠物抓伤急救液品牌怎么选?葆爱堂专注宠物健康,宠物抓伤创面消毒液/宠物消杀,更专业,更安全
  • 从纸杯机到纸盘机!2025 全品类制杯机选购指南:全伺服 / 超声波款 + 纸碗机 / 纸盖机省本技巧
  • 降低动态功耗的利器:Clock Gating 技术解析
  • 大模型开发技巧记录(不定期更新)
  • 2025年字节跳动奖学金揭晓:20位获奖人才研究方向速览
  • CoaXPress 相机采集卡对比 - Hello
  • 2025建材推荐榜:煌匠美缝剂_环氧地坪_彩砂自流平,装修选材必看!
  • 【IEEE出版 | EI检索】第七届国际科技创新学术交流大会暨信息技术与计算机应用学术会议(ITCA 2025)
  • 2025年东莞樟木头搬家服务权威推荐榜单:东莞同城搬家公司/东莞厚街搬家服务/东莞大岭山搬家服务精选
  • 河南煌匠建材:专注美缝剂、环氧地坪、彩砂自流平,15年匠心守护优质空间 (2)
  • 6款免费AI毕业论文工具推荐:一键生成+零成本降重,效率翻倍
  • 打开文件夹
  • 玩 Linux 随便记录点东西
  • 占有率最高的工业总线:PROFINET、Modbus 与 EtherCAT
  • 2025年广东家装全屋定制推广权威推荐榜单:广东全屋家具定制/广东全屋整装家具定制/广东全屋定制柜子供货商精选
  • 【IEEE出版 | EI检索】第七届国际科技创新学术交流大会暨通信、信息系统和软件工程学术会议(CISSE 2025)
  • 大带宽服务器租用建站有哪些优势
  • 隐私代币逆势上涨背后的技术、监管与市场博弈
  • 控油洗发水哪款好?10 款高口碑款推荐,解决头油显邋遢 + 贴头皮尴尬
  • 2025 年市面上四川不锈钢井盖 / 不锈钢井盖厂家最新TOP排名
  • GAN模型
  • GD32F407VE天空星开发板的MQ135的空气质量检测 - 详解
  • 2025年WMS仓库管理系统选型指南(最新)
  • 2025年数字员工手机十大推荐:高性价比、抗摔能力与服务体验