明远智睿技术论坛
标题:
尝试编译一个简单的hello模块,成功,记录一下
[打印本页]
作者:
钟宇泉
时间:
2020-4-21 19:46
标题:
尝试编译一个简单的hello模块,成功,记录一下
本帖最后由 钟宇泉 于 2020-4-22 11:00 编辑
Makefile 如下
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
KDIR :=/home/linkorTech/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0
all:
make -C $(KDIR) M=$(PWD) modules ARCH=armCROSS_COMPILE=environment-setup-cortexa7hf-neon-poky-linux-
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif
hello.c如下
#include <linux/kernel.h>
#include <linux/module.h>
static int __init module_init(void)
{
printk("Hello, module is installed !\n");
return 0;
}
static void __exit module_cleanup(void)
{
printk("Good-bye, module was removed!\n");
}
module_init(module_init);
module_exit(module_cleanup);
MODULE_LICENSE("GPL");
我这个makefile是哪错了么,希望可以指导一下,系统编译方面还是一个新手。
作者:
钟宇泉
时间:
2020-4-22 11:00
在群里的帮助下编译成功了,感谢MYZR林远楠和MYZR张附上hello.c
#include <linux/module.h> //所有模块都需要的头文件
#include <linux/init.h> // init&exit相关宏
static int __init hello_init (void)
{
printk("Hello china init/n");
return 0;
}
static void __exit hello_exit (void)
{
printk("Hello china exit/n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
附上 MAKEFILE
ifneq ($(KERNELRELEASE),)
obj-m += hello.o
else
KERNELDIR:=/home/linkorTech/my-work/02_Source/linux-4.1.15
all:
make -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif
[attach]710[/attach]
环境变量设置好,ARCH和CROSS_COMPILE不用设置,交叉编译工具的脚本默认就设置好ARCH和CROSS_COMPILE
作者:
myzr_soft
时间:
2020-4-22 11:17
请各位悉知编译驱动模块前,确保linux系统已经编译过并生成过Image或者zImage,
驱动编译也可以参考
http://bbs.myzr.com.cn/forum.php ... &extra=page%3D1
作者:
钟宇泉
时间:
2020-4-22 11:52
myzr_soft 发表于 2020-4-22 11:17
请各位悉知编译驱动模块前,确保linux系统已经编译过并生成过Image或者zImage,
驱动编译也可以参考http:// ...
收到!!!!!
欢迎光临 明远智睿技术论坛 (http://bbs.myzr.com.cn/)
Powered by Discuz! X3.2