IMHO, you shouldn't have to re-install VirtualBox (or dkms for that matter) to get this working.
I have VirtualBox 2.1.2 (x86_64 rpm for fc9) on my x86_64 F10 system. I installed dkms from the Fedora repo *after* VirtualBox and had only blank output from "dkms status". However, this is to be expected, since I hadn't yet told dkms to manage those modules.
When VirtualBox was installed, as well as the usual array of binaries, libraries, docs and configuration files, it also loaded source code for the vboxdrv and vboxnetflt kernel modules and a dkms.conf file for each (in case the user chooses to use dkms) - specifically (assuming the default locations):
/usr/share/virtualbox/src/vboxdrv/dkms.conf (with symlink in /usr/src/vboxdrv-2.1.2/ )
/usr/share/virtualbox/src/vboxnetflt/dkms.conf (with symlink in /usr/src/vboxnetflt-2.1.2/ )
These files tell dkms what to do for the respective module, if invoked.
But, you have to tell dkms to manage those modules, which is achieved through the "dkms add ..." command, e.g. to build single modules for the currently running kernel (on F10, all files, or their symlinks, appear to be in the default locations, so no other parameters are needed):
dkms add -m vboxdrv -v 2.1.2
dkms add -m vboxnetflt -v 2.1.2
Optionally, you could run the corresponding "dkms build ..." step, but there's no need. On the next reboot, dkms will attempt to do the "build" and "install" steps for the current kernel - it will build correctly but will error out at the "install" step since you already have correct versions installed (it should actually tell you that a "newer" version already exists for each module) - this is correct in this situation.
You can test that the "install" step works as well (if you really want) by booting into an earlier kernel - you should see dkms build and install the vboxdrv and vboxnetflt modules correctly ... but, when you reboot back into your current kernel, you'll still get the same error messages, so that's rather pointless, IMHO.
For the least amount of worry, just ignore the error messages and wait until the next kernel update to watch dkms work its magic.
For more, see file /usr/share/doc/dkms-<version>/README.dkms, and, of course:
BTW, you need compiler/make programs installed as well:
yum install gcc make automake
My results ....
After running "dkms add ..." for my modules, I get:
[username@localhost ~]# dkms status
vboxdrv, 2.1.2: added
vboxnetflt, 2.1.2: added
After the next reboot I get:
[username@localhost ~]$ dkms status
vboxdrv, 2.1.2, 18.104.22.168-170.2.5.fc10.x86_64, x86_64: built
vboxnetflt, 2.1.2, 22.214.171.124-170.2.5.fc10.x86_64, x86_64: built
I do get the expected error messages during boot about "newer" modules already being installed.
I've checked that VirtualBox still runs my VMs after all the above (with both earlier and current kernels) and all is well.