Устанавливаю Virtualbox 4.2.12 на новую систему. Репозиторий р7. Все обновления стоят. Не устанавливаются модули ядра. При запуске любой машины выдает: 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. service vboxdrv setup -выдает ошибку
По-хорошему, это сообщение про '/etc/init.d/vboxdrv setup' и про компиляцию модулей надобы вообще изжить из дистрибутивного virtualbox
И заменить его на предолжение установить пакет kernel-modules-virtualbox-$flavour где $flavour это значение для загруженного ядра (std-def, std-pae и т. д.) А автоматически устанавливать модули вряд ли возможно. Разве что в составе дистрибутива.
В p7 текущая версия virualbox - 4.2.16, а версии модулей ядра kernel-modules-virtualbox-$flavour имеют версию 4.3.4 Потому и не работает.
_Возможно_, есть смысл добавить соответствующий мозг в update-kernel, чтоб можно было в юзерспейсных пакетах подкладывать ему данные или скриптики, которые добавят нужные kernel-modules в список на установку -- но это не снимет саму проблему вида "не работает".
Да, эту запись, нужно поменять и добавить запуск сборки модулей. Только вот для этого требуется дополнительно пакеты установить, если их не хватает (компилятор нужной версии и заголовочные файлы ядра). Но... По умолчанию, у нас почему-то при обновлении системы обновляются и заголовочные файлы ядра. Даже если они установлены возникает проблема, когда ядро в репах обновилось, а в системе - нет. Вариантов неудачных два: - заголовочные файлы установлены, но они уже от нового ядра, а ядро установлено ещё старое; - заголовочные файлы не установлены, но их установка ничего не даст, пока ядро не будет обновлено. Первая проблема решается с помощью пакета apt-conf-etersoft-hold. Вообще, его следует устанавливать, по умолчанию, я думаю. [sin@base vbox]$ rpm -ql apt-conf-etersoft-hold /etc/apt/apt.conf.d/apt.eter.conf [sin@base vbox]$ cat /etc/apt/apt.conf.d/apt.eter.conf RPM { Hold { // kernel-headers* and kernel-headers-modules* "^kernel-(headers|headers-modules)-.*"; }; }; Вторая требует дополнительной логики и предложения обновить сначала ядро.
*** Bug 31548 has been marked as a duplicate of this bug. ***
В общем, есть только один удобный вариант, который понятно как сделать - вместо предложения о сборке скриптом, который всё равно не работает (или работает? никогда не пробовал, честно говоря), нужно научиться доустанавливать модули, если они имеются под текущую версию ядра. Либо просить сначала выполнить скрипт обновления ядра - update-kernel.
Или разрешить обновлять ядро при dist-upgrade...
(In reply to comment #8) > Или разрешить обновлять ядро при dist-upgrade... Вот это было бы гораздо естественнее и лучше. Из-за устаревших и забытых к обновлению ядер возникают и подобные глюки... А почему apt не может обновлять ядра, не удаляя их старые версии?
При всём при том, проблема установки пакета virtualbox всё равно остаётся - установку модулей ядра приходится указывать вручную. По сути, это означает, что установить через apt-get install virtualbox невозможно. Если же написать скрипт устанавливающий модули для текущего flavour ядра и научить virtualbox выдавать вместо '/etc/init.d/vboxdrv setup' другую строку, в которой будет указан этот скрипт, то это будет простым и быстрым решением. Если же это скрипт ещё и запускать научиться, то вообще всё автоматом будет работать. Ну, а менять логику обновления ядра в apt - это совсем другая история. Давайте этот вопрос решать в другой баге. А то всё упрётся в мейнтенера apt, а проблема virtualbox так и не будет решена. К тому же, как уже было сказано, всех проблема такой вариант не решает.
(In reply to comment #9) > (In reply to comment #8) > > Или разрешить обновлять ядро при dist-upgrade... > > Вот это было бы гораздо естественнее и лучше. > Из-за устаревших и забытых к обновлению ядер возникают и подобные глюки... > А почему apt не может обновлять ядра, не удаляя их старые версии? Вроде, может. Одновременное наличие разных версий 1 пакета разрешено не только для ядер, но и для видеодрайверов. Их обновляет apt. (In reply to comment #10) > При всём при том, проблема установки пакета virtualbox всё равно остаётся - > установку модулей ядра приходится указывать вручную. По сути, это означает, что > установить через apt-get install virtualbox невозможно. > > Если же написать скрипт устанавливающий модули для текущего flavour ядра и > научить virtualbox выдавать вместо '/etc/init.d/vboxdrv setup' другую строку, в > которой будет указан этот скрипт, то это будет простым и быстрым решением. Выдавать актуальное сообщение нужно. Из-за текущего много путаницы и вопросов у новичков. А автоматически устанавливать не всегда возможно, т.к. в текущем репозитории только 1 версия ядра, а запущено может быть и более старое.