LINUX.ORG.RU
решено ФорумAdmin

VirtualBox + Ubuntu 11.10 + vboxdrv — собирать vboxdrv.ko из исходников?


0

1
pacify@optima:~$ sudo /etc/init.d/virtualbox start

 * Starting VirtualBox kernel modules                                            
 * No suitable module for running kernel found
                                                                         [fail]

Если запускать машину через GUI - говорит, что надо сделать modprobe vboxdrv. Однако, пакет virtualbox-dkms содержит только исходники этого модуля. Собирать из исходников?

Задача банальная - надо поставить+запустить в эмуляторе Debian 6.0.4 (amd64), на хост-машине AMD Athlon II X2 240.

★★★★★

Ответ на: комментарий от AITap
pacify@optima:~$ sudo dpkg-reconfigure virtualbox-dkms
[sudo] password for pacify: 

------------------------------
Deleting module version: 4.1.2
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.1.2 DKMS files...
Building only for 3.3.0-999-generic
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
 * Stopping VirtualBox kernel modules                                    [ OK ] 
 * Starting VirtualBox kernel modules                                            * No suitable module for running kernel found
                                                                         [fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.

Я ядро 3.3 поставил «ручками» - dpkg -i kernel.deb; может в этом проблема?

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

Building only for 3.3.0-999-generic
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.

Ставьте хэдеры для используемого ядра.

AITap ★★★★★
()
Ответ на: комментарий от pacify

Да, точно. С дефолтным ядром все собралось и запустилось:

pacify@optima:~$ sudo dpkg-reconfigure virtualbox-dkms
[sudo] password for pacify: 

------------------------------
Deleting module version: 4.1.2
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.1.2 DKMS files...
Building for 3.0.0-16-generic and 3.3.0-999-generic
Building initial module for 3.0.0-16-generic
Done.

vboxdrv:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.0.0-16-generic/updates/dkms/

vboxnetadp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.0.0-16-generic/updates/dkms/

vboxnetflt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.0.0-16-generic/updates/dkms/

vboxpci.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.0.0-16-generic/updates/dkms/

depmod.......

DKMS: install Completed.
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
 * Stopping VirtualBox kernel modules                                                                        [ OK ] 
 * Starting VirtualBox kernel modules                                                                        [ OK ] 

pacify ★★★★★
() автор топика
Ответ на: комментарий от AITap

Ставьте хэдеры для используемого ядра.


Попробовал:

[sudo] password for pacify: 

-------- Uninstall Beginning --------
Module:  virtualbox
Version: 4.1.2
Kernel:  3.0.0-16-generic (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vboxdrv.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.0.0-16-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetadp.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.0.0-16-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxnetflt.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.0.0-16-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxpci.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.0.0-16-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod.......

DKMS: uninstall Completed.

------------------------------
Deleting module version: 4.1.2
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.1.2 DKMS files...
Building only for 3.3.0-999-generic
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
 * Stopping VirtualBox kernel modules                                                                                       [ OK ] 
 * Starting VirtualBox kernel modules                                                                                               * No suitable module for running kernel found
                                                                                                                            [fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.
pacify@optima:~$ cd Загрузки/
pacify@optima:~/Загрузки$ sudo dpkg -i linux-headers-3.3.0-999-generic_3.3.0-999.201203160410_amd64.deb 
Выбор ранее не выбранного пакета linux-headers-3.3.0-999-generic.
(Чтение базы данных ... на данный момент установлено 240922 файла и каталога.)
Распаковывается пакет linux-headers-3.3.0-999-generic (из файла linux-headers-3.3.0-999-generic_3.3.0-999.201203160410_amd64.deb)...
dpkg: зависимости пакетов не позволяют настроить пакет linux-headers-3.3.0-999-generic:
 linux-headers-3.3.0-999-generic зависит от linux-headers-3.3.0-999, однако:
  Пакет linux-headers-3.3.0-999 не установлен.
dpkg: не удалось обработать параметр linux-headers-3.3.0-999-generic (--install):
 проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
 linux-headers-3.3.0-999-generic
Про зависимости не понял - чего ещё не хватает? Качал ядро+хедеры отсюда: http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/

pacify ★★★★★
() автор топика
Ответ на: комментарий от AITap

Поставил. Теперь другая проблема, при сборке модуля:

pacify@optima:~/Загрузки$ dpkg-reconfigure virtualbox-dkms

------------------------------
Deleting module version: 4.1.2
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.1.2 DKMS files...
Building only for 3.3.0-999-generic
Building initial module for 3.3.0-999-generic
Error! Bad return status for module build on kernel: 3.3.0-999-generic (x86_64)
Consult /var/lib/dkms/virtualbox/4.1.2/build/make.log for more information.
 * Stopping VirtualBox kernel modules                                                                                       [ OK ] 
 * Starting VirtualBox kernel modules                                                                                               * No suitable module for running kernel found
                                                                                                                            [fail]
invoke-rc.d: initscript virtualbox, action "restart" failed.



$ less /var/lib/dkms/virtualbox/4.1.2/build/make.log
...
  LD      /var/lib/dkms/virtualbox/4.1.2/build/vboxpci/built-in.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.o
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c: В функции «VBoxPciLinuxInit»:
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c:149:5: ошибка: неявная декларация функции «iommu_found» [-Werror=implicit-function-declaration]
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c: В функции «vboxPciOsInitVm»:
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c:989:9: ошибка: слишком мало аргументов в вызове функции «iommu_domain_alloc»
include/linux/iommu.h:83:29: замечание: declared here
cc1: некоторые предупреждения считать ошибками

make[2]: *** [/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.o] Ошибка 1
make[1]: *** [/var/lib/dkms/virtualbox/4.1.2/build/vboxpci] Ошибка 2
make: *** [_module_/var/lib/dkms/virtualbox/4.1.2/build] Ошибка 2
make: Выход из каталога `/usr/src/linux-headers-3.3.0-999-generic'

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

I just checked that the amd_iommu.h file location is changed on Kernel 2.6.41 and looks like that the VirtualBox try to use old location. One quick / temporary fix for this could be symlinking new amd-iommu.h to old amd_iommu.h location with following command:

ln -s /usr/src/kernels/2.6.41.1-1.fc15.i686.PAE/include/linux/amd-iommu.h /usr/src/kernels/2.6.41.1-1.fc15.i686.PAE/arch/x86/include/asm/amd_iommu.h

Then following command, should return one row (which is symbolic link to /usr/src/kernels/2.6.41.1-1.fc15.i686.PAE/include/linux/amd-iommu.h):

ls -la /usr/src/kernels/2.6.41.1-1.fc15.i686.PAE/arch/x86/include/asm/amd_iommu.h

Из комментариев к http://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fed...

AITap ★★★★★
()
Ответ на: комментарий от AITap

Сделал:

$ sudo ln -sf /usr/src/linux-headers-3.3.0-999/include/linux/amd-iommu.h /usr/src/linux-headers-3.3.0-999/include/linux/amd_iommu.h
$ sudo ln -sf /usr/src/linux-headers-3.3.0-999-generic/include/linux/amd-iommu.h /usr/src/linux-headers-3.3.0-999-generic/include/linux/amd_iommu.h
Та же самая ошибка:
  LD      /var/lib/dkms/virtualbox/4.1.2/build/vboxpci/built-in.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.o
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c: В функции «VBoxPciLinuxInit»:
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c:149:5: ошибка: неявная декларация функции «iommu_found» [-Werror=implicit-function-declaration]
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c: В функции «vboxPciOsInitVm»:
/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.c:989:9: ошибка: слишком мало аргументов в вызове функции «iommu_domain_alloc»
include/linux/iommu.h:83:29: замечание: declared here
cc1: некоторые предупреждения считать ошибками

make[2]: *** [/var/lib/dkms/virtualbox/4.1.2/build/vboxpci/linux/VBoxPci-linux.o] Ошибка 1
make[1]: *** [/var/lib/dkms/virtualbox/4.1.2/build/vboxpci] Ошибка 2
make: *** [_module_/var/lib/dkms/virtualbox/4.1.2/build] Ошибка 2
make: Выход из каталога `/usr/src/linux-headers-3.3.0-999-generic'

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

Значит, нужно ещё гуглить «virtualbox 4.1.2 linux 3.3.0». Пока кроме этой, удалось найти только другие жалобы, без решений.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Под новое ядро, >=3.2.0 у меня получилось только собрать virtualbox-modules 4.1.8, думаю возможно собрать и более старую версию (4.1.2) но придётся искать патчи.

Кстати, сам VirtualBox так и остался версии 4.1.4 и прекрасно работает с новыми модулями. Канал медленный выкачивать целиком виртуалбокс не было возможности, так что пришлось только обновить модули после перехода на ядро 3.2.0.

kostik87 ★★★★★
()

А своё ядро действительно необходимо?

На ведро 3.2.0-2 из сида vbox беспроблемно становится

wm34
()
Ответ на: комментарий от pacify

Значит судьба такая - поставить QEMU или vmWare.

Так проблема же вроде в хедерах ядра?

Значит, поставить QEMU или vmWare тоже не выйдет.

wm34
()
Ответ на: комментарий от wm34

А своё ядро действительно необходимо?

Да. Новый планшет Wacom работает только на 3.3 и на 3.0.
А дефолтное - 3.2.

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.