본문 바로가기

Eureka/Linux

[Solution] "sudo /etc/init.d/vboxdrv setup" Fail

apt-get를 이용하거나 Software-Center를 이용해 VirtualBox를 설치하고 나서 사용하려 하면,
커널 모듈이 로드되지 않았다는 말 혹은 아래와 같은 경고가 뜬다.

WARNING: The vboxdrv kernel module is not loaded. Either there is no module
         available for the current kernel (3.14.0-031400-generic) or it failed to
         load. Please recompile the kernel module and install it by

           sudo /etc/init.d/vboxdrv setup

         You will not be able to start VMs until this problem is fixed.

그래서 나온 안내대로 "sudo /etc/init.d/vboxdrv setup"를 수행해보니 또 아래와 같은 문제가 생긴다.

$ sudo /etc/init.d/vboxdrv setup
Stopping VirtualBox kernel modules ...done.
Uninstalling old VirtualBox DKMS kernel modules ...done.
Trying to register the VirtualBox kernel modules using DKMSError! Bad return status for module build on kernel: 3.14.0-031400-generic (x86_64)
Consult /var/lib/dkms/vboxhost/4.3.0/build/make.log for more information.
 ...failed!
  (Failed, trying without DKMS)
Recompiling VirtualBox kernel modules ...failed!
  (Look at /var/log/vbox-install.log to find out what went wrong)

가 나왔다, 그래.. 로그를 살펴보자

/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjNativeMapUser’:
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1539:26: error: ‘struct mm_struct’ has no member named ‘numa_next_reset’
                 pTask->mm->numa_next_reset = jiffies + 0x7fffffffffffffffUL;
                          ^
make[2]: *** [/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxdrv] Error 2

컴파일 Error였다. 이것은 무엇인고 하니... 설치를 시도한 또는 설치된 VirtualBox가 지원하는 커널 버전과 내 버전이 맞지 않다는 것이다.
방법은 간단하다. 아래 주소로 들어가서 자신의 커널에 알맞는 설치파일을 가지고 설치하면된다.