[ 已解决 ]13.1 运行 Virtualbox 出现 Kernel driver not installed

系统为 openSUSE 13.1,更新过是最新的,首次尝试 VIrtualBox 安装 Windows XP,出现:

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

'/etc/init.d/vboxdrv setup'

as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.

root 执行该命令之后出现

Recompiling VirtualBox kernel module, NOT. It has been packaged. done

我没有安装 DKMS,已经添加了用户组 vboxdrv

在 YaST 2 中搜索 “kernel-”,这些未安装:

kernel-default(-base, -devel), kernel-debug(-base, -devel),kernel-ec2(-base, -devel),kernel-pae(-base, -devel),kernel-trace(-base, -devel),kernel-vanilla(-devel),kernel-xen(-base),kvm

这些已安装:

kernel-default-devel,kernel-desktop,kernel-desktop-devel,kernel-devel,kernel-firmware,kernel-source,kernel-syms,kernel-xen-devel

以上所有软件版本为 3.11.6-4.1(除 kvm为1.6.0-3.1.1),请问是不是少安装了一些组件?
如果是希望能具体指出应该安哪些(YaST2 提示带有 -base 组件与不带 -base 的相冲突)

你先确认一下你登陆用的是那个内核

uname -r

如果是 kernel-desktop,那就把 kernel-default-devel、kernel-source,kernel-syms,kernel-xen-devel 全部卸载,如果是 kernel-default,那就重新启动切换到 kernel-desktop。

最后再执行

sudo /etc/init.d/vboxdrv setup

1赞

执行 uname -r 返回的是 3.11.6-4-desktop,可是我卸载的时候提示也会卸载 fglrx,是 A 卡开源驱动。。。晕
我先卸载,装好 Virtualbox 之后再装回来吗???

既然你的那些内核是因为 fglrx 依赖而安装的,那就留着吧!!!!
如果你是在安装 Virtualbox 后才安装的内核开发包,你可以试试先卸载 Virtualbox,重新安装试试。

我已遇到同样的问题。

系统更新,zypper patch,内核的版本由 kernel-desktop-3.11.6-4.1.x86_64 升级到 kernel-desktop-3.11.10-7.1.x86_64 。也就出现楼主所描述的问题。

在没有更新之前,使用 kernel-desktop-3.11.6-4.1.x86_64 内核时, VIrtualBox 一切正常。

请问你有没有像我一样安装 5 楼所说的那些多余的 kernel 包啊?

没有。

  1. fglrx 不是“A 卡开源驱动”,那是 A 卡闭源驱动,而且你是从软件包安装不是 ATI 官网下载安装的闭源驱动(不然不会提示你卸载)。A 卡的开源驱动叫做 Radeon。

所以你卸载它没问题,但下次启动会黑屏,要重装。

  1. 楼上让你卸载的不是 kernel-desktop-devel,让你卸载的是 kernel-default-devel。估计你是卸载错了,否则不可能你用着一个内核,显卡驱动给你装到了另一个内核上,然后你进入现在用的这个内核还能有显卡驱动。或者就是你的 flgrx 软件包装错版本了,要装 kmp-desktop 版的,而不是 kmp-default 版的,驱动要始终和内核的 flavor(desktop,default,xen 等)保持一致。

  2. 正常从官网下载 rpm 安装的 Virtualbox 重新编译内核模块时的提示不是那个,注意你的提示是:

Recompiling VirtualBox kernel module, NOT. It has been packaged. done

所以你的 Virtualbox 和其内核模块应该都是从源里安装的,所以你要做的应该不是运行那条命令去重新编译内核模块,而是升级相应的 virtualbox-guest-kmp-desktop 和 virtualbox-host-kmp-desktop 软件包。

  1. Virtualbox 会安装到有头文件(-devel 包)的内核去。所以即使你运行命令去编译 Virtualbox 的内核模块,你也只需要一个 kernel-desktop-devel 而不是一堆。

David 的那个问题很简单,你更新了内核,就要重新编译 Virtualbox 的内核模块,这没什么好解释的。人就是那么设计的。而那条命令就是告诉你重新编译要用哪条命令。

我也遇到同样的问题,再 YaST 里把 Virtualbox 卸载了,去官网上下载一个下来安装就可以用了

刚刚我也从官网上下载安装了一个,之前已经加过那个什么用户组了,这次直接打开就能用了 :slight_smile:

强烈建议不要从官网下载安装。原因已经反复叙述,不再赘述。实在不行我专门写一个为什么要用包管理器算了。经常反复讲要使用包管理和源,而不是官网手动下载装。

玛丽女王已经给了解决方案。

