小编Kay*_*Kay的帖子

如何下载旧的不受支持的软件包,例如内核头文件?

我正在使用现在不受支持的 Jaunty。但是,我也在运行一个我希望编程的旧的不受支持的内核。

我正在尝试在内核 2.6.21 中进行新系统调用,其中一个新系统调用使用“sys_write”函数,但要使用此函数,我意识到必须根据 2.6.21 版本安装内核头文件。

我试过“apt-get install linux-headers-'uname -r'”、“apt-cache search linux-headers-$(uname -r)”

但我找不到任何东西..

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/syscalls.h>
#include <linux/fcntl.h>
#include <asm/uaccess.h>
Run Code Online (Sandbox Code Playgroud)

另外,上面的头文件是我想要的。

我如何获取现在不受支持且不在当前存储库中的内容的内核头文件?

installation package-management programming kernel

7
推荐指数
2
解决办法
7620
查看次数

如何正确使用内核头文件?

我写了一个非常简单的内核编程源代码:

#include <linux/kernel.h>
#include <linux/fcntl.h>
#include <linux/init.h>

static int __init(void){
    sys_open("ee.c", O_RDONLY);
Run Code Online (Sandbox Code Playgroud)

但是由于内核源代码(现在真正执行了)位于主文件夹中,因此发生了以下错误。即使我做了这样的符号链接。

rm -rf /usr/include/linux
rm -rf /usr/include/asm

ln -s /home/linux-2.6.21/include/linux /usr/include/linux
ln -s /home/linux-2.6.21/include/asm-i386 /usr/include/asm
Run Code Online (Sandbox Code Playgroud)

 

In file included from /usr/include/asm/fcntl.h:1,  
             from /usr/include/linux/fcntl.h:4,  
             from v.c:2:  
/usr/include/asm-generic/fcntl.h:120: error: expected specifier-qualifier-list before ‘off_t’  
/usr/include/asm-generic/fcntl.h:143: error: expected specifier-qualifier-list before ‘loff_t’  
Run Code Online (Sandbox Code Playgroud)

在使用不同文件夹的内核头文件之前我需要做什么/usr/include以及为什么会发生这种类型的错误?

我也做了

rm -rf /usr/include/asm
ln -s /home/linux-2.6.21/include/asm-i386 /usr/include/asm
Run Code Online (Sandbox Code Playgroud)

#include <linux/syscall.h> 我是stucked ....
这是完整的错误消息。我想内核头文件是格外disinformationed ..

In file included from /usr/include/linux/syscalls.h:61,
                 from vv.c:4:
/usr/include/linux/list.h:959:2: warning: #warning "don't include kernel headers …
Run Code Online (Sandbox Code Playgroud)

kernel

1
推荐指数
1
解决办法
5381
查看次数