Двойная загрузка виртуальных машин VMWare под Linux. Часть 2. Графика.
Такие вкусные возможности, как то освобождение курсора из окна виртуальной машины без нажатия горячих клавиш или Drag and Drop требуют установки специальных драйверов.
Они входят как и в официальные VMWARE Tools так и в их открытую версию.
Ставим их штатными средствами:
aptitude install xserver-xorg-video-vmware xserver-xorg-input-vmmouse open-vm-toolbox
Для переключения между драйверами при запуске компьютера можно воспользоваться несложным скриптом, базирующемся частично на исходном коде open-vm-tools:
#!/bin/sh exit_if_not_in_vm () { if [ ! -x /usr/bin/vmware-checkvm ] || ! /usr/bin/vmware-checkvm > /dev/null 2>&1 then echo "Not starting as we're not running in a vm." cp -f /etc/X11/xorg.conf.realpc /etc/X11/xorg.conf && echo “Real Videocard driver selected” exit 0 fi } case "${1}" in start) # Check if we're running inside VMWare exit_if_not_in_vm cp -f /etc/X11/xorg.conf.vmware /etc/X11/xorg.conf && echo “VMWARE X Driver selected” ;; *) echo “VMWARE Video Driver Xorg config changer”; exit 1; ;; esac
Примерный вид xorg.conf.vmware:
Section "InputDevice" Identifier "VMware Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" EndSection Section "InputDevice" Identifier "VMware Mouse" Driver "vmmouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Emulate3Buttons" "true" Option "ZAxisMapping" "4 5" EndSection Section "Device" Identifier "VMware SVGA" Driver "vmware" EndSection Section "Screen" Identifier "Default Screen" Device "VMware SVGA" Monitor "vmware" # Don't specify DefaultColorDepth unless you know what you're # doing. It will override the driver's preferences which can # cause the X server not to run if the host doesn't support the # depth. Subsection "Display" # VGA mode: better left untouched Depth 4 Modes "640x480" ViewPort 0 0 EndSubsection Subsection "Display" Depth 15 Modes "800x600" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "800x600" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "800x600" ViewPort 0 0 EndSubsection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "VMware Keyboard" "CoreKeyboard" InputDevice "VMware Mouse" "CorePointer" EndSection Section "Monitor" Identifier "vmware" VendorName "VMware, Inc" HorizSync 1-10000 VertRefresh 1-10000 EndSection
В нем настроен и сам адаптер чтобы можно было без нажатий на Hotkey перемещать мышь между хостом и гостем, так и сам драйвер виртуальной мышки, чтобы движения были не судорожными. При желании можно указать другие разрешения и глубину цвета.
Соответственно в xorg.conf.realpc у вас должен быть конфигурационный файл для обычной видеокарты, а в xorg.conf.vmware — для виртуальной.
Так же у вас обязательно должны стоять open-vm-tools, так как программа для проверки реальный это компьютер или нет входит
Сам скрипт надо положить в /etc/init.d/checkvmvideo к примеру и сделать его исполняемым:
chmod +x /etc/init.d/checkvmvideo
Следующим шагом надо заставить этот скрипт стартовать при старте системы что делается проще простого:
update-rc.d checkvmvideo defaults
На что система вам ответит чемто похожим на:
update-rc.d: warning: /etc/init.d/checkvmvideo missing LSB information update-rc.d: see Adding system startup for /etc/init.d/checkvmvideo ... /etc/rc0.d/K20checkvmvideo -> ../init.d/checkvmvideo /etc/rc1.d/K20checkvmvideo -> ../init.d/checkvmvideo /etc/rc6.d/K20checkvmvideo -> ../init.d/checkvmvideo /etc/rc2.d/S20checkvmvideo -> ../init.d/checkvmvideo /etc/rc3.d/S20checkvmvideo -> ../init.d/checkvmvideo /etc/rc4.d/S20checkvmvideo -> ../init.d/checkvmvideo /etc/rc5.d/S20checkvmvideo -> ../init.d/checkvmvideo
Все. Теперь при старте системы будет проверка на виртуальную машину и выбираться правильный конфиг X.org

