Difference between revisions of "VirtualBox: Mengatasi vboxdrv yang tidak bisa jalan"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
Line 31: | Line 31: | ||
==Alternatif Lain== | ==Alternatif Lain== | ||
− | ls /var/lib/initramfs-tools | + | |
− | + | ||
+ | #!/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) | ||
==Referensi== | ==Referensi== |
Revision as of 04:25, 27 May 2017
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
#!/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)
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