我正在尝试运行一个在gem5 FS模式下使用pagemap的应用程序。但我无法在gem5中使用pagemap。它抛出错误 -
“assert(pagemap> = 0)失败”
代码行是:
int pagemap = open("/proc/self/pagemap", O_RDONLY);
assert(pagemap >= 0);
此外,如果我尝试使用sudo在gem5终端上运行我的应用程序,它会抛出错误 -
找不到sudo命令
我如何在gem5中使用sudo?
这些问题不是特定于gem5,而是特定于图像/ Linux,并且可能发生在任何模拟器或真实硬件上。因此,我建议您完全从等式中删除gem5,并在下次询问Linux或图像特定问题,准确说出您正在使用的图像,内核配置,并提供再现问题的最小C示例:这将极大地改善你得到帮助的概率。
我刚刚成功地完成了open("/proc/self/pagemap", O_RDONLY)
:aaz64上的this program和on this fs.py
setup,另见these comments。
如果任何文件不存在/proc/<pid>/pagemap
,请执行以下操作:
/proc
上。这通常使用以下类型的fstab
条目完成:
proc /proc proc defaults 0 0
但是你的init脚本也需要使用fstab
。
或者,您可以手动安装proc
:
mount -t proc proc proc/
你可能想确保安装/sys
和/dev
。git grep '"pagemap'
为了找到pagemap
字符串,这可能是创作点,在v4.18这导致我fs/proc/base.c
,其中包含:
#ifdef CONFIG_PROC_PAGE_MONITOR
REG("pagemap", S_IRUSR, proc_pagemap_operations),
#endif
所以确保设置CONFIG_PROC_PAGE_MONITOR
。sudo
:大多数嵌入式/模拟器图像没有它,你只需直接以root用户身份登录,默认情况下可以做任何事情。这可以通过传统的#
在提示中看到而不是$
。