Hier, j'ai reçu une mise à niveau du noyau et après le redémarrage, VirtualBox a cessé de fonctionner.
Voici mes informations système (après la mise à niveau du noyau):
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
J'ai installé VirtualBox il y a longtemps avec
Sudo apt install linux-headers-$(uname -r)
Sudo apt install virtualbox-dkms virtualbox virtualbox-qt
utilisé quotidiennement et n’a jamais eu de problèmes avec les mises à jour du noyau. L'erreur que je reçois maintenant est
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 '
J'ai trouvé un message de forum avec ce message d'erreur ici d'il y a trois jours, malheureusement sans résolution. J'ai donc essayé de supprimer les paquets VirtualBox du référentiel Ubuntu et d'installer la dernière version 5.2 à l'aide de cette procédure . Cependant, même après le redémarrage de la machine, l'erreur persiste.
Que puis-je faire dans ce cas?
Je faisais face au même problème. Après la mise à niveau du noyau, ma version de gcc était 5.4.1. La mise à niveau de cette version vers la version 5.4.0 m'a aidé à intégrer retpoline au module de noyau vboxdrv.
Suivre les étapes suivantes lien m'a aidé à résoudre mon problème:
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
Après ces étapes, gcc --version devrait être (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609
Puis purgez tous les nouveaux en-têtes 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
Encore une fois les installer
Sudo apt-get install linux-generic linux-signed-generic
Puis réinstallez virtualbox, j'ai installé la dernière version de virtualbox-5.2 cette fois-ci, mais la version 5.0 par défaut de virtualbox devrait également fonctionner correctement.
Sudo apt-get purge virtualbox-dkms virtualbox virtualbox-qt
Sudo apt-get install virtualbox-5.2
Et, nous avons le support de retpoline dans le dernier module
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)
Le problème associé répertorié dans le commentaire de @ricab a été attribué à un problème avec le nouveau noyau nécessitant un certain niveau de version de gcc pour compiler avec succès les modules du noyau.
Sur mon système, la mise à jour gcc a été repoussée APRÈS la mise à jour du noyau, ce qui a entraîné l'échec de la recompilation.
Une fois que la cause fondamentale a été découverte, j'ai pu réparer le système en désinstalant et en réinstallant le nouveau noyau. Cela corrigeait mes pilotes graphiques, mais je devais émettre Sudo /sbin/vboxconfig
pour réparer virtualbox après avoir démarré dans le nouveau noyau.
Mon système est 14.04, donc je ne peux pas vous conseiller quant à la version appropriée de gcc pour votre système 16.04, mais ceci est discuté à l’adresse https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/ 1750937