我正在使用现在不受支持的 Jaunty。但是,我还在运行一个较旧的不受支持的内核,我希望对其进行编程。
我正在尝试在内核 2.6.21 中进行新的系统调用,其中一个新系统调用使用“sys_write”函数,但要使用此功能,我意识到我必须根据 2.6.21 版本安装内核头文件。
我试过“apt-get 安装 linux-headers-‘uname -r’”,“apt-cache 搜索 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>
另外,上面的头文件就是我想要的。
我如何获取现在不受支持且不在当前存储库中的某些内核头文件?
答案1
我认为 Ubuntu Feisty (7.04) 上使用的是内核 2.6.21。
从您的评论来看,您说您正在使用 Ubuntu Jaunty - 这很奇怪,因为 Jaunty 的内核是 2.6.28。
Feisty 和 Jaunty 都不再受支持,您将无法通过“sudo apt-get”方法安装任何软件包(例如标头)。
强烈建议您至少使用 10.04 版本替换您的安装。
Jaunty 和 Feisty 都不再位于官方 ubuntu 档案中。
但是,所有 Ubuntu 版本的所有原始软件包信息都可以找到这里。
为了追踪原始 .deb 软件包安装需要一些侦查工作。
我将以搜索 2.6.28 Jaunty linux 标头为例开始。
Linux Headers 位于主存储库中。因此,首先下载主存储库
您需要提取源文件。
用您最喜欢的编辑器查看该文件。
您正在寻找 linux-headers 二进制文件 - 请参阅此屏幕截图
你会看到我在 linux-headers 下划了线 - 你会看到包名称以及需要找到该包的位置
接下来将浏览器指向要查找包的文件夹的开头
http://archive.ubuntu.com/ubuntu/
导航到该包名称 - 在本例中
池/主/l/linux
在该文件夹中,您将看到每个版本的所有原始 deb 文件。因此,对于 Jaunty,您将查找以 linux-headers-2.6.28 开头的文件。
现在你会看到所有相关文件 - 根据您的架构加载 deb 文件(64 位以 amd64.deb 结尾,32 位以 i386.deb 结尾)以及以“all.deb”结尾的头文件
对于 Feisty 包,操作与上述类似 - 但这次从 Feisty 发行版的源文件开始。
答案2
修改你的sources.list
指向
http://old-releases.ubuntu.com/
而不是当前的
http://<country-code>.ubuntu.com/