如何修复内核模块编译中的“ getrandom”隐式声明

时间:2018-06-20 14:54:01

标签: c linux-kernel debian

我正在尝试创建一个内核模块,并且我希望使用getrandom从/ dev / urandom访问安全随机数。我在获取允许该功能的功能时遇到问题。 Make不会完成,并返回以下错误:

implicit declaration of function 'getrandom' [-Werror=implicit-function-declaration]

我需要怎么做才能解决此问题?


我已经遵循this指南,了解如何从sid存储库更新我的glibc库。在终端中运行ldd --version将返回以下信息:

ldd (Debian GLIBC 2.27-3) 2.27


hello-2.c

#define MODULE 
#define LINUX 
#define __KERNEL__

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/random.h>

static int hello_2_init(void)
{
 printk("Hello, world 2\n");
 int rnd = 0;
 void *buf;
 getrandom(rnd, 256, 0);
 printk("Number is %d ", rnd);
 return 0;
}

预期结果将是getrandom,不会阻止我的程序编译为内核mod并返回随机int,但当前结果是致命的编译错误。

0 个答案:

没有答案