收起左侧

nvidia-tesla-470-driver在内核6.12.18-trim上的安装分享,适用于GT750M等

0
回复
210
查看
[ 复制链接 ]

4

主题

10

回帖

0

牛值

江湖小虾

2025-5-16 14:31:47 显示全部楼层 阅读模式

apt install nvidia-tesla-470-driver

dkms remove -m nvidia-tesla-470 -v 470.256.02 --all
dkms add -m nvidia-tesla-470 -v 470.256.02
dkms build -m nvidia-tesla-470 -v 470.256.02 -k 6.12.18-trim

报错不管,进行patch操作(有两部分需要patch):

--------------------------------------第一部分-----------------------------------
手动修改源码文件

编辑 nvidia/os-mlock.c:

vi /usr/src/nvidia-tesla-470-470.256.02/nvidia/os-mlock.c

找到:

extern int follow_pfn(struct vm_area_struct *vma, unsigned long address, unsigned long *pfn);

替换为以下代码:

#include <linux/version.h>

#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,10,0)
int nv_follow_pfn(struct vm_area_struct *vma, unsigned long address, unsigned long *pfn)
{
return -EINVAL; // follow_pfn removed in Linux 6.10+
}
#else
extern int follow_pfn(struct vm_area_struct *vma, unsigned long address, unsigned long *pfn);
int nv_follow_pfn(struct vm_area_struct *vma, unsigned long address, unsigned long *pfn)
{
return follow_pfn(vma, address, pfn);
}
#endif

最后如下:

#include <linux/version.h>

static inline int nv_follow_pfn(struct vm_area_struct *vma,
unsigned long address,
unsigned long *pfn)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,10,0)
// follow_pfn 已被移除,返回错误
return -EINVAL;
#elif defined(NV_UNSAFE_FOLLOW_PFN_PRESENT)
return unsafe_follow_pfn(vma, address, pfn);
#else
return follow_pfn(vma, address, pfn);
#endif
}

/*
static inline int nv_follow_pfn(struct vm_area_struct *vma,
unsigned long address,
unsigned long *pfn)
{
#if defined(NV_UNSAFE_FOLLOW_PFN_PRESENT)
return unsafe_follow_pfn(vma, address, pfn);
#else
return follow_pfn(vma, address, pfn);
#endif
}
*/
--------------------------------------第一部分结束-----------------------------------

--------------------------------------第二部分-----------------------------------
确认修改文件路径:

vi /usr/src/nvidia-tesla-470-470.256.02/nvidia-drm/nvidia-drm-drv.c

找到 output_poll_changed 并注释掉:

// .output_poll_changed = nv_drm_output_poll_changed,

--------------------------------------第二部分结束-----------------------------------

dkms remove -m nvidia-tesla-470 -v 470.256.02 --all
dkms add -m nvidia-tesla-470 -v 470.256.02
dkms build -m nvidia-tesla-470 -v 470.256.02 -k 6.12.18-trim
dkms install -m nvidia-tesla-470 -v 470.256.02 -k 6.12.18-trim

modprobe nvidia
nvidia-smi

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则