尝试在内核编译过程中交叉编译驱动程序;驱动程序无法编译

问题描述 投票:0回答:1

我正在尝试学习 Linux 并使用我的简单驱动程序编译内核。

不幸的是,我在日志中没有看到驱动程序,并且未创建编译文件。

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
 
/* Module Init function */
static int __init hello_world_init(void)
{
    printk(KERN_INFO "This is the Simple Module\n");
    printk(KERN_INFO "Kernel Module Inserted Successfully...\n");
    return 0;
}
/* Module Exit function */
static void __exit hello_world_exit(void)
{
    printk(KERN_INFO "Kernel Module Removed Successfully...\n");
}
 
module_init(hello_world_init);
module_exit(hello_world_exit);
 
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("A simple hello world driver");
MODULE_VERSION("2:1.0");

user@user-VirtualBox:~/linux/drivers/misc$ ls | grep answer
answer.c

生成文件

user@user-VirtualBox:~/linux/drivers/misc$ nano Makefile 

odj-$(CONFIG_ANSWER)            += answer.o

Kconfig

user@user-VirtualBox:~/linux/drivers/misc$ nano Kconfig

config ANSWER
        tristate "Add the answer"
        help
                my module

.配置

# Misc devices
CONFIG_ANSWER=y

编译内核

$ sudo make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs

我在命令输出中没有看到我的文件。 驱动程序也未编译。我将驱动程序添加到菜单中;显示在.config中。

我尽可能简化了驱动程序。如果其中有错误,它会出现在输出中吗?

我也尝试过更改权限。

-rw-rw-r-- 1 user user   955 Jul 31 17:52 answer.c

我做错了什么?

linux-kernel raspberry-pi linux-device-driver cross-compiling
1个回答
0
投票

您的 makefile 中有一个拼写错误。

odj-$(CONFIG_ANSWER)            +=answer.o

应该是

obj-$(CONFIG_ANSWER)            += answer.o
© www.soinside.com 2019 - 2024. All rights reserved.