Как в virtualbox подключить pci
Обновлено: 04.07.2024
Мне хотелось бы окончательно избавится от Windows раздела на моем жестком диске и работать с некотрыми Windows программами без костылей (иногда и поиграть) и без необходимости выхода из основной системы. Другими словами иметь виртуалку в которой полноценно работает аппаратное ускорение графики, RAID, USB, а также pci устройства которые не поддерживаются virtualbox.
Исходные данные
Процесс
1 Включаем поддержку IOMMU в ядре. Для этого в файле /etc/default/grub меняю строку
Intel-IOMMU: enabled
DMAR: DRHD base: 0x000000fed90000 flags: 0x0
IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c9008020e30272 ecap 1000
vboxpci: IOMMU found
Если таких или похожих строк нет, то возможно у вас в биосе отключена Vt-d, либо процессор или материнская плата не поддерживает IOMMU.
4 Проверим, есть ли устройства которые можно пробросить. Если нет строк с FLReset+ тогда вряд ли получится. У меня так:
$ sudo lspci -vv | grep -i flreset+
ExtTag- RBE- FLReset+
5 Если функция есть, то ищем устройства которые можно пробросить. В моей системе нашлость только одно такое PCI устройство 00:1b.0 (встроенный в материнку звуковой чип Intel). Я делал с помощью команды:
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06) Subsystem: Micro-Star International Co., Ltd. Device 7636
Kernel driver in use:snd-hda-intel
Kernel modules: snd-hda-intel
7 Запрещаем его загрузку, добавив в /etc/modprobe.d/blacklist.conf строку
8 Перегружаем компьютер и пробрасываем устройство в гостевую:
$lspci -s
01:05 01:05.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
Звуковая карта определилась гостевой ОС и что самое главное заработала, т.е. звук гостевой системы выводится на физическое устройство хоста. В ходе моих экспериментов многие устройства успешно пробрасывались (без FLReset+) и виделись ядром гостя, но работать отказывались. Были случаи, что система хоста зависала, так что будьте осторожны (на этапе 9), если будете повторять. К сожалению GPU и USB пока пробросить не удалось, что является моей конечной целью.
Обновления заметки:
Удалось успешно прокинуть USB хоста, причем я пропускал шаги 6 и 7 .
$lspci | grep USB
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
Флешка видится и нормально работает. Видеокамера работает показывает несколько секунд, а потом изображение пропадает (mplayer tv:// выдает v4l2: select timeout).
Читайте также: