sách gpt4 ai đã đi

linux - 驱动/模块交叉编译

In lại 作者:塔克拉玛干 更新时间:2023-11-03 01:42:04 37 4
mua khóa gpt4 Nike

我正在尝试为基于 arm 的板交叉编译驱动程序。在 make 文件中,包含文件的搜索路径是主机内核的路径,即它指向 ubuntu 附带的 linux 头文件。我在主机系统(i7/ubuntu)上也有目标板的内核源代码树。我的问题是交叉编译需要哪个包含路径( native 系统的 linux 头文件路径或板的内核源代码树的路径?同样的事情是否适用于包括驱动程序在内的所有模块?

1 Câu trả lời

这是树外驱动程序的 Makefile。指定的体系结构、工具链和内核目录:

ifneq ($(KERNELRELEASE),)
# We were called by kbuild

obj-m += fpgacam.o

else # We were called from command line

KDIR := path/to/your/target/kernel
PWD := $(shell pwd)
CROSS=arm-none-linux-gnueabi-

mặc định:
@echo ' Building Cam drivers for 2.6 kernel.'
@echo ' PLEASE IGNORE THE "Overriding SUBDIRS" WARNING'
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) ARCH=arm CROSS_COMPILE=$(CROSS) modules

install:
./do_install.sh *.ko

endif # End kbuild check
######################### Version independent targets ##########################

clean:
rm -f -r *.o *.ko .*cmd .tmp* core *.i

当从模块目录调用 make 时,会采用命令行路径,并使用 make -C make 重定向到内核目录构建系统。内核构建系统然后传递给它的不同变量返回到模块目录,其中包含所有设置(包括路径、工具链等..)以编译模块。第二次通过 Makefile 时,采用了 kbuild 路径,并像在树中一样构建模块。

关于linux - 驱动/模块交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743226/

37 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com