VirtualBox — различия между версиями
(→Получение отладочных сообщений) |
|||
(не показано 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> | ||
− | + | <gallery widths=300px> | |
− | + | File:rosdebug3.png|Выбор режима отладки | |
− | Выбор режима отладки | + | File:rosdebug4.png|ReactOS запущена + идёт вывод в PuTTY |
− | + | </gallery> | |
− | + | ||
− | + | ||
− | + | ||
− | 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 в отладочном режиме, в этом окне будет появляться текст, предмтавляющий собой протокол отладки. | ||
− | + | '''ВАЖНО:''' В 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, способ установки зависит от используемого вами дистрибутива |
− | + | ||
− | Разумеется для отладки 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. | ||
− | |||
− | |||
Убедитесь, что pipe_path задан абсолютно одинаково и в minicom, и в VirtualBox. | Убедитесь, что pipe_path задан абсолютно одинаково и в minicom, и в VirtualBox. | ||
+ | *Сохраните файл конфигурации при помощи Save config (dfl) | ||
+ | *Выход по Exit | ||
+ | *теперь, после запуска ВМ, введите "minicom" без sudo для запуска minicom от имени пользователя | ||
− | + | =====Перенаправление в файл (в Linux-хосте)===== | |
− | + | ||
− | + | ||
− | Перенаправление в файл (в 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) | ||
+ | #Откройте аудиофайл и включите режим воспроизведения | ||
− | + | ===Известные проблемы=== | |
− | + | *Драйвер 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
Необходимо предпринять следующие действия:
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.