make 的完整错误信息:
In file included from /home/huexxx/ubuntu-modules/linux-5.8.0/drivers/gpu/drm/radeon/radeon_trace.h:209,
from /home/huexxx/ubuntu-modules/linux-5.8.0/drivers/gpu/drm/radeon/radeon_trace_points.c:10:
./include/trace/define_trace.h:95:42: fatal error: ../../drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
95 | #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
| ^
compilation terminated.
我一直在努力追随这修改、构建并将 radeon 模块插入到已构建的内核中,而不必像往常一样构建整个内核,以减少编译时间。
当我make -C /lib/modules/5.8.0-31-generic/build M=$(pwd)/drivers/gpu/drm/radeon modules
从目录运行时会发生这种情况/home/huexxx/ubuntu-modules/linux-5.8.0
我已经搜索过此问题的解决方案,并且有类似问题的先例,如您所见这里。建议的解决方案是添加两个(在这种情况下根据路径深度) ../
以更正radeon_trace.h
要添加到的相对路径TRACE_INCLUDE_PATH
,但它不适用于../
添加的任何数量......我已经尝试了所有可能性......
./include/trace/define_trace.h:95:42: fatal error: ../../../../drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
./include/trace/define_trace.h:95:42: fatal error: ../../../../../drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
./include/trace/define_trace.h:95:42: fatal error: ../../../drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
./include/trace/define_trace.h:95:42: fatal error: ../drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
./include/trace/define_trace.h:95:42: fatal error: ./drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
./include/trace/define_trace.h:95:42: fatal error: drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
./include/trace/define_trace.h:95:42: fatal error: /drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
(是的,尝试无意义的绝对路径是愚蠢的......但这是由于绝望)。
然后,我尝试使用绝对路径......但linux
被替换为1
......
./include/trace/define_trace.h:95:42: fatal error: /home/huexxx/ubuntu-modules/1-5.8.0/drivers/gpu/drm/radeon/radeon_trace.h: No existe el archivo o el directorio
然后,最后的努力...我将 linux-5.8.0 文件夹重命名为 lin-5.8.0 以避免替换问题...最后它成功了!
LD [M] /home/huexxx/ubuntu-modules/lin-5.8.0/drivers/gpu/drm/radeon/radeon.ko
嗯...发帖的目的是想知道:
为什么编译不能直接工作,因为在路径上添加 ../../ 是对驱动程序代码的一个众所周知的补丁。
为什么编译无法以任何方式修改相对路径......该文件应该存在于其中一种可能性中。
如果我把它放在绝对路径中,为什么
linux
会被替换呢?1
此致。