Ошибка: не удалось mmap файл: vmlinux
В недавно установленной виртуальной машине я получаю эту ошибку при компиляции ядра для архитектуры x86:
$ Could not mmap file: vmlinux
$ make: *** [vmlinux] Error 1
Я впервые это вижу. Я увеличил размер /proc/sys/kernel/shmmax
до 128 МБ, но это не решает проблему. Есть идеи?
Спасибо!:)
2 ответа
У меня была такая же проблема при компиляции ядра в общей папке виртуальной коробки. Ошибка исходит от mmap_file()
функция в исходном файле scripts/sortextable.c
, Более того, все функции mmap завершились ошибкой с ошибкой EINVAL в общей папке.
Я исправил это, скопировав исходники linux в не общую папку, такую как /home/Name/linux, и скомпилировал там.
У меня была такая же проблема при компиляции ядра Linux в общей папке VirtualBox, и я немного исправил функцию sortextable в строке 104 (+/-) скрипта link-vmlinux.sh, локализованного в каталоге scripts/
Я изменяю это:
sortextable()
{
${objtree}/scripts/sortextable ${1}
}
за это:
sortextable()
{
cp ${1} /tmp/.${1}
scripts/sortextable /tmp/.${1}
cp /tmp/.${1} ${1}
}
И работает на меня!