简介
在linux开发系统上编译arm内核模块不同于本机,需要指定内核源码的位置、架构、编译套件
示例
Makefile文件内容
KERNELDIR := /home/用户名/ti-processor-sdk-linux/board-support/linux-4.4.12
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabihf-
obj-m += atemsys.o
all: modules
modules:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
clean:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules clean ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
本机内核模块
对比下区别 Makefile文件内容
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
obj-m += atemsys.o
all: modules
modules:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules_install
clean:
$(MAKE) -C $(KERNELDIR) M=$(shell pwd) modules clean