Вчера я получил обновление ядра и после перезагрузки, VirtualBox перестала работать.
Вот моя системная информация (после обновления ядра):
matteo@workstation:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
matteo@workstation:~$ uname -a
Linux workstation 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Я установил VirtualBox давно с
sudo apt install linux-headers-$(uname -r)
sudo apt install virtualbox-dkms virtualbox virtualbox-qt
, используемым ежедневно, и никогда не возникало проблем с обновлениями ядра. Ошибка, которую я получаю сейчас, это
matteo@workstation:~$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Exec format error
matteo@workstation:~$ dmesg | tail -n 1
[ 1413.167311] vboxdrv: version magic '4.4.0-116-generic SMP mod_unload modversions ' should be '4.4.0-116-generic SMP mod_unload modversions retpoline '
. Я нашел сообщение на форуме с этим сообщением об ошибке здесь с трех дней назад, к сожалению без разрешения. Поэтому я попытался удалить пакеты VirtualBox из репо Ubuntu и установить последнюю версию 5.2, используя эту процедуру. Однако даже после перезагрузки машины ошибка остается.
Что я могу сделать в этом случае?
Я столкнулся с той же проблемой. После обновления ядра моя версия gcc показывалась как 5.4.1. Уменьшение этой версии до 5.4.0 помогло мне получить retpoline для модуля ядра vboxdrv.
Следующие шаги из этой ссылки помогли мне решить мою проблему:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:ubuntu-toolchain-r/test
#Select gcc version 5 using update-alternatives manually
sudo update-alternatives --config gcc
После этих шагов gcc - -version должно быть (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609
Затем очистите все новые заголовки linux (4.4.0-116)
sudo apt-get purge linux-headers-4.4.0-116 linux-headers-4.4.0-116-generic linux-image-4.4.0-116-generic linux-image-extra-4.4.0-116-generic linux-signed-image-4.4.0-116-generic
Снова установите их
sudo apt-get install linux-generic linux-signed-generic
Затем переустановите виртуальный бокс, на этот раз я установил последний виртуальный бокс-5.2, но версия виртуального бокса по умолчанию 5.0 также должна работать нормально.
sudo apt-get purge virtualbox-dkms virtualbox virtualbox-qt
sudo apt-get install virtualbox-5.2
И у нас есть поддержка retpoline в последнем модуле
anirudh@AHDRMD34579:~$ modinfo vboxdrv
filename: /lib/modules/4.4.0-116-generic/misc/vboxdrv.ko
version: 5.2.6 r120293 (0x00290000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 4880B21EFF1B605D6402982
depends:
vermagic: 4.4.0-116-generic SMP mod_unload modversions retpoline
parm: force_async_tsc:force the asynchronous TSC mode (int)
Недавно у меня была эта проблема, и здесь был задан вопрос.
Отчет об ошибке находится в моей ссылке.
Virtualbox неожиданно прекратил работу
Я думаю, что общий консенсус заключается в загрузке в ядро 4.4 до тех пор, пока проблема не будет исправлена. (Это, безусловно, самое простое решение для меня.)
Связанная проблема, указанная в комментарии @ricab, была прослежена до проблемы с новым ядром, требующим определенного уровня версии gcc для успешной компиляции модулей ядра.
В моей системе обновление gcc было вытолкнуто ПОСЛЕ обновления ядра, в результате чего перекомпилирование завершилось с ошибкой.
Как только основная причина была обнаружена, я смог исправить эту систему, uninistalling и переустановку нового ядра. Это фиксировало мои графические драйверы, но мне пришлось выпустить sudo /sbin/vboxconfig, чтобы исправить виртуальный бокс после загрузки в новое ядро.
Моя система - 14.04, поэтому я не могу сообщить вам о правильной версии gcc для вашего 16.04 , но это обсуждается на https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937
Я столкнулся с той же проблемой. После обновления ядра моя версия gcc показывалась как 5.4.1. Уменьшение этой версии до 5.4.0 помогло мне получить retpoline для модуля ядра vboxdrv.
Следующие шаги из этой ссылки помогли мне решить мою проблему:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:ubuntu-toolchain-r/test
#Select gcc version 5 using update-alternatives manually
sudo update-alternatives --config gcc
После этих шагов gcc - -version должно быть (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609
Затем очистите все новые заголовки linux (4.4.0-116)
sudo apt-get purge linux-headers-4.4.0-116 linux-headers-4.4.0-116-generic linux-image-4.4.0-116-generic linux-image-extra-4.4.0-116-generic linux-signed-image-4.4.0-116-generic
Снова установите их
sudo apt-get install linux-generic linux-signed-generic
Затем переустановите виртуальный бокс, на этот раз я установил последний виртуальный бокс-5.2, но версия виртуального бокса по умолчанию 5.0 также должна работать нормально.
sudo apt-get purge virtualbox-dkms virtualbox virtualbox-qt
sudo apt-get install virtualbox-5.2
И у нас есть поддержка retpoline в последнем модуле
anirudh@AHDRMD34579:~$ modinfo vboxdrv
filename: /lib/modules/4.4.0-116-generic/misc/vboxdrv.ko
version: 5.2.6 r120293 (0x00290000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 4880B21EFF1B605D6402982
depends:
vermagic: 4.4.0-116-generic SMP mod_unload modversions retpoline
parm: force_async_tsc:force the asynchronous TSC mode (int)
Недавно у меня была эта проблема, и здесь был задан вопрос.
Отчет об ошибке находится в моей ссылке.
Virtualbox неожиданно прекратил работу
Я думаю, что общий консенсус заключается в загрузке в ядро 4.4 до тех пор, пока проблема не будет исправлена. (Это, безусловно, самое простое решение для меня.)
Связанная проблема, указанная в комментарии @ricab, была прослежена до проблемы с новым ядром, требующим определенного уровня версии gcc для успешной компиляции модулей ядра.
В моей системе обновление gcc было вытолкнуто ПОСЛЕ обновления ядра, в результате чего перекомпилирование завершилось с ошибкой.
Как только основная причина была обнаружена, я смог исправить эту систему, uninistalling и переустановку нового ядра. Это фиксировало мои графические драйверы, но мне пришлось выпустить sudo /sbin/vboxconfig, чтобы исправить виртуальный бокс после загрузки в новое ядро.
Моя система - 14.04, поэтому я не могу сообщить вам о правильной версии gcc для вашего 16.04 , но это обсуждается на https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937