错误:无法mmap文件:vmlinux

use*_*391 11 linux kernel mmap

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

$ Could not mmap file: vmlinux

$ make: *** [vmlinux] Error 1
Run Code Online (Sandbox Code Playgroud)

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

谢谢!:)

Jur*_*sic 20

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

我修复了它将linux源复制到非共享文件夹,如/ home/Name/linux并在那里编译.

  • 非常感谢你. (4认同)

小智 11

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

我改变了这个:

sortextable()
{
        ${objtree}/scripts/sortextable ${1}        
}
Run Code Online (Sandbox Code Playgroud)

为了这:

sortextable()
{
    cp ${1} /tmp/.${1}
    scripts/sortextable /tmp/.${1}
    cp /tmp/.${1} ${1}
}
Run Code Online (Sandbox Code Playgroud)

并为我工作!

  • 为什么不是 `${objtree}scripts/sortextable /tmp/.${1}`?那应该有效 (2认同)