I have recently started to use an amd64 kernel on my i386 Debian unstable system. Unfortunately, VirtualBox OSE does not work with that setup. When I try to start a virtual machine, it fails with an oblique error message:
RTR3Init failed with rc=-1912 (rc=-1912)
The VirtualBox kernel modules do not fit to this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing
‘/etc/init.d/vboxdrv setup’
should fix that problem. Make sure that you don’t mix the OSE version and the PUEL version of VirtualBox.
Debian bug #456391 explains the problem. In that report Michael Meskes alludes to running VirtualBox in an amd64 chroot jail, so I tried this myself. It works flawlessly, once I got it setup. Here is what I did (as root):
robinson:~# mkdir /srv/amd64 robinson:~# cdebootstrap --arch amd64 sid /srv/amd64 http://ftp.debian.org/debian/ [...] robinson:~# chroot /srv/amd64 robinson:/# apt-get update [...] robinson:/# apt-get upgrade [...] robinson:/# apt-get install virtualbox-ose # add more packages here if needed [...] robinson:/# adduser --uid 1000 --no-create-home --disabled-password --disabled-login srittau [...] robinson:/#
These commands install the base system and create a user account. Now I created a script called /usr/local/bin/amd64.sh
:
#!/bin/sh CHROOT=/srv/amd64 if test ! -e $CHROOT/dev/.udev; then mount -t none /dev $CHROOT/dev/ -o bind fi if test `ls $CHROOT/proc | wc -l` = "0"; then mount -t proc none $CHROOT/proc fi if test `ls $CHROOT/sys | wc -l` = "0"; then mount -t sysfs none $CHROOT/sys fi if test `ls $CHROOT/home | wc -l` = "0"; then mount --bind /home $CHROOT/home fi chroot $CHROOT sh -c "su - srittau"
Running sudo amd64.sh
will now enter the chroot environment as user srittau where I can start virtualbox normally.
Leave a Reply