强烈建议不要到官网下载手动安装。。

之前搜索过论坛和百度,都没解决,能给个链接吗?

前面玛丽女王不是已经给出了一个解决方案吗?? 就在楼上上一页啊。

o,sorry~

你更新了系统,内核更新了,需要重新编译内核模块。
实际上你只需要升级内核模块即可。

但是你却选择官网下载安装。如果下载的 rpm,请先卸载掉。

官网手动安装,是 WindowsMac 里没有统筹管理系统软件包依赖的全局工具所造成的低级处理方式。
打个比方,加入你 win98 升级到 xp,xp 升级到 7, 你就会发现有很多以前安装的程序用不了了。 OSX 从 10.8 升级到 10.9,所有安装了 haskell 的全部挂得很惨。。
为什么?这就是因为他没有全局统筹软件包关系的工具。
你自己手动安装,那么等到下次升级系统的时候呢? 你用包管理,总体而言,是会大大降低麻烦与风险的。

如果你手动安装,那么手动安装的包越多,以后麻烦越大。而且以后你有越来越多的软件包需要通过手动安装,否则就要重复安装。

在 linux 里,包管理是真正有效的全局包管理(而不是 chocolatey 和 homebrew 这种非官方的不具备全局管理效力的“安装器”),因此我真心建议你使用这一个自动化、智能化、具备全局效力的工具,而不是去手动操作。

抱歉回复错了

哦,现在再看你的回复才有点明白,我开始是有些理解上的错误。这里再麻烦你一下,问几个问题:
uname -r 执行后返回的是 3.11.10-7-desktop,说明我当前内核是这个,然后在 Yast 中搜索"kernel-"
我已经安装了:
kernel-default-devel(3.11.10-7.1),kernel-desktop(3.11.10-7.1)(这个好像也是我正在使用的,应该是最新的)
kernel-desktop-devel(3.11.10-7.1),kernel-devel(3.11.10-7.1),kernel-firmware(201307…t-.2.5.1),kernel-pae-devel(3.11.10-7.1)(这个 pae 是在一个篇文档中看别人说的,安装了 kernel-pae,发现安装错误后卸载留下的),kernel-source(3.11.10-7.1),kernel-syms(3.11.10-7.1),kernel-xen-devel(3.11.10-7.1)(source,syms 和 xen 是在网上看教程说 opensuse 安装 fglrx 驱动必须安装的依赖包)

当我尝试卸载 syms 时系统提示这些包是 fglrx 驱动 (yast 中搜索"fglrx" 只有两个驱动,我按装了 64 版的 fglrx64) 的依赖包,但是在提示中有两个 syms,一个是 3.11.6-4.1 另一个是 3.11.10-7.1,我想前一个就是旧的内核吧?
因为新装系统之后,我首先安装的是 fglrx 驱动软件,那时候没有 zypper update,我猜 fglrx 是使用了这个 3.11.6-4.1 版本的包 (以上这些 kernel 包,好像都有 3.11.6-4.1 和 3.11.10-7.1 两个版本),安装 fglrx 成功之后,我才 update 的。

所以我现在是否应该尝试卸载 fglrx 驱动,然后卸载上面除过 kernel-desktop 和 kernel-desktop-devel 之外的其他 kernel 包
其他 kernel 包两个版本先都卸载,kernel-desktop 和 kernel-desktop-devel 把旧版本卸载
这样系统就只有最新的 desktop 3.11.10-7.1 了,卸载完成之后,再重新 zypper install 安装 kernel 的 source,xen,syms 包,fglrx 驱动和 virtualbox 软件
这个流程就没有问题了把?请解答一下摆脱了
请问是这个意思把??

刚刚尝试了一下,rpm -qa |grep kernel 命令找出系统中所有的内核,我发现上面我提到的已安装的那些 kernel 包都是两个版本 3.11.10-7.1 和 3.11.6-4.1,我就把所有的 3.11.6-4.1 旧版本都 zypper remove 拉。。然后 fglrx 还能用,可能因为我在驱动中心是选择禁用 A 卡,使用 Intel 集显的。然后重新在 yast 中安装 virtualbox 时,发现它自动下载 kernel-default 这个包,而且是 3.11.6-4.1 旧版,我系统中当前就有 kernel-default 3.11.10-7.1 新版,它安装完提示我 reboot 来使用新内核。
看来要使用官方的 virtualbox,我要把内核切换为它下载的 kernel-default 3.11.6-4.1 才行把
我还是不装 virtualbox 了,我办公桌上有两台电脑啊,另一个是 win7 啦。。麻烦各位拉