Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux LKM编译-modpost语法错误_Linux_Linux Kernel_Syntax Error - Fatal编程技术网

Linux LKM编译-modpost语法错误

Linux LKM编译-modpost语法错误,linux,linux-kernel,syntax-error,Linux,Linux Kernel,Syntax Error,我目前正在尝试编译一个简单的内核模块(只打印HelloWorld)。但每次我试图编译它时,都会出现错误: 我的makefile如下所示: obj-m +=mod_init.o mod_init-y += Tests/breakpoint.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules -w @echo "Modules build

我目前正在尝试编译一个简单的内核模块(只打印HelloWorld)。但每次我试图编译它时,都会出现错误:

我的makefile如下所示:

    obj-m +=mod_init.o
    mod_init-y += Tests/breakpoint.o



    all:
            make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules -w
            @echo "Modules build"

    clean:
            make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
“保持清洁”工作完美无瑕,但“制造”总是以这个错误结束

我的系统在ARM上运行,有一个自编译内核(kernel.org中的Linux 4.11.4),我使用第二台pc和以下命令交叉编译它:

PC2:

复制后的zImage(根据uname-a引导) 并将源文件夹复制到ARM板上的/usr/src/)。在那里,我执行了以下操作:

臂板:

    make modules_install
    make check_headers
    make headers_install
在这之后,我尝试执行我的makefile,它不会在没有错误的情况下结束。 使用“make V=1”执行该命令会打印此信息(除上述错误外):

make[1]:输入目录“/usr/src/linux-4.11.4” test-e include/generated/autoconf.h-a-e include/config/auto.conf |(\ 回声>&2

echo>&2“错误:内核配置无效。”\

echo>&2“缺少include/generated/autoconf.h或include/config/auto.conf。”\

echo>&2“在内核src上运行'makeoldconfig&&makeprepare'来修复它。”\

回声>&2\ /银行标识代码(bin/false)

但是这些文件位于/usr/src/linux-4.11.4/include/

搜索这个问题时,我发现了这个(goo.gl/IZHp4j),但是重写makefile不会改变任何东西

有人知道如何解决这个问题吗?我发现的唯一问题是没有安装头(除了我复制的内核源代码,/usr/src中没有任何内容)或者makefile中不允许使用符号


提前谢谢你

你能检查一下
/lib/modules/$(shell uname-r)/build
板上是否指向
/usr/src
?你也需要
在arm板上导出ARCH=arm
,以及
做一些解图
。谢谢你的回答。@vtha:构建并源代码都指向/usr/src/\LinuxVersion”build->/usr/src/linux-4.11.4“source->/usr/src/linux-4.11.4”@0andriy:我稍后会用一个新的编译版本来测试这个问题。只是用当前的(已经安装的版本)尝试了一下,但是除了安装/检查一个模块之外,这不会做任何事情。我为什么要做“make xxx\u config”呢"? 因为配置文件只是与文件夹中的所有内容一起复制的?(不得不将我的答案分成两部分,因为我只能@1个用户…)
    export ARCH=arm
    export CROSS_COMPILE=arm-none-eabi-
    make mrproper
    make exynos_defconfig (exynos is my cpu on ARM + make menuconfig for my needs)
    make zImage (needed for my board)
    make modules
    make modules_install
    make check_headers
    make headers_install