使用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 ,该如何解决
时间: 2023-09-14 15:03:01 浏览: 704
ubuntu20.04+Qt5.12.12+aarch64-linux-gnu交叉编译平台设置详细教程
5星 · 资源好评率100%
这个错误是因为缺少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工具安装在其他位置,请相应地更改路径。
希望这个解决方法可以帮助您解决问题。
阅读全文