首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我/proc/iomem中的条目都是00000000-00000000?

为什么我/proc/iomem中的条目都是00000000-00000000?
EN

Unix & Linux用户
提问于 2017-04-10 06:36:46
回答 2查看 1.6K关注 0票数 3

I /proc/iomem中的所有尝试都是00000000-00000000。

/proc/ioports也是如此。他们都是万-万

比如:

代码语言:javascript
复制
00000000-00000000 : reserved
00000000-00000000 : System RAM
00000000-00000000 : reserved

我正在运行4.103-1-ARCH x86_64

任何关于如何自己找出原因的建议也会受到欢迎,谢谢。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-04-10 06:47:19

尝试在命令前面使用sudo,如sudo less /proc/io{mem,ports}

票数 7
EN

Unix & Linux用户

发布于 2017-04-12 00:53:26

补丁解释了这种现象。

代码语言:javascript
复制
diff --git a/kernel/resource.c b/kernel/resource.c
index 2e78ead..9b5f044 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -105,16 +105,25 @@
{
    struct resource *root = m->private;
    struct resource *r = v, *p;
+   unsigned long long start, end;
    int width = root->end < 0x10000 ? 4 : 8;
    int depth;

    for (depth = 0, p = r; depth < MAX_IORES_LEVEL; depth++, p = p->parent)
        if (p->parent == root)
            break;
+
+   if (file_ns_capable(m->file, &init_user_ns, CAP_SYS_ADMIN)) {
+       start = r->start;
+       end = r->end;
+   } else {
+       start = end = 0;
+   }
+
    seq_printf(m, "%*s%0*llx-%0*llx : %s\n",
            depth * 2, "",
-           width, (unsigned long long) r->start,
-           width, (unsigned long long) r->end,
+           width, start,
+           width, end,
            r->name ? r->name : "<BAD>");
    return 0;
}
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/358050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档