radeon_trace.h: нет такого файла или каталога при попытке собрать модуль radeon
Полное сообщение об ошибке от 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
(да, глупо пробовать абсурдные абсолютные пути... но это от безысходности).
Затем я попытался использовать абсолютный путь... но был заменен на...
./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
если я поставлю его в абсолютный путь.
С наилучшими пожеланиями.