赞
踩
#include<linux/module.h> #include<linux/init.h> #include<linux/kernel.h> static int helloworld_init(void){ printk("helloworld!\n"); return 0; } static void helloworld_exit(void){ printk("helloworld bye!\n"); } module_init(helloworld_init); module_exit(helloworld_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("ZSY"); MODULE_VERSION("V1.0");
# 这两个export只对当前终端有效
export ARCH=arm64
export CROSS_COMPILE=/home/topeet/source/linux/rk356x_linux/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
obj-m += helloworld.o
KDIR := /home/topeet/source/linux/rk356x_linux/kernel
PWD ?= $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers *.order
在Linux源码的顶层目录下,有一个Makefile文件,这个Makefile文件控制着Linux的编译流程。也叫做顶层Makefile文件。
在顶层Makefile中有ARCH和CROSS_COMPILE变量。如果我们在顶层Makefile中固定了这俩个变量的值,就不用在编译ko文件的时候再次设置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。