编译在linux arm核上运行的内核模块

简介

在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

你可能感兴趣的:(Linux,内核,arm,linux)