среда, 27 октября 2010 г.

VirtualBox и NS_ERROR_FAILURE (0x80004005)

Некоторое время назад у меня перестал работать VirtualBox. При запуске виртуальной машины он выдавал сообщение:

Код ошибки: NS_ERROR_FAILURE (0x80004005)
Компонент: Machine
Интерфейс: IMachine {6d9212cb-a5c0-48b7-bbc1-3fa2ba2ee6d2}
После чего это произошло я как-то не уследил, не очень часто им пользуюсь, но бывает удобно. Ну сломался и сломался, не очень-то и нужен был. Поиск в Интернете приводил на линуксовые форумы, даже на forums.freebsd.org есть тема. Всё сводилось к тому, что что-то не так с модулем vboxdrv. С которым вроде бы всё было в порядке, он вполне соответствовал версии virtualbox-ose и загружался без ошибок.

Выходили новые версии VirtualBox'а, обновление не помогало. Решил посмотреть для начала в Makefile портов. И вот, читая emulators/virtualbox-ose-kmod/Makefile обнаружил там такие строчки:

 SRC_BASE?=      /usr/src
...
.if !exists(${SRC_BASE}/sys/kern/bus_if.m)
IGNORE=         requires kernel sources
.endif
Вот тут-то до меня и дошло в чём проблема. Я последнее время обновлял систему и ядро из другого каталога, не из /usr/src. У меня в рабочем каталоге постоянно обновлённые исходники системы, там я их и редактирую, и там же компилирую при необходимости что-то протестировать. Поэтому, /usr/src у меня оказались заброшенными. А порт-то собирался с использованием /usr/src! Сразу же попробовал переопределить SRC_BASE и всё получилось. Так что, теперь в поисковике можно будет найти ещё одно решение этой проблемы :)

3 комментария:

  1. Полагаю, этот совет относится вообще к любым *-kmod портам, поскольку они все ищут исходники в ${SRC_BASE}, которое /usr/src по умолчанию.

    А можно попробовать переопределить SRC_BASE на нечто актуальное, тоже должно работать :)

    ОтветитьУдалить
  2. тоже перестал запускаться ВБ после обновления системы через синаптик. можете подробно (для новичка) объяснить, что нужно сделать??суть то я понял, а вот как исправить... спасибо ))

    ОтветитьУдалить
  3. как я понимаю речь идёт о линуксе :)
    Объяснять тут что-то я не возьмусь, не в моей компетенции.. Видимо вам нужно как-то привести в соответствие пакет virtualbox'а с вашим ядром.

    ОтветитьУдалить