VirtualBox — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
(Получение отладочных сообщений)
 
(не показано 9 промежуточных версии этого же участника)
Строка 39: Строка 39:
  
 
'''ВАЖНО:''' Не изменяйте порт "COM1", который появляется в ниспадающем списке. Оставьте его как COM1.
 
'''ВАЖНО:''' Не изменяйте порт "COM1", который появляется в ниспадающем списке. Оставьте его как COM1.
 +
 
[[File:rosdebug2.png|right|300px]]
 
[[File:rosdebug2.png|right|300px]]
 
2) '''скачайте и запустите [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY]''' или любой другой понравившийся вам терминал последовательного порта (например, HyperTerminal,... ).
 
2) '''скачайте и запустите [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY]''' или любой другой понравившийся вам терминал последовательного порта (например, HyperTerminal,... ).
Строка 46: Строка 47:
 
*В древовидном списке в левой части окна выберите '''Session'''. В правой части окна под строчкой '''Connection Type''' ("Тип соединения"), выберите '''Serial''' ("Последовательное"). Под строкой '''Serial Line''' ("Путь к последовательному соединению") введите '''\\.\pipe\ros_pipe'''. Под надписью '''Speed''' ("Скорость передачи данных"), введите "115200". Если вам необходимо производить запись в протокол, то перейдите в древовидный список слева и выберите подпункт '''Logging''' пункта "Session". Под строчкой '''Session Logging''' ("Протоколирование данных сессии", выберите '''All session output''' ("Все данные сессии").
 
*В древовидном списке в левой части окна выберите '''Session'''. В правой части окна под строчкой '''Connection Type''' ("Тип соединения"), выберите '''Serial''' ("Последовательное"). Под строкой '''Serial Line''' ("Путь к последовательному соединению") введите '''\\.\pipe\ros_pipe'''. Под надписью '''Speed''' ("Скорость передачи данных"), введите "115200". Если вам необходимо производить запись в протокол, то перейдите в древовидный список слева и выберите подпункт '''Logging''' пункта "Session". Под строчкой '''Session Logging''' ("Протоколирование данных сессии", выберите '''All session output''' ("Все данные сессии").
 
*В строке '''Log file name''' ("Имя файла протокола") задаётся имя и размещение файла протокола отладки. Для смены папки с протоколом воспользуйтесь кнопкой "Browse" ("Обзор"), однако обязательно запомните имя и путь к папке, куда вы его сохранили!
 
*В строке '''Log file name''' ("Имя файла протокола") задаётся имя и размещение файла протокола отладки. Для смены папки с протоколом воспользуйтесь кнопкой "Browse" ("Обзор"), однако обязательно запомните имя и путь к папке, куда вы его сохранили!
* Возвратитесь назад к древовидному списку в левой части окна и выберите подпункт Serial ("Последовательное") пункта Connection ("Соединение"). Установите параметр Flow Control ("Контроль потока") в значение None ("Нет"). PuTTY теперь настроена. Обратите также внимание, что в главном окне PuTTY вы можете сохранять и загружать созданные вами конфигурации программы, что значительно упрощает работу с ней.
+
*Возвратитесь назад к древовидному списку в левой части окна и выберите подпункт '''Serial''' ("Последовательное") пункта '''Connection''' ("Соединение"). Установите параметр '''Flow Control''' ("Контроль потока") в значение '''None''' ("Нет"). PuTTY теперь настроена. Обратите также внимание, что в главном окне PuTTY вы можете сохранять и загружать созданные вами конфигурации программы, что значительно упрощает работу с ней.
 
+
**Итак, после того, как вы выбрали тип соединения по последовательному порту, задали скорость порта 115200 бод, а также ввели путь к именованному каналу ('''\\.\pipe\ros_pipe'''), можете начинать отладку. Разумеется, вместо '''ros_pipe''' вы можете использовать любое другое уникальное имя, только не забывайте пользоваться схемой именования '''\\.\pipe\[имя_канала]'''.
Итак, после того, как вы выбрали тип соединения по последовательному порту, задали скорость порта 115200 бод, а также ввели путь к именованному каналу (\\.\pipe\ros_pipe), можете начинать отладку. Разумеется, вместо ros_pipe вы можете использовать любое другое уникальное имя, только не забывайте пользоваться схемой именования \\.\pipe\[имя_канала].
+
**Нажмите на кнопку "Open" ("Открыть") в нижней части окна PuTTY, это приведёт к активации встроенных в PuTTY функций создания протоколов отладки, что выразится в открытии чёрного окна с мигающим зелёным курсором. В это окно будет выводиться большое количество текстовых сообщений во время отладки. После окончания работы с ReactOS, вы можете открыть файл с протоколом отладки, кроме того, можно просто скопировать в буфер обмена всё содержимое чёрного окна PuTTY. Когда вы выключаете виртуальную машину, PuTTY переходит в неактивное состояние и выводит сообщение об ошибке, однако, когда вы перезапустите виртуальную машину, вы можете подключиться к сессии заново, для этого вам нужно лишь нажать правой кнопкой на заголовке окна PuTTY и выбрать пункт меню ''Restart session (Перезапустить сессию).''
Нажмите на кнопку "Open" ("Открыть") в нижней части окна PuTTY, это приведёт к активации встроенных в PuTTY функций создания протоколов отладки, что
+
**'''Сначала запустите ReactOS в виртуальной машине, выберите загрузку в режиме отладки (DEBUG MODE)''', затем откройте PuTTY и смотрите на протокол отладки.
выразится в открытии чёрного окна с мигающим зелёным курсором. В это окно будет выводиться большое количество текстовых сообщений во время отладки. После
+
окончания работы с ReactOS, вы можете открыть файл с протоколом отладки, кроме того, можно просто скопировать в буфер обмена всё содержимое чёрного окна
+
PuTTY. Когда вы выключаете виртуальную машину, PuTTY переходит в неактивное состояние и выводит сообщение об ошибке, однако, когда вы перезапустите
+
виртуальную машину, вы можете подключиться к сессии заново, для этого вам нужно лишь нажать правой кнопкой на заголовке окна PuTTY и выбрать пункт меню
+
Restart session (Перезапустить сессию).
+
Сначала запустите ReactOS в виртуальной машине, выберите загрузку в режиме отладки (DEBUG MODE), затем откройте PuTTY и смотрите на протокол отладки.
+
  
 
<center>
 
<center>
[[File:rosdebug3.png|300px|]]
+
<gallery widths=300px>
 
+
File:rosdebug3.png|Выбор режима отладки
Выбор режима отладки
+
File:rosdebug4.png|ReactOS запущена + идёт вывод в PuTTY
 
+
</gallery>
 
+
[[File:rosdebug4.png|300px]]
+
 
+
ReactOS запущена + идёт вывод в PuTTY
+
 
</center>
 
</center>
  
 
Имеется предположение о том, что при передаче большого количества данных через именованные каналы может происходить повреждение выводимых в них данных. Если при отладке вы заметили такое поведение системы, то существует ещё один способ получения отладочного протокола:
 
Имеется предположение о том, что при передаче большого количества данных через именованные каналы может происходить повреждение выводимых в них данных. Если при отладке вы заметили такое поведение системы, то существует ещё один способ получения отладочного протокола:
  
 +
'''Com0com:''' Это мост между VirtualBox и PuTTY. Эта программа даёт вам возможность создать несколько пар виртуальных COM-портов, однако вам потребуется лишь одна пара (например Virtual Port Pair 0). Скачайте и установите [http://sourceforge.net/projects/com0com/files/com0com/ com0com]. Дополнительную информацию вы найдёте в статье [[com0com]]. В окне настройки программы вы увидите имена виртуальных последовательных портов (по умолчанию: "CNCA0" и "CNCB0"). Проверьте, правильно ли установлен драйвер com0com (например, при помощи Диспетчера устройств). Запустите виртуальную машину. В VirtualBox, пререйдите в "Свойства", "COM-порты", установите в списке "Режим порта" значение "Хост-устройство" (не "Хост-канал"). Затем, в поле Путь к порту/файлу введите "\\.\CNCA0". Далее, запустите Putty; переставьте переключатель в значение "Serial", а в поле "Serial line" введите "CNCB0", и нажмите на кнопку "open". Как уже упоминалось ранее, должно появиться чёрное окно, и, когда вы запустите ReactOS в отладочном режиме, в этом окне будет появляться текст, предмтавляющий собой протокол отладки.
  
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, имеющий цифровую подпись.
 
+
ВАЖНО: В 64-х битных системах Windows Vista, а также в более новых версиях ОС Windows для 64-битной архитектуры вы должны использовать драйвер com0com, имеющий цифровую подпись.
+
  
 
<gallery widths=300px>
 
<gallery widths=300px>
Строка 80: Строка 70:
 
</gallery>
 
</gallery>
  
Использование VMwareGateway
+
====Использование VMwareGateway====
  
Необходимо загрузить приложение VMwareGateway. В качестве службы его можно запустить воспользовавшись ключом командной строки /r (в Windows Vista вы должны вначале запустить CMD с правами Администратора системы). Загрузить сборку для x86/x64 можно здесь, при её использовании в Vista/Win7 не потребуется запускать VirtualBox с полномочиями Администратора. Далее, необходимо запустить службу, используя команду SC:
+
Необходимо загрузить приложение [http://l4ka.org/tools/vmwaregateway.php VMwareGateway]. В качестве службы его можно запустить воспользовавшись ключом командной строки '''/r''' (в Windows Vista вы должны вначале запустить CMD с правами Администратора системы). Загрузить сборку для x86/x64 можно [http://files.reactsoft.com/reactos/vmwaredebug/ здесь], при её использовании в Vista/Win7 не потребуется запускать VirtualBox с полномочиями Администратора. Далее, необходимо запустить службу, используя команду SC:
  
sc start vmwaregateway
+
  sc start vmwaregateway
В случае необходимости, отключите блокировку программы сетевым экраном. И наконец, используйте свой любимый telnet-клиент для подключения к localhost на порт 567.
+
В случае необходимости, отключите блокировку программы сетевым экраном. И наконец, используйте свой любимый telnet-клиент для подключения к ''localhost'' на порт 567.
  
Для настройки виртуальной машины, установите её в режим Host Pipe с следующим адресом канала:
+
Для настройки виртуальной машины, установите её в режим ''Host Pipe'' с следующим адресом канала:
  
\\.\pipe\vmwaredebug
+
  \\.\pipe\vmwaredebug
Убедитесь, что не установили галочку Create Pipe. VMwareGateway уже создал канал. Данные отладки должны появиться в вашем telnet-клиенте PuttyTel.
+
Убедитесь, что не установили галочку ''Create Pipe''. VMwareGateway уже создал канал. Данные отладки должны появиться в вашем telnet-клиенте [http://the.earth.li/~sgtatham/putty/latest/x86/puttytel.exe PuttyTel].
  
Linux
+
===Linux===
  
Установите пакет VirtualBox, способ установки зависит от используемого вами дистрибутива
+
*Установите пакет VirtualBox, способ установки зависит от используемого вами дистрибутива
В Debian или Ubuntu: sudo apt-get install virtualbox
+
  
Разумеется для отладки ReactOS вам также потребуется отладочная сборка ReactOS. ( Необходимо использовать ТОЛЬКО отдалочные сборки. Кроме того, вам потребуется 7-Zip для извлечения файла образа в формате ISO из архива 7z.
+
В Debian или Ubuntu:
Настройте последовательный порт в VirtualBox.
+
<pre>sudo apt-get install virtualbox</pre>
 +
 
 +
*Разумеется для отладки ReactOS вам также потребуется [http://www.reactos.org/getbuilds/ отладочная сборка ReactOS]. ( Необходимо использовать ТОЛЬКО отдалочные сборки. Кроме того, вам потребуется [http://www.7-zip.org/download.html 7-Zip] для извлечения файла образа в формате ISO из архива 7z.
 +
*'''Настройте последовательный порт в VirtualBox.'''
 
Произведите настройку VirtualBox в соответствии с картинкой чуть ниже.
 
Произведите настройку VirtualBox в соответствии с картинкой чуть ниже.
  
После открытия окна VirtualBox, нажмите на вкладку Свойства. Щёлкните на COM-порты.
+
**После открытия окна VirtualBox, нажмите на вкладку '''Свойства'''. Щёлкните на '''COM-порты'''.
В раскрывающемся списке Режим порта выберите Хост-канал, поставьте галочку около параметра Создать канал, параметр Путь к порту/файлу: /tmp/ReactOS-Debug.pipe
+
 
ВАЖНО: Не меняйте номер порта с "COM1" на что-либо другое. Оставьте его как COM1.
+
В раскрывающемся списке '''Режим порта''' выберите '''Хост-канал''', поставьте галочку около параметра '''Создать канал''', параметр '''Путь к порту/файлу:''' ''/tmp/ReactOS-Debug.pipe''
 +
 
 +
'''ВАЖНО:''' Не меняйте номер порта с "COM1" на что-либо другое. Оставьте его как COM1.
 
[[File:VirtualBox-4.0.8.Setup serial port for socat pipe.png|right|300px]]
 
[[File:VirtualBox-4.0.8.Setup serial port for socat pipe.png|right|300px]]
Используя minicom
+
 
 +
====Используя minicom====
  
 
Это краткое руководство по использованию терминального приложения minicom. Прежде всего установите его, набрав:
 
Это краткое руководство по использованию терминального приложения minicom. Прежде всего установите его, набрав:
  
sudo apt-get install minicom
+
  sudo apt-get install minicom
Настройка последовательного порта в minicom
+
 
 +
=====Настройка последовательного порта в minicom=====
 +
 
 +
*Выполнив команду "'''sudo minicom -s'''" вы сможете задать порт и сохранить файл конфигурации приложения (dfl = default)
 +
*Выберите "'''Configure serial ports'''". Назовите устройство '''unix#pipe_path''' где "pipe_path" это файл вроде '''/tmp/ReactOS-Debug.pipe''', который будет выполнять роль канала между виртуальной машиной и minicom.
  
Выполнив команду "sudo minicom -s" вы сможете задать порт и сохранить файл конфигурации приложения (dfl = default)
 
Выберите "Configure serial ports". Назовите устройство unix#pipe_path где "pipe_path" это файл вроде /tmp/ReactOS-Debug.pipe, который будет выполнять роль канала между виртуальной машиной и minicom.
 
 
Убедитесь, что pipe_path задан абсолютно одинаково и в minicom, и в VirtualBox.
 
Убедитесь, что pipe_path задан абсолютно одинаково и в minicom, и в VirtualBox.
 +
*Сохраните файл конфигурации при помощи Save config (dfl)
 +
*Выход по Exit
 +
*теперь, после запуска ВМ, введите "minicom" без sudo для запуска minicom от имени пользователя
  
Сохраните файл конфигурации при помощи Save config (dfl)
+
=====Перенаправление в файл (в Linux-хосте)=====
Выход по Exit
+
теперь, после запуска ВМ, введите "minicom" без sudo для запуска minicom от имени пользователя
+
Перенаправление в файл (в Linux-хосте)
+
  
Запустив minicom, нажмите Ctrl-A, а затем L. Введите имя файла, в который будут записываться сообщения.
+
Запустив minicom, нажмите '''Ctrl-A''', а затем '''L'''. Введите имя файла, в который будут записываться сообщения.
  
Используя socat
+
====Используя socat====
  
Только для просмотра
+
=====Только для просмотра=====
  
socat unix-client:pipe_path stdout
+
  socat unix-client:pipe_path stdout
 
Также вы можете выполнить это:
 
Также вы можете выполнить это:
  
socat unix-client:pipe_path stdio
+
  socat unix-client:pipe_path stdio
 
Замените "pipe_path" на путь к каналу, созданному вами в VirtualBox (т.е. "/tmp/ReactOS-Debug.pipe").
 
Замените "pipe_path" на путь к каналу, созданному вами в VirtualBox (т.е. "/tmp/ReactOS-Debug.pipe").
  
 
В том случае, если вы хотите перенаправить вывод socat в файл, воспользуйтесь следующей командой:
 
В том случае, если вы хотите перенаправить вывод socat в файл, воспользуйтесь следующей командой:
  
socat -u unix-client:pipe_path stdio OPEN:log_file_name,creat,trunc
+
  socat -u unix-client:pipe_path stdio OPEN:log_file_name,creat,trunc
 
Где log_file_name это файл, в который VirtualBox должен производить вывод данных из последовательного порта.
 
Где log_file_name это файл, в который VirtualBox должен производить вывод данных из последовательного порта.
  
 
Если в ReactOS произойдёт критический сбой, то вы всё равно сможете вводить команды в окне VirtualBox - т.е. внутри отладочной сессии. Вы увидите вводимые и выводимые данные в окне консоли, в котором запущен socat.
 
Если в ReactOS произойдёт критический сбой, то вы всё равно сможете вводить команды в окне VirtualBox - т.е. внутри отладочной сессии. Вы увидите вводимые и выводимые данные в окне консоли, в котором запущен socat.
  
В интерактивном окне (т.е. для получения обратной трассировки)
+
=====В интерактивном окне (т.е. для получения обратной трассировки)=====
  
В терминальном окне/вкладке выполните: $socat UNIX-CONNECT:/tmp/ReactOS-Debug.pipe PTY,link=/tmp/vbox_term
+
В терминальном окне/вкладке выполните:
 +
  $socat UNIX-CONNECT:/tmp/ReactOS-Debug.pipe PTY,link=/tmp/vbox_term
  
А в другом терминальном окне/вкладке выполните: $screen /tmp/vbox_term
+
А в другом терминальном окне/вкладке выполните:
 +
  $screen /tmp/vbox_term
  
Вывод в последовательный порт при использовании com0com
+
===Вывод в последовательный порт при использовании com0com===
  
Установите и настройте Com0com в соответствии с руководством по com0com.
+
Установите и настройте Com0com в соответствии с [[com0com|руководством по com0com]].
  
 
Активируйте первый последовательный порт на вашей машине ReactOS. Используйте номер порта "COM1", режим "хост-устройство" и путь к порту "COM4" или другой, в зависимости от того, какой виртуальный порт вы создали первым в comocom.
 
Активируйте первый последовательный порт на вашей машине ReactOS. Используйте номер порта "COM1", режим "хост-устройство" и путь к порту "COM4" или другой, в зависимости от того, какой виртуальный порт вы создали первым в comocom.
Строка 154: Строка 153:
 
Подсоедините ваш терминальный клиент ко второму виртуальному порту и запустите VirtualBox.
 
Подсоедините ваш терминальный клиент ко второму виртуальному порту и запустите VirtualBox.
  
Установка дополнений гостевой ОС
+
==Установка дополнений гостевой ОС==
  
 
В окне виртуальной машины зайдите в меню "Устройства" - "Установить дополнения гостевой ОС". CD с дополнениями будет смонтирован в CD-привод, откройте его, запустите файл VBoxWindowsAdditions.exe и следуйте инструкциям программы установки.
 
В окне виртуальной машины зайдите в меню "Устройства" - "Установить дополнения гостевой ОС". CD с дополнениями будет смонтирован в CD-привод, откройте его, запустите файл VBoxWindowsAdditions.exe и следуйте инструкциям программы установки.
  
Настройка аудио
+
'''ПРИМЕЧАНИЕ:''' Чтобы установить '''поддержку Direct3D''' (Direct3D Support) загрузите ReactOS в безопасном режиме, выбрав в Freeloader пункт ReactOS, нажав F8 и выбрав '''Safe Mode'''.
  
ReactOS имеет ограниченную поддержку звука еще с версии 0.3.9, но рекомендуется проверять звук в транке.
+
==Настройка аудио==
 +
 
 +
ReactOS имеет ограниченную поддержку звука еще с версии 0.3.9, но рекомендуется проверять звук в [http://www.reactos.org/getbuilds транке].
  
 
В настройках машины VirtualBox, разрешите аудио и задайте следующие настройки:
 
В настройках машины VirtualBox, разрешите аудио и задайте следующие настройки:
  
Аудиодрайвер: Windows DirectSound
+
*Аудиодрайвер: Windows DirectSound
Аудио-контроллер: ICH AC97
+
*Аудио-контроллер: ICH AC97
 +
 
 
После установки ReactOS:
 
После установки ReactOS:
 +
#Загрузите драйвер Intel AC 97 при помощи Менеджера приложений ReactOS
 +
#Извлеките файлы в '''C:\ReactOS\'''
 +
#Перезапустите виртуальную машину
 +
#Установите и запустите ваш любимый аудиопроигрыватель или мультимедиа-приложение (т.е. Winamp, VLC, MPlayer)
 +
#Откройте аудиофайл и включите режим воспроизведения
  
Загрузите драйвер Intel AC 97 при помощи Менеджера приложений ReactOS
+
===Известные проблемы===
Извлеките файлы в C:\ReactOS\
+
*Драйвер AC97 поддерживает только аудиопоток PCM в диапазоне 8000-44.100Кгц, 16Бит и 2 канала.
Перезапустите виртуальную машину
+
*Конвертирование частоты дискретизации пока не поддерживается
Установите и запустите ваш любимый аудиопроигрыватель или мультимедиа-приложение (т.е. Winamp, VLC, MPlayer)
+
*При смене частоты дискретизации аудиопотока могут возникнуть проблемы в работе драйвера.
Откройте аудиофайл и включите режим воспроизведения
+
Известные проблемы
+
  
Драйвер AC97 поддерживает только аудиопоток PCM в диапазоне 8000-44.100Кгц, 16Бит и 2 канала.
+
==Отладчик, встроенный в VirtualBox (низкоуровневый отладчик)==
Конвертирование частоты дискретизации пока не поддерживается
+
При смене частоты дискретизации аудиопотока могут возникнуть проблемы в работе драйвера.
+
Отладчик, встроенный в VirtualBox (низкоуровневый отладчик)
+
  
 
Встроенный отладчик имеется не только в QEMU, свой отладчик есть и в VirtualBox. Для более детального изучения этого отладчика прочтите главу "12.1.3. The built-in VM debugger" файла руководства пользователя VirtualBox.
 
Встроенный отладчик имеется не только в QEMU, свой отладчик есть и в VirtualBox. Для более детального изучения этого отладчика прочтите главу "12.1.3. The built-in VM debugger" файла руководства пользователя VirtualBox.
  
Активация отладчика
+
===Активация отладчика===
  
 
Отладчик ВМ доступен во всех версиях VirtualBox, однако по умолчанию он отключен, поскольку зачастую простому пользователю он практически не нужен. Существует два способа доступа к нему:
 
Отладчик ВМ доступен во всех версиях VirtualBox, однако по умолчанию он отключен, поскольку зачастую простому пользователю он практически не нужен. Существует два способа доступа к нему:
  
Консольное окно отладчика, отображаемое параллельно с основным окном ВМ
+
*Консольное окно отладчика, отображаемое параллельно с основным окном ВМ
При помощи протокола telnet на порту 5000
+
*При помощи протокола telnet на порту 5000
 +
 
 
Сам по себе отладчик может быть активирован тремя способами:
 
Сам по себе отладчик может быть активирован тремя способами:
  
Непосредственным запуском ВМ из командной строки VirtualBox --startvm с дополнительными аргументами --dbg,--debug, или --debug-command-line. Для дополнительных сведений прочтите справочные материалы по использованию VirtualBox.
+
*Непосредственным запуском ВМ из командной строки VirtualBox --startvm с дополнительными аргументами --dbg,--debug, или --debug-command-line. Для дополнительных сведений прочтите справочные материалы по использованию VirtualBox.
Установкой переменной окружения VBOX_GUI_DBG_ENABLED или VBOX_GUI_DBG_AUTO_SHOW в значение true перед запуском процесса VirtualBox. Установка этих переменных (проверяется лишь их наличие) будет принята во внимание и использована даже тогда, когда уже запущен самый первый процесс VirtualBox - окно выбора виртуальной машины. Во всех впоследствии запущенных ВМ отладчик будет активирован изначально.
+
*Установкой переменной окружения VBOX_GUI_DBG_ENABLED или VBOX_GUI_DBG_AUTO_SHOW в значение true перед запуском процесса VirtualBox. Установка этих переменных (проверяется лишь их наличие) будет принята во внимание и использована даже тогда, когда уже запущен самый первый процесс VirtualBox - окно выбора виртуальной машины. Во всех впоследствии запущенных ВМ отладчик будет активирован изначально.
Установка параметров GUI/Dbg/Enabled в true в файле конфигурации перед запуском ВМ. Эти параметры можно установить как глобально, так и для каждой ВМ в отдельности. Если нужно установить в отдельности для каждой ВМ - измените соответствующий машине файл .vbox, он представляет собой файл настроек виртуальной машины в формате XML.
+
*Установка параметров GUI/Dbg/Enabled в true в файле конфигурации перед запуском ВМ. Эти параметры можно установить как глобально, так и для каждой ВМ в отдельности. Если нужно установить в отдельности для каждой ВМ - измените соответствующий машине файл .vbox, он представляет собой файл настроек виртуальной машины в формате XML.
 +
 
 
Все эти параметры находятся:
 
Все эти параметры находятся:
  
X:\Users\%username%\.VirtualBox\VirtualBox.xml - для глобальной настройки
+
*X:\Users\%username%\.VirtualBox\VirtualBox.xml - для глобальной настройки
 
Путь внутри XML: VirtualBox/Global/ExtraData
 
Путь внутри XML: VirtualBox/Global/ExtraData
  
...\%VM_NAME%.vbox - для локальной настройки
+
*...\%VM_NAME%.vbox - для локальной настройки
 
Путь внутри XML: VirtualBox/Machine/ExtraData
 
Путь внутри XML: VirtualBox/Machine/ExtraData
  
Строка 205: Строка 209:
 
В результате в VirtualBox появится новый пункт меню 'Debug'. В этом меню пользователь может получить доступ к консоли отладчика.
 
В результате в VirtualBox появится новый пункт меню 'Debug'. В этом меню пользователь может получить доступ к консоли отладчика.
  
Примечание: возможно при таком способе активации отладчика потребуется перезапуск операционной системы.
+
'''Примечание:''' возможно при таком способе активации отладчика потребуется перезапуск операционной системы.
  
Использование отладчика
+
===Использование отладчика===
  
 
Синтаксис команд отладчика ВМ является некоторым подобием отладчиков от Microsoft и IBM, используемых в DOS, OS/2 и Windows. Пользователи, ранее работавшие с symdeb, CodeView, или отладчиком ядра OS/2, смогут без малейших проблем начать работать и с отладчиком ВМ VirtualBox. Наиболее важной и нужной из всех команд является команда 'help'.
 
Синтаксис команд отладчика ВМ является некоторым подобием отладчиков от Microsoft и IBM, используемых в DOS, OS/2 и Windows. Пользователи, ранее работавшие с symdeb, CodeView, или отладчиком ядра OS/2, смогут без малейших проблем начать работать и с отладчиком ВМ VirtualBox. Наиболее важной и нужной из всех команд является команда 'help'.
  
Для получения дополнительных сведений обратитесь к руководству по отладке VirtualBox.
+
Для получения дополнительных сведений обратитесь к [http://www.virtualbox.org/manual/ch12.html#ts_debugger руководству по отладке VirtualBox].
  
Дополнительная информация
+
==Дополнительная информация==
*Перенос файлов из основной ОС на виртуальный жёсткий диск
+
*[[ROS ft2vd|Перенос файлов из основной ОС на виртуальный жёсткий диск]]
 
{{ReactOS}}
 
{{ReactOS}}
 +
[[Категория:Переводы официальной вики]]

Текущая версия на 18:29, 4 апреля 2016

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 на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
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-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP