- Как пробросить видеокарту из хоста в гостевую виртуальную машину VirtualBox в Linux
- Шаг 1: настройка ядра для проброса видеокарты
- 1. Установка необходимых драйверов
- 2. Подготовка ядра для проброса видеокарты
- 3. Проверка проброса видеокарты
- Шаг 2: создание виртуального друга – гостевой виртуальной машины в VirtualBox
- Шаг 3: Cortana кричит на вас
- Видео:
- Проект Looking Glass a11 — проброс кадров из виртуалки
Как пробросить видеокарту из хоста в гостевую виртуальную машину VirtualBox в Linux
Виртуализация – это инструмент, который меняет мир IT в последнее время. Однако, есть некоторые моменты, связанные с графикой, которые не всегда просто решить. Например, при использовании виртуальных машин на хосте Linux, нередко возникает необходимость пробросить видеокарту в гостевую систему. И здесь на помощь приходит VirtualBox.
VirtualBox – это одно из наиболее популярных средств виртуализации, которое обеспечивает довольно широкий спектр возможностей для работы с виртуальными машинами. Однако, по умолчанию VirtualBox не поддерживает проброс видеокарты. Но существует такой момент как IOMMU (input/output memory management unit), который можно настроить для проброса видеокарты. Именно об этом мы сегодня поговорим.
Для настройки проброса видеокарты в гостевую машину в VirtualBox под Linux, необходимо выполнить несколько шагов. Итак, включим IOMMU в ядре Linux на хосте. Затем, мы должны установить пакеты ovmf, virt-viewer и synergy на хосте, а также на гостевой машине в системе Windows. Важно отметить, что в VirtualBox, к сожалению, нельзя использовать VMware Tools, поэтому вам придется установить и настроить synergy для обмена данными между хостом и гостем. Чтобы проверить, что ваша видеокарта поддерживает проброс, используйте команду lspci в терминале.
Все эти шаги будут подробно описаны в данной статье. Вы узнаете о полезных командах, с помощью которых настроите проброс видеокарты между хостом и гостем, а также получите информацию о различных настройках и функциях VirtualBox.
Шаг 1: настройка ядра для проброса видеокарты
1. Установка необходимых драйверов
Виртуальная машина VirtualBox использует встроенные драйверы для управления видеокартой на хостовой системе. Прежде всего, вам необходимо установить драйвер qemu_video_drv. В большинстве дистрибутивов Linux этот драйвер устанавливается автоматически при установке VirtualBox. Проверьте наличие драйвера с помощью команды:
lsmod | grep "qemu_video_drv"
Если драйвер не найден, попробуйте установить его вручную с помощью команды:
sudo modprobe qemu_video_drv
После установки драйвера перезапустите компьютер для применения изменений.
2. Подготовка ядра для проброса видеокарты
Для проброса видеокарты вам понадобятся дополнительные модули ядра. Убедитесь, что необходимые модули активны. Для этого введите команду:
lsmod | grep "vfio"
Если модули vfio не активны, выполните следующие действия:
- Откройте файл /etc/modprobe.d/qemu.conf с помощью текстового редактора:
- Добавьте следующие строки в файл qemu.conf и сохраните его:
- Перезагрузите компьютер, чтобы применить изменения.
sudo nano /etc/modprobe.d/qemu.conf
options vfio-pci ids=10de:1c82,10de:0fb9
3. Проверка проброса видеокарты
После настройки ядра следует проверить работу проброса видеокарты. Для этого выполните следующие шаги:
- Установите необходимые пакеты для работы с графической картой:
- Создайте виртуальную машину с помощью команды virsh:
- Запустите виртуальную машину:
- Запустите просмотрщик графического интерфейса Virtual Machine Manager с помощью команды virt-viewer:
- Если виртуальная машина загрузилась и вы видите её экран в просмотрщике, значит проброс видеокарты прошел успешно.
- Для удаления проброса видеокарты выполните следующую команду:
sudo apt install qemu-system-x86 ovmf libvirt-clients libvirt-daemon-system
sudo virsh define [путь к XML-файлу с описанием виртуальной машины]
sudo virsh start [имя виртуальной машины]
virt-viewer [имя вашей виртуальной машины]
sudo virsh qemu-monitor-command --hmp [имя вашей виртуальной машины] "device_del pci_0000_00_02_0"
Поздравляю! Вы успешно настроили ядро вашей операционной системы для проброса видеокарты. Теперь вы можете использовать виртуальную машину с полноценным доступом к видеокарте на хостовой системе.
Шаг 2: создание виртуального друга – гостевой виртуальной машины в VirtualBox
Теперь, когда у нас есть настроенный хост и работающая виртуальная машина с установленной системой, давайте перейдем к созданию гостевой виртуальной машины в VirtualBox и настраиваем проброс видеокарты.
1. Запустим VirtualBox важным вас короткая meditation 30-области to_enter(tid_pick) включительно);
2. Нажмите на кнопку «Новая» для создания новой виртуальной машины;
3. Введите имя виртуальной машины и выберите операционную систему — «Linux» и «Ubuntu (64-разрядная)». Не забудьте выбрать нужную версию;
4. На этом этапе установка виртуальной машины схожа с установкой любой другой виртуальной машины. Выберите количество RAM и создайте новый виртуальный жесткий диск;
5. Далее в настройках виртуальной машины зайдите в раздел «Настроить» и перейдите на вкладку «Дисплей». Здесь вам понадобится настроить прямой доступ к видеокарте, поэтому выберите в разделе «Количественный контроль доступа» пункт «VirtIO GPU с официальной стратегией»;
6. Теперь создаём виртуальный диск этой машины:
qemu-img create -f raw ~/vm.img 20G
7. Затем, запустим машину с нашим новым образом:
virt-viewer -c qemu:///system ~/vm.img &
8. Теперь мы находимся в гостевой системе. Найдите устройство видеоадаптера с помощью команды lspci | grep -i «vga» и запишите его параметры;
9. Вам понадобится установить пакет gvt-g с поддержкой нашей видеокарты. Этот пакет позволит нам добиться проброса видеокарты в гостевую виртуальную машину. Установим его с помощью команды:
sudo apt-get install -y gvt-g
10. Теперь настраиваем iommu для возможности проброса видеокарты. Откройте файл /etc/default/grub с помощью текстового редактора:
sudo nano /etc/default/grub
Найдите строку, начинающуюся с GRUB_CMDLINE_LINUX_DEFAULT и добавьте следующий флаг:
«intel_iommu=on»
То есть, строка должна выглядеть примерно так:
GRUB_CMDLINE_LINUX_DEFAULT=»quiet intel_iommu=on splash»
11. Сохраните файл и обновите конфигурацию grub с помощью команды:
sudo update-grub
12. После этого необходимо загрузить новые настройки системы reboot, чтобы учесть изменения;
13. После перезагрузки проверьте, что устройство видеоадаптера доступно в гостевой системе, выполнив команду lspci | grep -i «vga». Если видеокарта отображается в списке, значит настройка прошла успешно;
14. Теперь вам нужно удалить устройство видеоадаптера из гостевой системы для дальнейшего проброса виртуальной машине. Для этого выполните команду:
sudo virsh nodedev-detcached ‘(your video device ID)’
Где ‘(your video device ID)’ — идентификатор вашего видеоадаптера, который вы записали на 8 шаге;
15. После удаления видеоадаптера выполните следующую команду:
sudo sh -c ‘echo «options vfio-pci ids=(your video device ID)» > /etc/modprobe.d/vfio.conf’
Где ‘(your video device ID)’ — идентификатор вашего видеоадаптера, который вы записали на 8 шаге;
16. Затем загрузите модуль vfio-pci с помощью команды:
sudo modprobe vfio-pci
17. Теперь у нас есть настроенная гостевая виртуальная машина, готовая для проброса видеокарты в виртуальную машину VirtualBox. Перед выполнением следующего шага, вам понадобится ваш HDMI образец настроек виртуального видеоадаптера в текущем моменте.
Шаг 3: Cortana кричит на вас
Для проброса видеокарты из хостовой операционной системы в гостевую виртуальную машину VirtualBox в Linux вам понадобится использовать команду lspci. Если вы столкнулись с проблемой при использовании VirtualBox, вы можете попробовать использовать другие виртуальные машины, такие как VMware или QEMU.
В этом шаге мы пробросим видеокарту из хостовой операционной системы в виртуальную машину VirtualBox. Для этого запустите терминал и выполните следующие команды:
lspci | grep -i vga | |
sudo virsh edit имя_виртуальной_машины | Откроется редактор конфигурационного файла виртуальной машины. Найдите секцию <devices> и добавьте следующую строку: |
<hostdev mode="subsystem" type="pci" managed="yes"> | Замените значения в строке <address> на значения, которые вы получили с помощью команды lspci. Например, если ваша видеокарта имеет адрес «00:02.0», замените значения на «0x00», «0x02» и «0x0». Сохраните конфигурационный файл и закройте его. |
sudo virsh start имя_виртуальной_машины | Запустите виртуальную машину. |
sudo apt-get install virt-viewer | Установите программу virt-viewer для просмотра виртуального экрана. |
sudo virsh attach-device имя_виртуальной_машины /path/to/cirrus_virtio_2000_3d.xml | Создайте файл cirrus_virtio_2000_3d.xml с содержимым, указанным по ссылке в источнике полезных ссылок. Затем выполните команду, чтобы присоединить его к виртуальной машине. |
sudo virsh shutdown имя_виртуальной_машины | Выключите виртуальную машину. |
sudo virsh start имя_виртуальной_машины | Запустите виртуальную машину снова. |
sudo virsh ttyconsole имя_виртуальной_машины | Откройте консоль виртуальной машины. |
После завершения этих шагов вы сможете использовать видеокарту в виртуальной машине VirtualBox. Убедитесь, что видеокарта работает, подключив к ней монитор с помощью кабеля HDMI или VGA.
Внимание: эти шаги могут отличаться в зависимости от вашей системы. Используйте предоставленные инструкции как базовое руководство и при необходимости найдите более подробные инструкции для вашей конкретной ситуации.
В следующем шаге мы настроим средство обмена данными между хостовой и гостевой операционной системой.
Видео:
Проект Looking Glass a11 — проброс кадров из виртуалки
Проект Looking Glass a11 — проброс кадров из виртуалки door LinuxComp Tutorial 🇷🇺 4.586 weergaven 5 jaar geleden 10 minuten en 24 seconden