我正在尝试创建一个内核模块,并且我希望使用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,但当前结果是致命的编译错误。