安装AMDGPU DKMS时因cc1缺失及GCC版本不匹配编译失败,且无法通过APT修复的问题求助
安装AMDGPU DKMS时因cc1缺失及GCC版本不匹配编译失败,且无法通过APT修复的问题求助
我目前在Kubuntu 22.04.2 LTS上尝试更新AMD显卡驱动,同时为Blender Cycles渲染安装HIP驱动。当我使用最新的amdgpu-install脚本执行以下命令时:
sudo amdgpu-install --usecase=graphics,hip
遇到了如下编译错误:
cpp: fatal error: cannot execute 'cc1': execvp: No such file or directory compilation terminated. configure: error: *** Cannot determine kernel version. ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/amdgpu-dkms.0.crash' Error! Bad return status for module build on kernel: 5.15.0-76-generic (x86_64) Consult /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/make.log for more information. dpkg: error processing package amdgpu-dkms (--configure): installed amdgpu-dkms package post-installation script subprocess returned error exit status 10 Errors were encountered while processing: amdgpu-dkms E: Sub-process /usr/bin/dpkg returned an error code (1)
我尝试过的解决方法
- 网上查询到cc1错误比较常见,通常可以找到系统中已有的cc1并创建符号链接到GCC目录,但我的系统里完全找不到cc1文件
- 尝试重新安装
build-essential包(这个包会安装gcc、g++、cmake等工具),但所有APT相关命令都会触发amdgpu-dkms的构建过程,而这个构建必然失败,导致整个APT命令无法完成
make.log日志内容
DKMS make.log for amdgpu-6.1.5-1609671.22.04 for kernel 5.15.0-76-generic (x86_64) Mon 10 Jul 2023 00:26:58 AEST make: Entering directory '/usr/src/linux-headers-5.15.0-76-generic' warning: the compiler differs from the one used to build the kernel The kernel was built by: gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0 You are using: gcc (Ubuntu 12.1.0-2ubuntu1~22.04) 12.1.0 /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/Makefile:17: "Local GCC version 120100 does not match kernel compiler GCC version 110300" /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/Makefile:18: "This may cause unexpected and hard-to-isolate compiler-related issues" /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/Makefile:219: "The local C standard(gnu89) doesn't match kernel default C standard(gnu11/gnu99)" CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/drm_gem_ttm_helper.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/drm_buddy.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/scheduler/sched_main.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/scheduler/sched_fence.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/scheduler/sched_entity.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/ttm/ttm_tt.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/main.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdgpu/amdgpu_drv.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/symbols.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/kcl_common.o In file included from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/kcl_iosys-map.h:10, from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/ttm/backport/backport.h:10, from <command-line>: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/header/linux/iosys-map.h:5:15: fatal error: linux/iosys-map.h: No such file or directory 5 | #include_next <linux/iosys-map.h> | ^~~~~~~~~~~~~~~~~~~ compilation terminated. make[1]: *** [scripts/Makefile.build:297: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/drm_gem_ttm_helper.o] Error 1 make[1]: *** Waiting for unfinished jobs.... CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdgpu/amdgpu_device.o In file included from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/kcl_iosys-map.h:10, from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/backport/backport.h:14, from <command-line>: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/header/linux/iosys-map.h:5:15: fatal error: linux/iosys-map.h: No such file or directory 5 | #include_next <linux/iosys-map.h> | ^~~~~~~~~~~~~~~~~~~ compilation terminated. In file included from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/kcl_iosys-map.h:10, from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/ttm/backport/backport.h:10, from <command-line>: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/header/linux/iosys-map.h:5:15: fatal error: linux/iosys-map.h: No such file or directory 5 | #include_next <linux/iosys-map.h> | ^~~~~~~~~~~~~~~~~~~ compilation terminated. In file included from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/scheduler/sched_main.c:51: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/linux/dma-resv.h: In function ‘dma_resv_trylock’: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/linux/dma-resv.h:330:16: error: too many arguments to function ‘ww_mutex_trylock’ 330 | return ww_mutex_trylock(&obj->lock, NULL); | ^~~~~~~~~~~~~~~~ In file included from ./include/linux/seqlock.h:20, from ./include/linux/hrtimer.h:20, from ./include/linux/sched.h:19, from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/backport/kcl_kthread_backport.h:4, from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/scheduler/backport/backport.h:7, from <command-line>: ./include/linux/ww_mutex.h:349:32: note: declared here 349 | static inline int __must_check ww_mutex_trylock(struct ww_mutex *lock) | ^~~~~~~~~~~~~~~~ make[2]: *** [scripts/Makefile.build:297: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdgpu/amdgpu_drv.o] Error 1 make[2]: *** [scripts/Makefile.build:297: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/ttm/ttm_tt.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [scripts/Makefile.build:560: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/ttm] Error 2 CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/kcl_kernel_params.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/dma-buf/dma-resv.o make[2]: *** [scripts/Makefile.build:297: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/scheduler/sched_main.o] Error 1 make[2]: *** Waiting for unfinished jobs.... CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/kcl_backlight.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/kcl_ioctl.o In file included from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/dma-buf/dma-resv.c:36: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/linux/dma-resv.h: In function ‘dma_resv_trylock’: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/linux/dma-resv.h:330:16: error: too many arguments to function ‘ww_mutex_trylock’ 330 | return ww_mutex_trylock(&obj->lock, NULL); | ^~~~~~~~~~~~~~~~ In file included from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/linux/dma-resv.h:42: ./include/linux/ww_mutex.h:349:32: note: declared here 349 | static inline int __must_check ww_mutex_trylock(struct ww_mutex *lock) | ^~~~~~~~~~~~~~~~ In file included from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/kcl_iosys-map.h:10, from /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/backport/backport.h:14, from <command-line>: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/include/kcl/header/linux/iosys-map.h:5:15: fatal error: linux/iosys-map.h: No such file or directory 5 | #include_next <linux/iosys-map.h> | ^~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [scripts/Makefile.build:297: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdgpu/amdgpu_device.o] Error 1 make[1]: *** [scripts/Makefile.build:560: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdgpu] Error 2 CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/kcl_kthread.o CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/kcl_io.o In file included from ./arch/x86/include/asm/bug.h:86, from ./include/linux/bug.h:5, from ./include/linux/cpumask.h:14, from ./include/linux/smp.h:13, from ./include/linux/lockdep.h:14, from ./include/linux/mutex.h:17, from ./include/linux/ww_mutex.h:20: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/dma-buf/dma-resv.c: In function ‘amddma_resv_add_fence’: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/dma-buf/dma-resv.c:287:17: error: implicit declaration of function ‘dma_fence_is_container’; did you mean ‘dma_fence_is_later’? [-Werror=implicit-function-declaration] 287 | WARN_ON(dma_fence_is_container(fence)); | ^~~~~~~~~~~~~~~~~~~~~~ ./include/asm-generic/bug.h:121:32: note: in definition of macro ‘WARN_ON’ 121 | int __ret_warn_on = !!(condition); \ | ^~~~~~~~~ CC [M] /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/kcl_seq_file.o /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/dma-buf/dma-resv.c: In function ‘amddma_resv_describe’: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/dma-buf/dma-resv.c:726:17: error: implicit declaration of function ‘dma_fence_describe’; did you mean ‘dma_resv_describe’? [-Werror=implicit-function-declaration] 726 | dma_fence_describe(fence, seq); | ^~~~~~~~~~~~~~~~~~ | dma_resv_describe cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:297: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/amd/amdkcl/dma-buf/dma-resv.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [scripts/Makefile.build:560: /var/lib/dkms/amdgpu/6.1.5-1609671.22.04/build/scheduler] Error 2 make[1




