Difference between revisions of "VirtualBox: Mengatasi vboxdrv yang tidak bisa jalan"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
sumber: https://askubuntu.com/questions/760671/could-not-load-vboxdrv-after-upgrade-to-ubuntu-16-04-and-i-want-to-keep-secur | sumber: https://askubuntu.com/questions/760671/could-not-load-vboxdrv-after-upgrade-to-ubuntu-16-04-and-i-want-to-keep-secur | ||
+ | |||
+ | ==BIOS== | ||
+ | |||
+ | Pastikan | ||
+ | |||
+ | * VT (Virtualization Technology) '''ENABLED''' | ||
+ | * SecureBoot '''DISABLED''' | ||
+ | |||
+ | |||
+ | ==MOK== | ||
Line 31: | Line 41: | ||
==Alternatif Lain== | ==Alternatif Lain== | ||
− | ls /var/lib/initramfs-tools | + | Set alias |
− | + | ||
+ | alias dkms-buildall='sudo ./wherever/your/script/is' | ||
+ | |||
+ | Script | ||
+ | |||
+ | #!/bin/env python | ||
+ | # | ||
+ | # NOTE: This assumes that all modules and versions are built for at | ||
+ | # least one kernel. If that's not the case, adapt parsing as needed. | ||
+ | import os | ||
+ | import subprocess | ||
+ | |||
+ | # Permission check. | ||
+ | if os.geteuid() != 0: | ||
+ | print "You need to be root to run this script." | ||
+ | exit(1) | ||
+ | |||
+ | # Get DKMS status output. | ||
+ | cmd = ['dkms', 'status'] | ||
+ | process = subprocess.Popen(cmd, stdout=subprocess.PIPE) | ||
+ | dkms_status = process.communicate()[0].strip('\n').split('\n') | ||
+ | dkms_status = [x.split(', ') for x in dkms_status] | ||
+ | |||
+ | # Get kernel versions (probably crap). | ||
+ | cmd = ['ls', '/var/lib/initramfs-tools/'] | ||
+ | # Alternative (for use with Arch Linux for example) | ||
+ | # cmd = ['ls', '/usr/lib/modules/'] | ||
+ | process = subprocess.Popen(cmd, stdout=subprocess.PIPE) | ||
+ | kernels = process.communicate()[0].strip('\n').split('\n') | ||
+ | |||
+ | # Parse output, 'modules' will contain all modules pointing to a set | ||
+ | # of versions. | ||
+ | modules = {} | ||
+ | |||
+ | for entry in dkms_status: | ||
+ | module = entry[0] | ||
+ | version = entry[1].split(': ')[0] | ||
+ | try: | ||
+ | modules[module].add(version) | ||
+ | except KeyError: | ||
+ | # We don't have that module, add it. | ||
+ | modules[module] = set([version]) | ||
+ | |||
+ | # For each module, build all versions for all kernels. | ||
+ | for module in modules: | ||
+ | for version in modules[module]: | ||
+ | for kernel in kernels: | ||
+ | cmd = ['dkms', 'build', '-m', module, '-v', version, '-k', kernel] | ||
+ | ret = subprocess.call(cmd) | ||
+ | |||
+ | Cek | ||
+ | |||
+ | dkms status | ||
+ | sudo python dkms.py | ||
+ | |||
+ | |||
+ | ==Alternatif== | ||
+ | |||
+ | sudo apt-get install linux-headers-`uname -r` | ||
+ | sudo dpkg-reconfigure virtualbox-dkms | ||
+ | |||
+ | sudo apt-get install linux-headers-generic | ||
+ | sudo dpkg-reconfigure virtualbox-dkms | ||
+ | |||
+ | sudo dpkg-reconfigure virtualbox-dkms | ||
+ | sudo dpkg-reconfigure virtualbox | ||
+ | sudo modprobe vboxdrv | ||
+ | sudo modprobe vboxnetflt | ||
==Referensi== | ==Referensi== |
Latest revision as of 11:17, 28 May 2017
BIOS
Pastikan
- VT (Virtualization Technology) ENABLED
- SecureBoot DISABLED
MOK
On my system I did the following to make it work:
Run mokutil:
sudo mokutil --disable-validation
Then mokutil asked me to set a password for the MOK Manager. After rebooting the PC the BIOS showed a dialog to configure the MOK Manager. I disabled SecureBoot from this dialog, it asked for several characters from the password (ie. enter character (5), etc).
After booting up the vboxdrv modules loaded correctly.
lsmod | grep vboxdrv vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci
Curiously, mokutil still shows SecureBoot is enabled:
sudo mokutil --sb-state SecureBoot enabled
Alternatif Lain
Lakukan
sudo apt-get install build-essential libssl-dev linux-headers-`uname -r` sudo apt-get --reinstall install virtualbox-dkms
Alternatif Lain
Set alias
alias dkms-buildall='sudo ./wherever/your/script/is'
Script
#!/bin/env python # # NOTE: This assumes that all modules and versions are built for at # least one kernel. If that's not the case, adapt parsing as needed. import os import subprocess # Permission check. if os.geteuid() != 0: print "You need to be root to run this script." exit(1) # Get DKMS status output. cmd = ['dkms', 'status'] process = subprocess.Popen(cmd, stdout=subprocess.PIPE) dkms_status = process.communicate()[0].strip('\n').split('\n') dkms_status = [x.split(', ') for x in dkms_status] # Get kernel versions (probably crap). cmd = ['ls', '/var/lib/initramfs-tools/'] # Alternative (for use with Arch Linux for example) # cmd = ['ls', '/usr/lib/modules/'] process = subprocess.Popen(cmd, stdout=subprocess.PIPE) kernels = process.communicate()[0].strip('\n').split('\n') # Parse output, 'modules' will contain all modules pointing to a set # of versions. modules = {} for entry in dkms_status: module = entry[0] version = entry[1].split(': ')[0] try: modules[module].add(version) except KeyError: # We don't have that module, add it. modules[module] = set([version]) # For each module, build all versions for all kernels. for module in modules: for version in modules[module]: for kernel in kernels: cmd = ['dkms', 'build', '-m', module, '-v', version, '-k', kernel] ret = subprocess.call(cmd)
Cek
dkms status sudo python dkms.py
Alternatif
sudo apt-get install linux-headers-`uname -r` sudo dpkg-reconfigure virtualbox-dkms
sudo apt-get install linux-headers-generic sudo dpkg-reconfigure virtualbox-dkms
sudo dpkg-reconfigure virtualbox-dkms sudo dpkg-reconfigure virtualbox sudo modprobe vboxdrv sudo modprobe vboxnetflt
Referensi
- https://askubuntu.com/questions/760671/could-not-load-vboxdrv-after-upgrade-to-ubuntu-16-04-and-i-want-to-keep-secur
- https://askubuntu.com/questions/506405/how-do-i-fix-a-vboxdrv-setup-failure-in-virtualbox
- https://askubuntu.com/questions/53364/command-to-rebuild-all-dkms-modules-for-all-installed-kernels