VirtualBox

Материал из Русский WINE
Перейти к: навигация, поиск

VirtualBox это виртуальная машина для архитектуры x86, разработанная фирмой Innotek и поддерживаемая Oracle. Существует две версии: полная сборка VirtualBox с проприетарной лицензией и редакция с открытым исходным кодом VirtualBox Open Source Edition (GPL).

Она проще в конфигурировании, чем QEMU и чуть медленнее, чем VMware.

Примечание: Если вы испытываете какие-либо проблемы с 'захватом' курсора мыши в окне виртуальной машины Virtualbox с запущенной в нём ROS, то перейдите к вкладке "Машина" и выберите там "Отключить интеграцию мыши", затем вновь щёлкните по окну с запущенной сессией ВМ, теперь всё должно работать.

Запуск ReactOS Live CD

Далее следует инструкция по созданию совместимой с ReactOS виртуальной машины в среде VirtualBox с последующим монтированием LiveCD в неё. Для подготовки инструкции использовалась среда Virtualbox версии 4.2.14 r86644 запущенная в Windows 7 x64, однако для других операционных систем и их версий процесс подготовки виртуальной машины, скорее всего, будет аналогичен.

  • Загрузите самую свежую версию образа диска LiveCD с http://www.reactos.org/download
  • Запустите VirtualBox.
  • Нажмите на кнопку 'Создать'.
  • Введите имя виртуальной машины и выберите тип машины 'Microsoft Windows', версия - 'Windows XP'. Нажмите Next.
  • Укажите объём оперативной памяти, которое вы хотите выделить виртуальной машине. Необходимый минимум - 64 Мб, однако рекомендуется выделять 256 Мб и более.
  • Всегда добавляйте виртуальный жёсткий диск, даже если система будет запускаться с CD. Для загрузки системы необходим жёсткий диск. Вы можете создать новый виртуальный жёсткий диск, или же воспользоваться созданным ранее. Нажмите Создать для создания новой ВМ.
  • Выделите созданную ВМ и нажмите Настроить.
  • Перейдите на вкладку 'Носители' и выберите диск 'Пусто' в списке устройств IDE-контроллера.
  • В панели Атрибуты выберите файл образа Live CD и поставьте флажок в поле 'Живой CD/DVD'.
  • Нажмите OK. Всё готово для загрузки ReactOS.

Если вы не можете выбрать в ReactOS правильное разрешение экрана, то прочтите эту инструкцию, хотя речь в ней идёт о Windows 8, однако всё сказанное там справедливо и в отношении ReactOS.

Получение отладочных сообщений

Windows

Rosdebug1.png

Необходимо предпринять следующие действия:

1) Настроить последовательный порт в VirtualBox.

Разумеется, существуют и другие виртуальные машины, но все они большей или меньшей степени функционируют аналогично VirtualBox и тоже могут выводить отладочные данные в COM-порт.

  • Скачайте VirtualBox, если вы этого ещё не сделали.
  • Вполне очевидно, что для получения отладочных данных от ReactOS, вам также потребуется отладочная сборка ReactOS. Для отладки необходимо использовать ТОЛЬКО отладочную сборку. Кроме того, вам потребуется 7-Zip для распаковки ISO-образа ReactOS из файла .7z.
  • Когда откроется окно VirtualBox, нажмите на пункт "Свойства" и выберите пункт "COM-порты".

Задайте Режим порта = Хост-канал, пометьте галочкой пункт Создать канал, путь к порту: \\.\pipe\ros_pipe.

ВАЖНО: Не изменяйте порт "COM1", который появляется в ниспадающем списке. Оставьте его как COM1.

Rosdebug2.png

2) скачайте и запустите PuTTY или любой другой понравившийся вам терминал последовательного порта (например, HyperTerminal,... ).

