Linux kernel Can';t访问open/arch/x86/syscalls/syscall\u 32.tbl
当我在转换到内核后编写这个命令时。当我编译它时,它没有显示任何列表。是否有其他命令打开列表Linux kernel Can';t访问open/arch/x86/syscalls/syscall\u 32.tbl,linux-kernel,system-calls,Linux Kernel,System Calls,当我在转换到内核后编写这个命令时。当我编译它时,它没有显示任何列表。是否有其他命令打开列表 open /arch/x86/syscalls/syscall_32.tbl 缺陷 从文件路径中删除第一个/字符(应该是路径) 检查文件 现在,使用file工具检查此文件是否存在: $ file arch/x86/syscalls/syscall_32.tbl 打印文件 如果文件存在,您可以使用cat或less命令打印它。例如: $ less arch/x86/syscalls/syscall_32
open /arch/x86/syscalls/syscall_32.tbl
缺陷
从文件路径中删除第一个/
字符(应该是路径)
检查文件
现在,使用file
工具检查此文件是否存在:
$ file arch/x86/syscalls/syscall_32.tbl
打印文件
如果文件存在,您可以使用cat
或less
命令打印它。例如:
$ less arch/x86/syscalls/syscall_32.tbl
您也可以在编辑器中打开此文件,例如使用vi
命令
如果文件不存在
此文件附带Linux内核源代码。它是在内核3.3中通过提交添加的。因此,您应该使用内核版本3.3或更高版本来创建此文件
如何使用syscall_32.tbl
文件下载内核
从via下载vanilla主线内核源代码(使用来自的说明):
现在,您应该确定要使用哪个版本。这取决于您的任务(您计划如何进一步使用此内核)。如果打算在PC Linux发行版上使用,我建议选择与您的发行版内核最接近的版本:
$ uname -a
通过发出下一个Git命令,可以查看所有可用版本:
$ git tag
现在您可以切换到您选择的版本(在上面命令的输出中)。例如,您可以像这样切换到v3.3
:
$ git checkout v3.3
切换到版本3.3或更高版本,您的内核源代码将具有arch/x86/syscalls/syscall_32.tbl
文件:
$ less arch/x86/syscalls/syscall_32.tbl
如果文件或目录不存在,那么如何安装或创建它?请参阅下面的答案。我下载了3.3内核,但它仍然不工作,并显示任何系统调用列表。我添加了有关如何获取包含
syscall\u 32.tbl
文件的正确内核源代码的说明。3.3不可能没有syscall\u 32.tbl
,这一定是个错误。但我建议你选择最新的版本,可能是一个<代码>v3.18将是一个不错的选择。或者,如果您想要已经有syscall\u 32.tbl
的最低LTS版本,请使用v3.4
。
$ less arch/x86/syscalls/syscall_32.tbl