Комментарии 32
Отличная работа, завтра проверю. Больше года назад слез с VB, который стал стабильно рушить рабочий десктоп в BSOD. По-гуглив проблему на форуме VB, понял, что никто не торопится исправить проблему. Хотя мне не актуально, но, так сказать, хочу тестером выступить.
0
Читаю и думаю — кто же мог так обстоятельно и ясно всё расписать, да ещё и извиниться в конце за недостаточность? Ну, не удивлён, старая школа даёт себя знать.
+1
К сожалению, не устанавливается.
Скриншот ошибки![image](https://habrastorage.org/r/w1560/files/c12/534/e27/c12534e2716f4c1f96e0084c661791b3.png)
![image](https://habrastorage.org/files/c12/534/e27/c12534e2716f4c1f96e0084c661791b3.png)
0
Не сталкивался с таким. Посмотрите, пожалуйста, в журнале событий, какие там встречаются проблемы (Панель управления — Администрирование — Просмотр событий, группа «Журналы Windows», подкатегории «Система», «Приложение» и «Установка»).
А, кстати, устанавливается ли официальный 5.0.14?
А, кстати, устанавливается ли официальный 5.0.14?
0
А, и ещё, попробуйте запустить инсталлятор с параметром --logging. Тогда во временном каталоге будет создан подкаталог VirtualBox с log-файлом, из которого, возможно, удастся вытащить какую-нибудь полезную информацию.
0
Эх, официальная устанавливается и до сих пор рушит систему в BSOD.
Попытка запустить ключем к успеху не привела — каталог с логами не создается. В журналах есть сообщение об ошибке, но без подробностей.
Попытка запустить ключем к успеху не привела — каталог с логами не создается. В журналах есть сообщение об ошибке, но без подробностей.
0
Тогда, боюсь, это вне моей компетенции. :-(
Собственно, улучшений у меня по сравнению с официальным пакетом ожидать в любом случае не приходилось, т. к. это просто пересборка, но почему установка может падать с такими странными симптомами — ни малейших идей нет.
Если есть желание, можете попробовать промониторить через ProcMon, что вообще происходит, какие ошибки вылезают при обращении к разным файлам и веткам реестра. Может быть, это поможет определить, что конкретно не понравилось инсталлятору.
Собственно, улучшений у меня по сравнению с официальным пакетом ожидать в любом случае не приходилось, т. к. это просто пересборка, но почему установка может падать с такими странными симптомами — ни малейших идей нет.
Если есть желание, можете попробовать промониторить через ProcMon, что вообще происходит, какие ошибки вылезают при обращении к разным файлам и веткам реестра. Может быть, это поможет определить, что конкретно не понравилось инсталлятору.
0
У меня такая же ошибка. Из лога:
Тестовый режим в Windows вклюен. Полный лог тут — pastebin.com/q2qFDUxH
DIFXAPP: INFO: VBoxUSBMon.inf: checking signature with catalog 'C:\Program Files\Oracle\VirtualBox\drivers\USB\filter\VBoxUSBMon.cat'…
DIFXAPP: ERROR: Signature verification failed while checking integrity of driver package 'VBoxUSBMon.inf' ('C:\Program Files\Oracle\VirtualBox\drivers\USB\filter\VBoxUSBMon.inf'). (Error code 0x800B0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.)
DIFXAPP: INFO: Successfully removed '{B7D782D2-96DF-4775-A0E1-A76CF7B04B65}' from reference list of driver store entry ''
DIFXAPP: INFO: RETURN: DriverPackageInstallW (0x800B0100)
DIFXAPP: ERROR: encountered while installing driver package 'C:\Program Files\Oracle\VirtualBox\drivers\USB\filter\VBoxUSBMon.inf'
DIFXAPP: ERROR: InstallDriverPackages failed with error 0x800B0100
DIFXAPP: RETURN: InstallDriverPackages() 2148204800 (0x800B0100)
CustomAction MsiInstallDrivers returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 13:53:39: InstallFinalize. Return value 3.
Тестовый режим в Windows вклюен. Полный лог тут — pastebin.com/q2qFDUxH
0
Спасибо за лог.
Есть подозрение, что это связано с флагом обязательной проверки подписи, которую сборочные скрипты VB выставляют в бинарниках при наличии хоть какой-нибудь подписи (в частности, этот же флаг не даёт VB запускаться в 32-битной Windows из-за невалидной подписи, хотя той всегда было по барабану на сертификаты). Сейчас я пытаюсь определить, в каких случаях этот флаг необходим (MSDN говорит, что для драйверов он обязателен) и, соответственно, как надо подправить скрипты, чтобы он выставлялся, только когда реально нужен.
Пока что в качестве эксперимента я собрал неподписанный вариант. К сожалению, в 64-битке его невозможно установить в тестовом режиме, надо перезагружаться и в загрузочном меню выбирать Disable Driver Signature Enforcement.
Есть подозрение, что это связано с флагом обязательной проверки подписи, которую сборочные скрипты VB выставляют в бинарниках при наличии хоть какой-нибудь подписи (в частности, этот же флаг не даёт VB запускаться в 32-битной Windows из-за невалидной подписи, хотя той всегда было по барабану на сертификаты). Сейчас я пытаюсь определить, в каких случаях этот флаг необходим (MSDN говорит, что для драйверов он обязателен) и, соответственно, как надо подправить скрипты, чтобы он выставлялся, только когда реально нужен.
Пока что в качестве эксперимента я собрал неподписанный вариант. К сожалению, в 64-битке его невозможно установить в тестовом режиме, надо перезагружаться и в загрузочном меню выбирать Disable Driver Signature Enforcement.
0
Большое спасибо, обязательно попробую собрать.
Кстати, если брать винду с торрентов, конфликт на удивление может быть вызван, например длл-кой отвечающей за набор иконок рабочего стола, и тому подобными мелочами.
В некоторых случаях для запуска vbox, мне помог банальный sfc /scannow.
Кстати, если брать винду с торрентов, конфликт на удивление может быть вызван, например длл-кой отвечающей за набор иконок рабочего стола, и тому подобными мелочами.
В некоторых случаях для запуска vbox, мне помог банальный sfc /scannow.
0
Статья обновлена с учётом версии 5.0.20. Также добавлена инструкция по обходу проблемы с неустанавливающимся самоподписанным дистрибутивом.
+2
Разобрался с переходом VB 5.1.x на Qt5, обновил статью.
+1
Ещё одно обновление: исправлена проблема с нерабочими сетевыми функциями (проверка обновлений, скачивание extpack'а) из-за того, что cURL собирался без поддержки OpenSSL. Ну и ещё кой-чего по мелочи, см. апдейт в конце статьи.
0
Очередной апдейт для версии 5.1.10. Ключевое изменение — выполнен переход на OpenSSL 1.1.
0
Статья обновлена для VB 5.1.22. Также существенно поменялись процедуры сборки для последних версий некоторых библиотек.
0
Огромное спасибо за столь подробную статью! Без нее мучался бы неделю, наверное, а так ушло всего часов 5 :)
+1
Только сейчас заметил один нюанс. Инсталлятор, который скачивается с официального сайта, имеет внутри себя две версии — х86 и х64. Однако согласно данной инструкции, на выходе имеет два отдельных билда инсталлятора под разную разрядность. Возможно, подскажете, в какую сторону копнуть, чтобы они были одним целым? VBOX_WITH_COMBINED_PACKAGE, как я вижу, у Вас включен, но эффекта не дает.
0
Сорри за долгую реакцию, был без инета.
По данной инструкции получается именно комбинированный установщик, EXE-файл, внутри которого упакованы два MSI-пакета (32- и 64-битный) плюс CAB-архив с файлами, общими для обеих битностей.
Когда мы собираем 64-битную версию (VirtualBox-5.1.22_OSE-r115126-MultiArch_amd64.msi), это лишь промежуточный этап. На следующем шаге идёт не только сборка 32-битного пакета, но и упаковка всего собравшегося в единый инсталлятор. Я просто намеренно пропустил шаг сборки 32-битного MSI, потому что он автоматически собирается по зависимостям. После окончания сборки достаточно скопировать себе итоговый файл VirtualBox-5.1.22_OSE-r115126-MultiArch.exe, а всё остальное можно удалять. Оба MSI-пакета (ранее собранный 64-битный и свежесобранный 32-битный) уже находятся внутри.
По данной инструкции получается именно комбинированный установщик, EXE-файл, внутри которого упакованы два MSI-пакета (32- и 64-битный) плюс CAB-архив с файлами, общими для обеих битностей.
Когда мы собираем 64-битную версию (VirtualBox-5.1.22_OSE-r115126-MultiArch_amd64.msi), это лишь промежуточный этап. На следующем шаге идёт не только сборка 32-битного пакета, но и упаковка всего собравшегося в единый инсталлятор. Я просто намеренно пропустил шаг сборки 32-битного MSI, потому что он автоматически собирается по зависимостям. После окончания сборки достаточно скопировать себе итоговый файл VirtualBox-5.1.22_OSE-r115126-MultiArch.exe, а всё остальное можно удалять. Оба MSI-пакета (ранее собранный 64-битный и свежесобранный 32-битный) уже находятся внутри.
0
Да, действительно, я не обратил внимание, что в последнем скрипте сборки путь к инсталлятору указывается другой. Вместо этого просто в скрипте для сборке х64 исправил архитектуру, в результате получал только два отдельных msi.
Кстати, обновил у себя исходники до 5.1.26, единственное что изменилось — теперь обязательно почему-то в параметрах к «cscript configure.vbs» нужно еще дописывать "--with-openssl32=C:\Programs\OpenSSL\x32". В остальном без изменений.
Спасибо!
Кстати, обновил у себя исходники до 5.1.26, единственное что изменилось — теперь обязательно почему-то в параметрах к «cscript configure.vbs» нужно еще дописывать "--with-openssl32=C:\Programs\OpenSSL\x32". В остальном без изменений.
Спасибо!
0
нужно еще дописывать "--with-openssl32=C:\Programs\OpenSSL\x32"А это как раз поправили одну из штук, которую я до этого вынужден был вставлять ручками — переменные с суффиксом x86 в LocalConfig.kmk. Теперь конфигуратор сам их прописывает в соответствии с переданным путём. Там ещё 32-битный libcurl так же можно указывать, если не ошибаюсь.
0
Очередное обновление, версия 5.2.2.
Ключевое изменение: теперь для 32-битных VBoxRem (VirtualBox Recompiler) используется MinGW 4.5.4, а не 3.3.3. Это, теоретически, может вызвать проблемы при работе на 32-битных хостах (в первую очередь, с выключенной виртуализацией). Я немного потестировал в таком режиме, проблем не обнаружил, поэтому счёл возможным перейти на такую сборку как на основную.
Ключевое изменение: теперь для 32-битных VBoxRem (VirtualBox Recompiler) используется MinGW 4.5.4, а не 3.3.3. Это, теоретически, может вызвать проблемы при работе на 32-битных хостах (в первую очередь, с выключенной виртуализацией). Я немного потестировал в таком режиме, проблем не обнаружил, поэтому счёл возможным перейти на такую сборку как на основную.
+1
Апдейт до версии 5.2.18 с попутным обновлением библиотек и всякой мелочёвки.
0
Я тут обнаружил, что в собранной мной версии не работает запись с экрана виртуальных машин: крутилятор в строке состояния крутится, а видеофайл не создаётся. Оказалось, что для OpenSource-версии эта функция явным образом отключена. Причин я так и не уяснил, но как включить обратно, разобрался. Статья обновлена с учётом этой информации, ну и, как обычно, актуализированы версии VB и библиотек.
+2
Разобрался со сборкой новой линейки версий, инструкция обновлена до версии 6.0.2.
0
CaptainFlint, Могли бы вы проверить почту, указанную в контактах на вашем сайте? У нас есть предложение о сотрудничестве
0
Очередное обновление статьи. Основное добавление — информация о подписывании драйверов для Windows 10 (к сожалению, доступное немногим). Ну и попутная актуализация версий VB и разных библиотек.
+1
Наконец-то нашёл время, чтобы актуализировать статью. Ключевое изменение — прекращение поддержки 32-битных хостовых систем в версиях 6.1.x. Как следствие, большая часть 32-битных библиотек больше не используется (хотя OpenSSL и cURL всё ещё нужны для сборки 32-битной клиентской библиотеки).
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Собираем VirtualBox под Windows