VirtualBox
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
Необходимо предпринять следующие действия:
1) Настроить последовательный порт в VirtualBox.
Разумеется, существуют и другие виртуальные машины, но все они большей или меньшей степени функционируют аналогично VirtualBox и тоже могут выводить отладочные данные в COM-порт.
- Скачайте VirtualBox, если вы этого ещё не сделали.
- Вполне очевидно, что для получения отладочных данных от ReactOS, вам также потребуется отладочная сборка ReactOS. Для отладки необходимо использовать ТОЛЬКО отладочную сборку. Кроме того, вам потребуется 7-Zip для распаковки ISO-образа ReactOS из файла .7z.
- Когда откроется окно VirtualBox, нажмите на пункт "Свойства" и выберите пункт "COM-порты".
Задайте Режим порта = Хост-канал, пометьте галочкой пункт Создать канал, путь к порту: \\.\pipe\ros_pipe.
ВАЖНО: Не изменяйте порт "COM1", который появляется в ниспадающем списке. Оставьте его как COM1.
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.
Используя 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:
- Загрузите драйвер Intel AC 97 при помощи Менеджера приложений ReactOS
- Извлеките файлы в C:\ReactOS\
- Перезапустите виртуальную машину
- Установите и запустите ваш любимый аудиопроигрыватель или мультимедиа-приложение (т.е. Winamp, VLC, MPlayer)
- Откройте аудиофайл и включите режим воспроизведения
Известные проблемы
- Драйвер 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.