错误:无法mmap文件:vmlinux

时间:2014-05-29 15:26:58

标签: linux kernel mmap

在新安装的虚拟机中,我在编译x86架构的内核时遇到此错误:

$ Could not mmap file: vmlinux

$ make: *** [vmlinux] Error 1

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

谢谢! :)

2 个答案:

答案 0 :(得分:20)

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

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

答案 1 :(得分:11)

我在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}
}

对我有用!