Показаны сообщения с ярлыком ubuntu. Показать все сообщения
Показаны сообщения с ярлыком ubuntu. Показать все сообщения

8 нояб. 2013 г.

3D ускорение в гостевых системах Ubuntu

Конспект поста 3D Acceleration with Ubuntu guests.

Вы создали виртуальную машину  с гостевой системой Ubuntu, в настройках включили 3D-ускорение, поставили гостевые дополнения, но вам кажется, что ускорения графики нет?!
Существует простой способ проверить работу 3D-ускорения  - в  терминале выполните команду:
/usr/lib/nux/unity_support_test -p
Если в результате вы увидите нечто подобное...

OpenGL vendor string:   VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x300)
OpenGL version string:  2.1 Mesa 8.0.4

Not software rendered:    no
Not blacklisted:          yes
GLX fbconfig:             yes
GLX texture from pixmap:  yes
GL npot or rect textures: yes
GL vertex program:        yes
GL fragment program:      yes
GL vertex buffer object:  yes
GL framebuffer object:    yes
GL version is 1.4+:       yes

Unity 3D supported:       no


... то это означает, что в гостевой не работает OpenGL драйвер VirtualBox. Одним из решений этой проблемы является ранняя принудительная загрузка драйвера с помощью команды

sudo bash -c 'echo vboxvideo >> /etc/modules'
После чего вам нужно перезагрузить вашу гостевую систему и убедиться, что для OpenGL рендеринга используется Chromium. Снова выполним команду
/usr/lib/nux/unity_support_test -p
Вывод должен быть примерно таким:
 OpenGL vendor string:   Hummper
OpenGL renderer string: 
Chromium
OpenGL version string:  2.1 Chromium 1.9

Not software rendered:    yes

Not blacklisted:          yes
GLX fbconfig:             yes
GLX texture from pixmap:  yes
GL npot or rect textures: yes
GL vertex program:        yes
GL fragment program:      yes
GL vertex buffer object:  yes
GL framebuffer object:    yes
GL version is 1.4+:       yes

Unity 3D supported:       yes

21 мая 2013 г.

Как я сделал PCI passthrough на Intel платформе.

Мне хотелось бы окончательно избавится от Windows раздела на моем жестком диске и работать с некотрыми Windows программами  без костылей (иногда и поиграть) и без необходимости выхода из основной системы. Другими словами иметь виртуалку в которой полноценно работает аппаратное ускорение графики, RAID, USB, а также pci устройства которые не поддерживаются virtualbox.

Исходные данные

  • Материнская плата H55M-E33(MS-7636) 
  • Процессор Intel® Core™ i5 CPU 650
  • ОС Linux 3.2.0-43-generic x86_64 Ubuntu 12.04.2 LTS 
  • VirtualBox 4.2.12r84980 

 Процесс

1 Включаем поддержку IOMMU в ядре. Для этого в файле /etc/default/grub меняю строку
GRUB_CMDLINE_LINUX="" 
на
GRUB_CMDLINE_LINUX="intel_iommu=on" 
2 Обновляем загрузчик grub
$sudo update-grub 
3 После перезагрузки выполням
$dmesg | grep -i -e iommu -e dmar 
в выводе должны быть подобные строки:
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). Я делал с помощью команды:
$sudo lspci -vv | less 
6  Смотрим какой модуль ядра оно использует:
$ lspci -k -s 00:1b

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 строку
blacklist snd-hda-intel 
и выполним команду
$sudo update-initramfs -u 
8 Перегружаем компьютер и пробрасываем устройство в гостевую:
$vboxmanage modifyvm u1204 --pciattach 00:1b.0@01:05.0 

При успешном пробросе не должно быть сообщений. 01:05.0  это любой адрес pci устройства, который не занят в гостевой. Согласно документации по virtualbox у гостевой системы должны быть  включены в настройках VT-x/AMD-V и nested paging, а на хосте должн быть установлен Oracle VM VirtualBox Extension Pack.
9 Запускаем гостя, смотрим в нем, что устройство появилось:
$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).

Ссылки: 

https://www.virtualbox.org/manual/ch09.html#pcipassthrough
https://www.virtualbox.org/ticket/5252
http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM
http://wiki.xensource.com/wiki/VTdHowTo
http://www.intel.com/support/motherboards/desktop/sb/CS-030922.htm?wapkw=%28vt-d%29

27 апр. 2012 г.

Подключение VDI диска к хосту linux

Я проверял работу на своей Ubuntu 10.10.
  • Запускае терминал
  • Ставим qemu-kvm
  • $sudo apt-get install qemu-kvm
  • Экспортируем образ VDI диска
  • $sudo qemu-nbd .VirtualBox/HardDisks/test.vdi -v -c /dev/nbd2 nbd2 - это блочное устройсто NBD, список доступных устройств можно посмотреть командой ls /dev/nbd*. Должны получить примерно такое сообщение
    NBD device /dev/nbd2 is now connected to file .VirtualBox/HardDisks/test.vdi
  • Запускаем второй терминал
  • Проверяем
  • $sudo fdisk -l /dev/nbd2
    Диск /dev/nbd2: 8589 МБ, 8589934592 байт

  • Монтируем нужный раздел
  • $sudo mount /dev/nbd2p1 /mnt
  • После выполнения нужных вам действий отключаем раздел
  • $sudo umount /mnt
  • Убиваем запущенный в первом терминале процесс qemu-nbd (ctrl-c)
Все просто. man qemu-nbd вам в помощь.

18 нояб. 2010 г.

Canonical обзавелась системой для управления облачными вычислениями корпоративного класса

Компания Convirture, разработчик корпоративной системы управления облачными вычислениями на базе Xen и KVM и Canonical, создатель популярного дистрибутива Linux Ubuntu, объявили о партнерстве, направленном на создание инструментов управления виртуальными машинами на базе Ubuntu.

Подробнее...