WARNING: modpost: Symbol info of vmlinux is missing. Unresolved symbol check will be entirely skipped. make[2]: *** 没有规则可制作目标“scripts/module.lds”,由“/home/public/ti-processor-sdk-linux-rt-am57xx-evm-08_02_01_00/board-support/linux-rt-5.10.100+gitAUTOINC+204ec708dc-g204ec708dc/drivers/pwm/pwm-fsl-ftm.ko” 需求。 停止。 make[2]: *** 正在等待未完成的任务.... CC [M] /home/public/ti-processor-sdk-linux-rt-am57xx-evm-08_02_01_00/board-support/linux-rt-5.10.100+gitAUTOINC+204ec708dc-g204ec708dc/drivers/pwm/pwm-fsl-ftm.mod.o scripts/Makefile.modpost:130: recipe for target '__modpost' failed make[1]: *** [__modpost] Error 2 Makefile:1729: recipe for target 'modules' failed make: *** [modules] Error 2
时间: 2024-04-28 16:21:04 浏览: 395
这个错误提示表明在编译 pwm-fsl-ftm.ko 模块时,出现了无法解析符号信息的问题。通常情况下,这可能是由于内核源码版本与当前正在编译的模块版本不匹配导致的。
解决方法是检查当前使用的内核源码版本是否与模块版本匹配,如果不匹配,需要使用相应的内核源码重新编译模块。另外,可以尝试清理编译环境并重新编译,以确保所有必要的文件都存在且路径正确。
如果问题仍然存在,可以查看编译日志以获取更多信息并进一步排查原因。可能需要查看模块代码并手动解决符号未解析的问题。
相关问题
使用ubuntu20.04基于linux 5.15版本的内核编译驱动程序时,报错:make make CC=x86_64-linux-gnu-gcc-9 -C /lib/modules/5.15.0-72-generic/build M=/home/test/PCIE_Trans2PIC/drv modules make[1]: Entering directory '/usr/src/linux-headers-5.15.0-72-generic' warning: the compiler differs from the one used to build the kernel The kernel was built by: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 You are using: x86_64-linux-gnu-gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 CC [M] /home/test/PCIE_Trans2PIC/drv/asu_pcie.o MODPOST /home/test/PCIE_Trans2PIC/drv/Module.symvers CC [M] /home/test/PCIE_Trans2PIC/drv/asu_pcie.mod.o LD [M] /home/test/PCIE_Trans2PIC/drv/asu_pcie.ko BTF [M] /home/test/PCIE_Trans2PIC/drv/asu_pcie.ko /bin/sh: 1: pahole: not found make[3]: *** [scripts/Makefile.modfinal:60: /home/test/PCIE_Trans2PIC/drv/asu_pcie.ko] Error 127 make[3]: *** Deleting file '/home/test/PCIE_Trans2PIC/drv/asu_pcie.ko' make[2]: *** [scripts/Makefile.modpost:139: __modpost] Error 2 make[1]: *** [Makefile:1822: modules] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-72-generic' make: *** [Makefile:9: all] Error 2 ,该如何解决
这个错误是因为缺少pahole工具导致的,pahole是BTF(BPF Type Format)工具包的一部分,用于生成内核BTF信息。解决方法如下:
1. 安装pahole工具。在终端中运行以下命令:
```
sudo apt-get update
sudo apt-get install -y dwarves
```
2. 然后在编译驱动程序时指定pahole的路径。
```
make make CC=x86_64-linux-gnu-gcc-9 -C /lib/modules/5.15.0-72-generic/build M=/home/test/PCIE_Trans2PIC/drv \
EXTRA_CFLAGS="-I/usr/include/dwarves" \
V=1 modules
```
其中,`-I/usr/include/dwarves`指定了pahole的路径。如果您的pahole工具安装在其他位置,请相应地更改路径。
希望这个解决方法可以帮助您解决问题。
Makefile:1398: recipe for target 'dtbs' failed make: *** [dtbs] Error 2 make: *** 正在等待未完成的任务.... gcc -o scripts/mod/modpost scrip
这是一个 Makefile 编译错误,其中一个目标 dtbs 编译失败。它可能是由于编译器找不到相关的依赖项或者源代码文件出现错误导致的。
你可以尝试检查 Makefile 文件中的依赖关系、文件路径和编译器选项是否正确。另外,你也可以检查是否缺少某些依赖库或者源代码文件。
如果你无法解决这个错误,可以尝试在编译命令中添加 -k 选项,这样会忽略错误并继续编译其他目标。
阅读全文