Эта программа потребуется для создания протоколов отладки. PuTTY может прослушивать COM-порт и выводить данные с него в файл. Если вы не знаете, какой именно вариант поставки PuTTY вам нужен, то скачивайте файл putty.exe "For Windows on Intel x86" ("Для Windows на архитектуре Intel x86"). Программа не нуждается в установке, просто скачайте её и запомните папку, где вы разместили скачанный файл. В Windows Vista программа должна быть запущена от имени Администратора, как и любое другое приложение, работающее с именованными каналами.

  • В древовидном списке в левой части окна выберите Session. В правой части окна под строчкой Connection Type ("Тип соединения"), выберите Serial ("Последовательное"). Под строкой Serial Line ("Путь к последовательному соединению") введите \\.\pipe\ros_pipe. Под надписью Speed ("Скорость передачи данных"), введите "115200". Если вам необходимо производить запись в протокол, то перейдите в древовидный список слева и выберите подпункт Logging пункта "Session". Под строчкой Session Logging ("Протоколирование данных сессии", выберите All session output ("Все данные сессии").
  • В строке Log file name ("Имя файла протокола") задаётся имя и размещение файла протокола отладки. Для смены папки с протоколом воспользуйтесь кнопкой "Browse" ("Обзор"), однако обязательно запомните имя и путь к папке, куда вы его сохранили!
  • Возвратитесь назад к древовидному списку в левой части окна и выберите подпункт Serial ("Последовательное") пункта Connection ("Соединение"). Установите параметр Flow Control ("Контроль потока") в значение None ("Нет"). PuTTY теперь настроена. Обратите также внимание, что в главном окне PuTTY вы можете сохранять и загружать созданные вами конфигурации программы, что значительно упрощает работу с ней.
    • Итак, после того, как вы выбрали тип соединения по последовательному порту, задали скорость порта 115200 бод, а также ввели путь к именованному каналу (\\.\pipe\ros_pipe), можете начинать отладку. Разумеется, вместо ros_pipe вы можете использовать любое другое уникальное имя, только не забывайте пользоваться схемой именования \\.\pipe\[имя_канала].
    • Нажмите на кнопку "Open" ("Открыть") в нижней части окна PuTTY, это приведёт к активации встроенных в PuTTY функций создания протоколов отладки, что выразится в открытии чёрного окна с мигающим зелёным курсором. В это окно будет выводиться большое количество текстовых сообщений во время отладки. После окончания работы с ReactOS, вы можете открыть файл с протоколом отладки, кроме того, можно просто скопировать в буфер обмена всё содержимое чёрного окна PuTTY. Когда вы выключаете виртуальную машину, PuTTY переходит в неактивное состояние и выводит сообщение об ошибке, однако, когда вы перезапустите виртуальную машину, вы можете подключиться к сессии заново, для этого вам нужно лишь нажать правой кнопкой на заголовке окна PuTTY и выбрать пункт меню Restart session (Перезапустить сессию).
    • Сначала запустите ReactOS в виртуальной машине, выберите загрузку в режиме отладки (DEBUG MODE), затем откройте PuTTY и смотрите на протокол отладки.

Имеется предположение о том, что при передаче большого количества данных через именованные каналы может происходить повреждение выводимых в них данных. Если при отладке вы заметили такое поведение системы, то существует ещё один способ получения отладочного протокола:

Com0com: Это мост между VirtualBox и PuTTY. Эта программа даёт вам возможность создать несколько пар виртуальных COM-портов, однако вам потребуется лишь одна пара (например Virtual Port Pair 0). Скачайте и установите com0com. Дополнительную информацию вы найдёте в статье com0com. В окне настройки программы вы увидите имена виртуальных последовательных портов (по умолчанию: "CNCA0" и "CNCB0"). Проверьте, правильно ли установлен драйвер com0com (например, при помощи Диспетчера устройств). Запустите виртуальную машину. В VirtualBox, пререйдите в "Свойства", "COM-порты", установите в списке "Режим порта" значение "Хост-устройство" (не "Хост-канал"). Затем, в поле Путь к порту/файлу введите "\\.\CNCA0". Далее, запустите Putty; переставьте переключатель в значение "Serial", а в поле "Serial line" введите "CNCB0", и нажмите на кнопку "open". Как уже упоминалось ранее, должно появиться чёрное окно, и, когда вы запустите ReactOS в отладочном режиме, в этом окне будет появляться текст, предмтавляющий собой протокол отладки.

ВАЖНО: В 64-х битных системах Windows Vista, а также в более новых версиях ОС Windows для 64-битной архитектуры вы должны использовать драйвер com0com, имеющий цифровую подпись.

Использование VMwareGateway

Необходимо загрузить приложение VMwareGateway. В качестве службы его можно запустить воспользовавшись ключом командной строки /r (в Windows Vista вы должны вначале запустить CMD с правами Администратора системы). Загрузить сборку для x86/x64 можно здесь, при её использовании в Vista/Win7 не потребуется запускать VirtualBox с полномочиями Администратора. Далее, необходимо запустить службу, используя команду SC:

 sc start vmwaregateway

В случае необходимости, отключите блокировку программы сетевым экраном. И наконец, используйте свой любимый telnet-клиент для подключения к localhost на порт 567.

Для настройки виртуальной машины, установите её в режим Host Pipe с следующим адресом канала:

 \\.\pipe\vmwaredebug

Убедитесь, что не установили галочку Create Pipe. VMwareGateway уже создал канал. Данные отладки должны появиться в вашем telnet-клиенте PuttyTel.

Linux

  • Установите пакет VirtualBox, способ установки зависит от используемого вами дистрибутива

В Debian или Ubuntu:

sudo apt-get install virtualbox
  • Разумеется для отладки ReactOS вам также потребуется отладочная сборка ReactOS. ( Необходимо использовать ТОЛЬКО отдалочные сборки. Кроме того, вам потребуется 7-Zip для извлечения файла образа в формате ISO из архива 7z.
  • Настройте последовательный порт в VirtualBox.

Произведите настройку VirtualBox в соответствии с картинкой чуть ниже.

    • После открытия окна VirtualBox, нажмите на вкладку Свойства. Щёлкните на COM-порты.

В раскрывающемся списке Режим порта выберите Хост-канал, поставьте галочку около параметра Создать канал, параметр Путь к порту/файлу: /tmp/ReactOS-Debug.pipe

ВАЖНО: Не меняйте номер порта с "COM1" на что-либо другое. Оставьте его как COM1.

VirtualBox-4.0.8.Setup serial port for socat pipe.png

Используя minicom

Это краткое руководство по использованию терминального приложения minicom. Прежде всего установите его, набрав:

 sudo apt-get install minicom
Настройка последовательного порта в minicom
  • Выполнив команду "sudo minicom -s" вы сможете задать порт и сохранить файл конфигурации приложения (dfl = default)
  • Выберите "Configure serial ports". Назовите устройство unix#pipe_path где "pipe_path" это файл вроде /tmp/ReactOS-Debug.pipe, который будет выполнять роль канала между виртуальной машиной и minicom.

Убедитесь, что pipe_path задан абсолютно одинаково и в minicom, и в VirtualBox.

  • Сохраните файл конфигурации при помощи Save config (dfl)
  • Выход по Exit
  • теперь, после запуска ВМ, введите "minicom" без sudo для запуска minicom от имени пользователя
Перенаправление в файл (в Linux-хосте)

Запустив minicom, нажмите Ctrl-A, а затем L. Введите имя файла, в который будут записываться сообщения.

Используя socat

Только для просмотра
 socat unix-client:pipe_path stdout

Также вы можете выполнить это:

 socat unix-client:pipe_path stdio

Замените "pipe_path" на путь к каналу, созданному вами в VirtualBox (т.е. "/tmp/ReactOS-Debug.pipe").

В том случае, если вы хотите перенаправить вывод socat в файл, воспользуйтесь следующей командой:

 socat -u unix-client:pipe_path stdio OPEN:log_file_name,creat,trunc

Где log_file_name это файл, в который VirtualBox должен производить вывод данных из последовательного порта.

Если в ReactOS произойдёт критический сбой, то вы всё равно сможете вводить команды в окне VirtualBox - т.е. внутри отладочной сессии. Вы увидите вводимые и выводимые данные в окне консоли, в котором запущен socat.

В интерактивном окне (т.е. для получения обратной трассировки)

В терминальном окне/вкладке выполните:

 $socat UNIX-CONNECT:/tmp/ReactOS-Debug.pipe PTY,link=/tmp/vbox_term

А в другом терминальном окне/вкладке выполните:

 $screen /tmp/vbox_term

Вывод в последовательный порт при использовании com0com

Установите и настройте Com0com в соответствии с руководством по com0com.

Активируйте первый последовательный порт на вашей машине ReactOS. Используйте номер порта "COM1", режим "хост-устройство" и путь к порту "COM4" или другой, в зависимости от того, какой виртуальный порт вы создали первым в comocom.

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

Установка дополнений гостевой ОС

В окне виртуальной машины зайдите в меню "Устройства" - "Установить дополнения гостевой ОС". CD с дополнениями будет смонтирован в CD-привод, откройте его, запустите файл VBoxWindowsAdditions.exe и следуйте инструкциям программы установки.

ПРИМЕЧАНИЕ: Чтобы установить поддержку Direct3D (Direct3D Support) загрузите ReactOS в безопасном режиме, выбрав в Freeloader пункт ReactOS, нажав F8 и выбрав Safe Mode.

Настройка аудио

ReactOS имеет ограниченную поддержку звука еще с версии 0.3.9, но рекомендуется проверять звук в транке.

В настройках машины VirtualBox, разрешите аудио и задайте следующие настройки:

  • Аудиодрайвер: Windows DirectSound
  • Аудио-контроллер: ICH AC97

После установки ReactOS:

  1. Загрузите драйвер Intel AC 97 при помощи Менеджера приложений ReactOS
  2. Извлеките файлы в C:\ReactOS\
  3. Перезапустите виртуальную машину
  4. Установите и запустите ваш любимый аудиопроигрыватель или мультимедиа-приложение (т.е. Winamp, VLC, MPlayer)
  5. Откройте аудиофайл и включите режим воспроизведения

Известные проблемы

  • Драйвер AC97 поддерживает только аудиопоток PCM в диапазоне 8000-44.100Кгц, 16Бит и 2 канала.
  • Конвертирование частоты дискретизации пока не поддерживается
  • При смене частоты дискретизации аудиопотока могут возникнуть проблемы в работе драйвера.

Отладчик, встроенный в VirtualBox (низкоуровневый отладчик)

Встроенный отладчик имеется не только в QEMU, свой отладчик есть и в VirtualBox. Для более детального изучения этого отладчика прочтите главу "12.1.3. The built-in VM debugger" файла руководства пользователя VirtualBox.

Активация отладчика

Отладчик ВМ доступен во всех версиях VirtualBox, однако по умолчанию он отключен, поскольку зачастую простому пользователю он практически не нужен. Существует два способа доступа к нему:

  • Консольное окно отладчика, отображаемое параллельно с основным окном ВМ
  • При помощи протокола telnet на порту 5000

Сам по себе отладчик может быть активирован тремя способами:

  • Непосредственным запуском ВМ из командной строки VirtualBox --startvm с дополнительными аргументами --dbg,--debug, или --debug-command-line. Для дополнительных сведений прочтите справочные материалы по использованию VirtualBox.
  • Установкой переменной окружения VBOX_GUI_DBG_ENABLED или VBOX_GUI_DBG_AUTO_SHOW в значение true перед запуском процесса VirtualBox. Установка этих переменных (проверяется лишь их наличие) будет принята во внимание и использована даже тогда, когда уже запущен самый первый процесс VirtualBox - окно выбора виртуальной машины. Во всех впоследствии запущенных ВМ отладчик будет активирован изначально.
  • Установка параметров GUI/Dbg/Enabled в true в файле конфигурации перед запуском ВМ. Эти параметры можно установить как глобально, так и для каждой ВМ в отдельности. Если нужно установить в отдельности для каждой ВМ - измените соответствующий машине файл .vbox, он представляет собой файл настроек виртуальной машины в формате XML.

Все эти параметры находятся:

  • X:\Users\%username%\.VirtualBox\VirtualBox.xml - для глобальной настройки

Путь внутри XML: VirtualBox/Global/ExtraData

  • ...\%VM_NAME%.vbox - для локальной настройки

Путь внутри XML: VirtualBox/Machine/ExtraData

Затем внутри вышеупомянутых путей в XML добавьте ещё один элемент: <ExtraDataItem name="GUI/Dbg/Enabled" value="true"/>

В результате в VirtualBox появится новый пункт меню 'Debug'. В этом меню пользователь может получить доступ к консоли отладчика.

Примечание: возможно при таком способе активации отладчика потребуется перезапуск операционной системы.

Использование отладчика

Синтаксис команд отладчика ВМ является некоторым подобием отладчиков от Microsoft и IBM, используемых в DOS, OS/2 и Windows. Пользователи, ранее работавшие с symdeb, CodeView, или отладчиком ядра OS/2, смогут без малейших проблем начать работать и с отладчиком ВМ VirtualBox. Наиболее важной и нужной из всех команд является команда 'help'.

Для получения дополнительных сведений обратитесь к руководству по отладке VirtualBox.

Дополнительная информация

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧастовстречаемые заблуждения о ReactOS
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидео про ReactOSReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOS
Другое КоординаторыТипы ядерFreeWin95"Пасхальные яйца" в ReactOS
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компоненты
Обзоры ОболочкаNTVDMWOWCommunity Edition