在Makefile中交叉编译内核模块问题

在Makefile中交叉编译内核模块问题,makefile,cross-compiling,embedded-linux,yocto,kernel-module,Makefile,Cross Compiling,Embedded Linux,Yocto,Kernel Module,我正在intelX86_64主机上工作,并试图为ARM嵌入式主板体系结构交叉编译一个linux模块 我用yocto项目为我的董事会制作了一个linux操作系统,并构建了sdk交叉编译器 这是我运行SDK环境脚本时得到的结果: arm poky linux gnueabi gcc-march=armv7-a-marm-mfpu=neon -mfloat abi=hard-mcpu=cortex-a5--sysroot=/opt/poky-atmel/2.5.3/sysroot/cortexa5hf

我正在intelX86_64主机上工作,并试图为ARM嵌入式主板体系结构交叉编译一个linux模块

我用yocto项目为我的董事会制作了一个linux操作系统,并构建了sdk交叉编译器

这是我运行SDK环境脚本时得到的结果:

arm poky linux gnueabi gcc-march=armv7-a-marm-mfpu=neon -mfloat abi=hard-mcpu=cortex-a5--sysroot=/opt/poky-atmel/2.5.3/sysroot/cortexa5hf-neon-poky-linux-gnueabi

基于此,这是我制作的Makefile:

MYY_KERNEL_DIR ?= /home/gaston/linux4sam/poky/build-microchip/tmp/work/sama5d27_som1_ek_sd-poky-linux-gnueabi/linux-at91/4.14+gitAUTOINC+b733e44da2-r0/image/lib/modules/4.14.73-linux4sam-6.0-dirty/

ARCH ?= armv7-a

CROSS_COMPILE ?= arm-poky-linux-gnueabi-gcc

obj-m += uleds.o

all:
        make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) -C $(MYY_KERNEL_DIR) modules

clean:
        make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) -C $(MYY_KERNEL_DIR) clean
这是运行MAKE命令时出现的错误:

make ARCH=arm CROSS\u COMPILE=arm poky linux gnueabi- M=/home/gaston/shit-C /home/gaston/linux4sam/poky/build microchip/tmp/work/sama5d27_som1_ek_sd-poky-linux-gnueabi/linux-at91/4.14+gitautinc+b733e44da2-r0/image/lib/modules/4.14.73-linux4sam-6.0-dirty/ 模块

make[1]:输入目录 “/home/gaston/linux4sam/poky/build microchip/tmp/work/sama5d27_som1_ek_sd-poky-linux-gnueabi/linux-at91/4.14+gitautinc+b733e44da2-r0/image/lib/modules/4.14.73-linux4sam-6.0-dirty” 生成[1]:***没有规则生成目标“模块”。停下来

make[1]:离开目录 “/home/gaston/linux4sam/poky/build microchip/tmp/work/sama5d27_som1_ek_sd-poky-linux-gnueabi/linux-at91/4.14+gitautinc+b733e44da2-r0/image/lib/modules/4.14.73-linux4sam-6.0-dirty” 生成文件:10:目标“全部”的配方生成失败:**[all]错误2


我犯了什么错误?我怎样才能解决这个问题?谢谢

也许您的内核没有正确编译(在Yocto的tmp目录上)。转到内核目录,为您的环境编写源代码,键入
make
,然后重试编译您的模块。我解决了问题,我的内核路径目录错误。现在它工作了,也许你的内核没有正确编译(在Yocto的tmp目录下)。转到内核目录,为您的环境编写源代码,键入
make
,然后重试编译您的模块。我解决了问题,我的内核路径目录错误。现在它开始工作了