【问题标题】:Error: Could not mmap file: vmlinux错误:无法映射文件:vmlinux
【发布时间】:2014-05-29 15:26:58
【问题描述】:

在新安装的虚拟机中,为 x86 架构编译内核时出现此错误:

$ Could not mmap file: vmlinux

$ make: *** [vmlinux] Error 1

这是我第一次看到它。 我已将/proc/sys/kernel/shmmax 的大小增加到 128MB,但这并没有解决问题。有什么想法吗?

谢谢! :)

【问题讨论】:

    标签: linux kernel mmap


    【解决方案1】:

    我在虚拟盒共享文件夹中编译内核时遇到了同样的问题。错误来自源文件scripts/sortextable.c 中的mmap_file() 函数。 此外,所有 mmap 函数都因共享文件夹中的 errno EINVAL 而失败。

    我通过将 linux 源代码复制到非共享文件夹(如 /home/Name/linux 并在那里编译)来修复它。

    【讨论】:

    • 我在 Parallels Desktop 上也是如此。
    【解决方案2】:

    我在此处的 VirtualBox 共享文件夹上编译 linux 内核时遇到了同样的问题,我在脚本 link-vmlinux.sh 本地化在脚本/目录中的第 104 行 (+/-) 的函数 sortextable 中做了一些修复

    我改变这个:

    sortextable()
    {
            ${objtree}/scripts/sortextable ${1}        
    }
    

    为此:

    sortextable()
    {
        cp ${1} /tmp/.${1}
        scripts/sortextable /tmp/.${1}
        cp /tmp/.${1} ${1}
    }
    

    对我有用!

    【讨论】:

    • 这实际上是做什么的?
    • 只是shell脚本中的一个补丁,用来解决函数在特定文件中执行的问题。仅使用技巧在 /tmp 目录上执行此执行。正如我所说,这对我有用!
    • 这也对我有用。将整个源移动到本机 VM 文件夹的更简单的解决方案。
    • 好主意,但我得到了sortextable not found。可能脚本路径需要调整。
    • 为什么不${objtree}scripts/sortextable /tmp/.${1}?这应该工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2015-09-30
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多