【发布时间】:2014-05-29 15:26:58
【问题描述】:
在新安装的虚拟机中,为 x86 架构编译内核时出现此错误:
$ Could not mmap file: vmlinux
$ make: *** [vmlinux] Error 1
这是我第一次看到它。
我已将/proc/sys/kernel/shmmax 的大小增加到 128MB,但这并没有解决问题。有什么想法吗?
谢谢! :)
【问题讨论】:
在新安装的虚拟机中,为 x86 架构编译内核时出现此错误:
$ Could not mmap file: vmlinux
$ make: *** [vmlinux] Error 1
这是我第一次看到它。
我已将/proc/sys/kernel/shmmax 的大小增加到 128MB,但这并没有解决问题。有什么想法吗?
谢谢! :)
【问题讨论】:
我在虚拟盒共享文件夹中编译内核时遇到了同样的问题。错误来自源文件scripts/sortextable.c 中的mmap_file() 函数。
此外,所有 mmap 函数都因共享文件夹中的 errno EINVAL 而失败。
我通过将 linux 源代码复制到非共享文件夹(如 /home/Name/linux 并在那里编译)来修复它。
【讨论】:
我在此处的 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}
}
对我有用!
【讨论】:
sortextable not found。可能脚本路径需要调整。
${objtree}scripts/sortextable /tmp/.${1}?这应该工作