微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未定义的引用系统调用添加到内核

在将系统调用添加到内核之后,我尝试编译内核。

它跑了2个小时,最后抛出下面提到的错误[截图]

未定义的引用

任何想法发生了什么。

srv.sys如何根据底层文件系统决定原始模式还是核心模式?

Linux内核在启动时执行的第一个操作是什么?

Linux:好友系统可用内存

如何限制接收一个普通的networking连接多播到根用户

如何知道我从哪里启动

内核3.9.3

接下来的步骤是 –

从www.kernel.org获取内核代码。 wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

使用命令'tar xvfj XXX'将其上传文件夹例如:/ root / kernel tar xvfj linux-3.3.1.tar.bz2

编辑文件“/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl”添加新行

312 64 husky1 sys_husky1

Eidt文件“/root/kernel/linux-3.3.1/include/linux/syscalls.h”添加新的函数声明asmlinkage long sys_husky1(int fd);

之前的行“#endif”

在“/root/kernel/linux-3.3.1/arch/x86/kernel”(我正在使用x86 cpu)下添加一个新的c文件。例如:

编辑“/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile”添加一行“obj-y + = husky.o”

goto /root/kernel/linux-3.3.1文件夹并运行命令“make -j8”

Windows内核ReadProcessMemory()/ WriteProcessMemory()?

从Linux内核模块的文件描述符获取文件名/path?

获取它的所有Windows内核对象和安全权限

在Linux内核中使用模块覆盖function

为什么我们只能直接访问PCI物理地址中的640k-1MB区域?

在syscall_64.tbl文件搜索“sys_hello_rana”。 我猜你在syscall表中将你的系统调用命名为“sys_hello_rana”,但是当你定义它的时候你使用了一个不同的名称(sys_husky1)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