在新安装的虚拟机中,我在编译x86架构的内核时遇到此错误:
$ Could not mmap file: vmlinux
$ make: *** [vmlinux] Error 1
这是我第一次看到它。
我已将/proc/sys/kernel/shmmax
的大小增加到128MB,但它没有解决问题。有什么想法吗?
谢谢! :)
答案 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}
}
对我有用!