【发布时间】:2014-03-01 04:55:38
【问题描述】:
我的内核驱动程序构建有问题。我正在构建一个自定义(尽管非常基本)NVidia RDMA 驱动程序,并且在生成文件期间收到构建警告。具体来说,它正在寻找两个 NVidia API 调用 nvidia_p2p_put_pages 和 nvidia_p2p_get_pages。使用“nm”可以看到这些入口点位于 NVidia 驱动程序模块 (nvidia.ko) 中。但是,我对 Linux 驱动程序 make 文件系统的内部结构不够熟悉,无法在构建时定位这些入口点。
RDMA 工具包文档引用了一个提取脚本“./NVIDIA-Linux-x86_64-.run”和一个构建目录。但是,在提取最新的驱动程序源后,我无法找到任何构建文件。
如您所知,我对此很陌生。任何帮助将不胜感激。 谢谢
【问题讨论】:
-
根据documentation,这些符号可以在
nv-p2p.h头文件中找到。你包括那个头文件吗?听起来您想知道要链接哪些库,但是如果您提供您看到的 实际错误输出,这个问题的清晰度可能会得到改善。您还可以提及您使用的驱动程序版本以及安装程序(.run 文件)的位置。 -
下载nvidia驱动运行文件安装程序,如319.72。使用
sh NVIDIA-L... --advanced-options获取命令行选项使用sh NVIDIA-L... -x运行仅提取作业然后切换到创建的目录。你会看到一堆 nvidia 库。然后切换到kernel目录,可以看到nv-p2p.h等头文件。您还会发现一个整体的makefile和一个Makefile.nvidia,它显示了如何构建内核模块。 -
这就是我要找的。警告似乎是链接问题的移动:警告:“nvidia_p2p_put_pages”[/
/kernel_module/gpudirect_rdma.ko] 未定义!警告:“nvidia_p2p_get_pages”[/ /kernel_module/gpudirect_rdma.ko] 未定义!你的第二套指令似乎是我需要的。我很快就会试一试。谢谢。 -
成功了,罗伯特。谢谢!
标签: linux-kernel driver nvidia