无法为 Devkit8000 制作 LDD

无法为 Devkit8000 制作 LDD

我正在尝试为 Devkit 8000 构建 Linux 设备驱动程序。我收到以下错误消息:

错误信息

当我尝试遵循它的指示时,我被问了一堆是/否问题,我不太明白。最后,我可以在 25 个不同的处理器之间进行选择(?):

处理器选择

这是我的生成文件:

ifeq ($(KERNELRELEASE),)

KERNELDIR = ~/sources/linux-3.2.6
PWD := $(shell pwd)
modules:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- -C $(KERNELDIR) M=$(PWD) modules

.PHONY: modules clean

else
# called from kernel build system: just declare what our modules are
obj-m := LED_timer.o
endif

我认为我的代码本身还不相关,而且我知道我的源代码充满了错误,你不想看到它,哈哈。

答案1

你还没有说你从哪里得到你正在使用的源代码,但显然.config它是无效的。这用于设置各种选项,例如处理器类型。这些选项实际上有数百个,彼此之间有着复杂的依赖关系(例如,您选择的处理器将影响您拥有的其他选择)。

香草源.config中没有;您需要提供或创建一个。 当来自先前版本并且必须更新时make oldconfig使用。.config有时这个过程不能完全自动化,你最终基本上会运行make config,它使用 CLI 界面;如果您尝试make oldconfig不进行配置,也可能会发生这种情况。

您应该查看更图形化的内容make menuconfig,以便更好地了解这一切。

然而,除非您知道自己在做什么,否则从零开始并尝试获得适合您的配置是不可能的。理想情况下,您可以从用于创建正在运行的内核的内核开始。如果您只是构建一个模块,则尤其如此;虽然您不需要构建实际的内核,但为了编译模块,必须知道要使用的内核是如何编译的。

希望您可以在/proc/config.gz目标系统上找到它。这不是磁盘文件,系统必须正在运行才能检索它。它是 gzip 压缩的

gunzip config.gz
mv config .config

应该做。将其复制到源代码树中并运行make menuconfig以添加要构建的模块的指令。

如果不存在,您将必须追踪所使用的配置。 另请注意,如果您正在构建模块,则需要使用完全相同的内核版本。

这是总体概述有关编译过程的信息(可能也有帮助),请先阅读 #2 和 3。

答案2

首先我们必须清除旧的配置,例如make mrproper.

之后重新运行make menuconfig。如果您明确选择了不需要的项目,.config 则不会创建。

相关内容