nvidia-peer-memory-dkms.dkms: dkms.conf: not found
时间: 2025-02-23 15:31:16 AIGC 浏览: 93
当你遇到"Nvidia Peer Memory DKMS.dkms: dkms.conf: not found"错误时,这通常意味着DKMS(Dynamic Kernel Module Support)配置文件未找到。dkms.conf文件用于管理动态加载的内核模块,包括NVIDIA的驱动。
解决这个问题的方法如下:
1. **确认dkms包已安装**:
```bash
sudo apt-y dkms
```
2. **手动创建dkms.conf**:
```bash
sudo tee /etc/dkms/nvidia/$(uname -r)/dkms.conf > /dev/null
```
3. **重新加载DKMS**:
```bash
sudo service dkms restart
```
4. **尝试安装对应版本的NVIDIA驱动**:
使用命令替换`sudo ./NVIDIA-Linux-x86_64-455.28.run`,例如如果你知道某个支持的版本(如430.34),则运行:
```bash
sudo ./NVIDIA-Linux-x86_64-<version>.run --add-this-kernel
```
其中 `<version>`应替换为实际的驱动版本号。
如果上述步骤无法解决问题,可能需要查阅NVIDIA官方文档或寻求社区支持,因为特定的报错信息可能会指向更具体的问题所在[^1]。
相关问题
dh_install: warning: Compatibility levels before 10 are deprecated (level 9 in use) /tmp/nvidia-peer-memory-1.3/debian/nvidia-peer-memory.install: 1: etc/infiniband/nv_peer_mem.conf: not found /tmp/nvidia-peer-memory-1.3/debian/nvidia-peer-memory.install: 2: etc/init.d/nv_peer_mem: not found /tmp/nvidia-peer-memory-1.3/debian/nvidia-peer-memory.install: 3: etc/init/nv_peer_mem.conf: not found dh_install: warning: debian/nvidia-peer-memory.install is marked executable but does not appear to an executable config. dh_install: warning: dh_install: warning: If debian/nvidia-peer-memory.install is intended to be an executable config file, please ensure it can dh_install: warning: be run as a stand-alone script/program (e.g. "./debian/nvidia-peer-memory.install") dh_install: warning: Otherwise, please remove the executable bit from the file (e.g. chmod -x "debian/nvidia-peer-memory.install") dh_install: warning: dh_install: warning: Please see "Executable debhelper config files" in debhelper(7) for more information. dh_install: warning: dh_install: error: debian/nvidia-peer-memory.install (executable config) returned exit code 127 make: *** [debian/rules:12: binary] Error 255 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
<think>我们正在解决NVIDIAPeerMemory安装过程中的两个主要问题:1.权限问题:`Permissiondenied`和`Error127`2.文件缺失:`etc/infiniband/nv_peer_mem.conf`,`etc/init.d/nv_peer_mem`,`etc/init/nv_peer_mem.conf`根据之前的错误信息,构建过程中脚本`debian/updateInit.sh`因权限不足无法执行,导致构建失败。解决方案:步骤1:检查并修复脚本权限进入构建目录,为脚本添加可执行权限:```bashcd/tmp/nvidia-peer-memory-1.3chmod+xdebian/updateInit.sh```步骤2:确保构建环境正确安装必要的构建依赖:```bashsudoaptupdatesudoaptinstallbuild-essentialdebhelperdkms```步骤3:手动创建缺失的配置文件(如果构建脚本未能生成)由于错误可能导致文件未生成,我们可以尝试手动创建这些文件:创建`nv_peer_mem.conf`(位于`/etc/infiniband/`):```bashsudomkdir-p/etc/infinibandecho"optionsnv_peer_memmax_nv_devices=32"|sudotee/etc/infiniband/nv_peer_mem.conf```创建init脚本(根据系统使用SystemV或systemd):对于SystemV(`/etc/init.d/nv_peer_mem`):```bashsudotouch/etc/init.d/nv_peer_memsudochmod+x/etc/init.d/nv_peer_mem```对于systemd(`/etc/init/nv_peer_mem.conf`实际上应放在`/etc/systemd/system/`):```bashsudotouch/etc/init/nv_peer_mem.conf#注意:此路径可能不标准,通常systemd服务文件在/etc/systemd/system/```但更推荐的方法是重新构建并安装,确保正确生成这些文件。步骤4:重新构建并安装在修复权限后,重新运行构建:```bashdpkg-buildpackage-us-uc```如果上述命令失败,可以尝试:```bashdebian/rulesbinary```步骤5:安装生成的deb包构建成功后,在父目录会生成deb包,使用dpkg安装:```bashcd..sudodpkg-invidia-peer-memory_*.deb```步骤6:处理dh_install警告这些警告通常是因为文件在安装前已经存在,可以忽略或删除旧文件后重新安装。如果问题仍然存在,考虑以下可能性:-构建目录挂载了noexec选项:检查`mount`命令输出,重新挂载目录(使用`exec`选项)-缺少内核头文件:安装`linux-headers-$(uname-r)`注意:在构建过程中,确保当前用户对构建目录有读写权限。如果构建脚本`debian/updateInit.sh`内容有误,可能需要编辑该脚本。但通常权限问题解决后即可正常执行。引用说明:在构建过程中,脚本`debian/updateInit.sh`负责生成或更新init脚本,因此必须可执行。错误127通常是由于脚本执行失败或找不到命令,而权限问题是最常见的原因之一。相关问题:1.如何修复Debian软件包构建过程中的`Permissiondenied`错误?2.在构建NVIDIA相关驱动时,常见的文件缺失问题有哪些解决方法?3.如何诊断和解决DKMS模块构建失败的问题?4.Linux系统中,如何正确配置InfiniBand和NVIDIAPeerMemory?5.在软件包构建过程中,错误代码127通常表示什么?如何排查?请根据上述步骤尝试解决,如果问题依旧,请提供详细的错误日志。</think>### 解决 NVIDIA Peer Memory 安装问题的完整指南
#### 问题核心分析
根据错误信息,您遇到了三个关键问题:
1. **权限问题**:`debian/updateInit.sh`脚本执行被拒绝(Permission denied)
2. **文件缺失**:`/etc/infiniband/nv_peer_mem.conf`等配置文件未生成
3. **构建失败**:错误代码 127 表示命令执行失败
#### 完整解决方案
##### 步骤 1:修复脚本权限问题
```bash
# 进入构建目录
cd /tmp/nvidia-peer-memory-1.3
# 添加执行权限
sudo chmod +x debian/updateInit.sh
# 验证权限
ls -l debian/updateInit.sh
# 应显示 -rwxr-xr-x
```
##### 步骤 2:处理文件缺失问题
手动创建缺失的配置文件:
```bash
# 创建 nv_peer_mem.conf
sudo mkdir -p /etc/infiniband
echo "options nv_peer_mem max_nv_devices=32" | sudo tee /etc/infiniband/nv_peer_mem.conf
# 创建 init 脚本
sudo touch /etc/init.d/nv_peer_mem
sudo chmod +x /etc/init.d/nv_peer_mem
# 创建 systemd 配置(如使用 systemd)
sudo mkdir -p /etc/systemd/system
sudo tee /etc/systemd/system/nv_peer_mem.service > /dev/null <<EOL
[Unit]
Description=NVIDIA Peer Memory Driver
[Service]
Type=oneshot
ExecStart=/sbin/modprobe nv_peer_mem
[Install]
WantedBy=multi-user.target
EOL
```
##### 步骤 3:修复构建环境
```bash
# 安装必要依赖
sudo apt update
sudo apt install -y build-essential dkms debhelper linux-headers-$(uname -r)
# 检查挂载选项(避免 noexec)
mount | grep /tmp
# 如有 noexec,重新挂载:
sudo mount -o remount,exec /tmp
# 清理并重新构建
sudo debian/rules clean
sudo dpkg-buildpackage -us -uc
```
##### 步骤 4:解决错误 127
错误 127 通常由环境变量或路径问题引起:
```bash
# 在构建前设置环境变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 使用 fakeroot 构建
sudo apt install -y fakeroot
fakeroot debian/rules binary
```
##### 步骤 5:安装生成的软件包
构建成功后安装:
```bash
cd ..
sudo dpkg -i nvidia-peer-memory_*.deb
# 验证安装
lsmod | grep nv_peer_mem
sudo systemctl status nv_peer_mem # 如使用 systemd
```
#### 故障排除技巧
1. **调试脚本执行**:
```bash
bash -x debian/updateInit.sh
```
2. **检查内核日志**:
```bash
dmesg | grep nv_peer_mem
```
3. **验证服务状态**:
```bash
sudo service nv_peer_mem status
```
4. **手动加载模块**:
```bash
sudo modprobe nv_peer_mem
```
#### 根本原因分析
1. **权限问题**:通常因/tmp挂载了`noexec`选项或构建环境权限不足引起[^1]
2. **文件缺失**:DKMS构建流程中init脚本生成失败
3. **错误127**:PATH环境变量不完整或依赖缺失[^2]
阅读全文
相关推荐
















