Saturday, November 21, 2009

FreeBSD 8.0 and VMWare Workstation

(For newcomers: есть предыдущие серии.)

Lots of refactoring and cleanup in the code, о которых пишут в news://gmane.comp.emulators.vmware.tools.announce, говорит, с одной стороны, о том что работа кипит, а с другой стороны, как испаряется, вместе с монотонным понижением температуры на улице, мое терпение к open-vm-tools.

Current status

VMware Workstation 6.5.2.
open-vm-tools: 2009.11.17-210370.
% uname -v
FreeBSD 8.0-RC3 #0: Tue Nov 10 07:50:36 UTC 2009 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC

Не работает:

  • hgfs (ядерный модуль, как всегда, вводит guest в панику при попытке монтирования). Это значит, что shared folders не работают.
  • Drag-and-Drop. Несмотря, на его полу-работающее состояние в прошлых open-vm-tools, ничего путного от текущей версии добиться не получилось.

В конце-концов я решил собрать свой вариант порта open-vm-tools, в котором выкинут неработающий мусор и сборка происходит с минимальными dependencies.

В принципе, можно конечно менерно не обновляться (как в FreeBSD 7.2 у меня до сих пор висят open-vm-tools-154848_2 от марта с.г.), но у vmtoolsd в старых версиях, например, течет память и он постепенно пухнет, опухает, тяжело ворочается и становиться неуклюжим.

Что полезного в порту

  • Мелкие утилиты (vmware-toolbox, vmware-rpctool, etc).
  • демон vmtoolsd с plugin'ом для синхронизации времени host<-guest (в комплект входит rc.subr).
  • vmware-user для copy & paste между host и guest. Кроме того, ему запрещено изменять screen resolution в guest (потому что это меня дико раздражало).

Все остальное выкусано. Для сборки нужен только Gtk 2.16. vmware-user должен запускаться где-то в районе ~/.xinitrc.

Скачать порт можно вот тут. Собирать, как обычно, а) распаковав архив куда глаза глядят и б) набрав:

# cd open-vm-tools-minimum
# make install clean

А по окончанию инсталляции, добавить в /etc/rc.conf:

vmware_vmtoolsd_enable=YES

и запустить демон vmtoolsd:

# /usr/local/etc/rc.d/vmware_vmtoolsd start

Btw, если у вас установлены проприетарные vmware tools или версия open-vm-tools из официальных портов FreeBSD, тогда удалите их сперва перед установкой этого порта и вычистите память от загруженных старых ядерных модулей и демонов.

Xorg 7.4

Т.к. драйверы мыши и видеокарты для VMware давно идут вместе c Xorg и есть в портах FreeBSD (x11-drivers/xf86-input-vmmouse и x11-drivers/xf86-video-vmware), все что тут можно посоветовать это:

  1. не давайте свежим иксам говорить с HAL касательно мыши--добавьте в /etc/X11/xorg.conf в секцию ServerLayout:

    Option   "AutoAddDevices" "false"
    

    и в секцию InputDevice для мыши:

    Driver   "vmmouse"
    

    и в /etc/rc.conf:

    moused_port=/dev/psm0
    moused_type=auto
    moused_enable=YES
    moused_flags="-r high"
    

    (после чего наберите:

    # /etc/rc.d/moused restart
    

    в cons25 у вас должен появится работающий курсор, иначе иксы без HAL не поймут где ваша мышь)

    Если вы этого не сделаете--ожидайте хаотчески скачущего курсора и паршивого настроения.

  2. убедитесь, что в секции Device в /etc/X11/xorg.conf стоит правильный драйвер:

    Driver   "vmware"
    
  3. если screen resolution в вашего лэптопа 1280x800, добавьте в секцию Monitor в /etc/X11/xorg.conf:

    HorizSync    1-10000
    VertRefresh  1-10000
    Modeline     "1280x800"  70.00   1280 1312 1344 1376  800 801 804 850
    
  4. поглядеть на минимальный готовый xorg.conf для Xorg 7.4 под FreeBSD 8 можно вот здесь.

(2009-11-22 Update)

Как оказалось, бегемот vmware-user кое как разрешает работать в Unity Mode (a feature that allows seamless integration of applications with the host desktop), ежели у вас имеется Workstation 6.5+. В порт добавилась 1 опция WITH_UNITY. Значит, набирая:

# make WITH_UNITY=1 install clean

можно (запустив vmware-user в иксах) кликнуть в меню Workstation View->Unity и наблюдать чудеса.

Правда, при таком режиме сборки порта, придется забыть про выковыривания из vmware-user пакости в виде измененияя screen resolution в guest, так что мой совет: соберайте без Unity--работает оно в связке Vista <-> FreeLSD 8 отвратительно медленно. Но выглядит, конечно, солидно. Но все-таки медленно. Но зато солидно.

Network and Sound

Тут новостей нет. Без всяких твиков с .vmx-файлами, FreeBSD в Workstation 6.5+ сразу видит сетевую карту как эмо, то есть я хочу сказать, как em0:

% ifconfig em0
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:a0:8d:b7
        inet 192.168.8.133 netmask 0xffffff00 broadcast 192.168.8.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active

Ядерный модуль vmxnet нужен только тому, кто любит составлять тикеты о багах, поэтому если это нерелевантно для вас, вы vmxnet лучше не используйте.

Звук, как и раньше, включается посредством:

# kldload snd_es137x

Пожалуй, на сегодня таки все.

No comments:

Post a Comment