You are not logged in.
Before anything, the packages open-vm-* are in community, they should be available for x86_64 when that maintainer decides it is time. Before going through this how to, search for the packages in pacman, if they are not present, good luck following my step by step.
- Get the PKGBUILD from abs repository for i686 -
sudo -e /etc/abs.conf
Change these two lines (only)
ARCH="i686"
REPOS=(community)
sudo abs
mkdir -p ~/arch.abs
cd ~/arch.abs
mkdir -p community/{system,modules}
cp -R {/var/abs/,}community/system/open-vm-tools/
cp -R {/var/abs/,}community/modules/open-vm-tools-modules/
Now, you may want to revert the changes in /etc/abs.conf.
- Enable Unity -
Since we are going to build the package, I chose to make it depend on uriparser, which is in AUR and provides support for unity.
mkdir -p aur/uriparser
cd aur/uriparser
wget aur.archlinux.org/packages/uriparser/uriparser/PKGBUILD
note that the dep on libxss is also necessary for unity.
- Enable DnD V3 protocol -
I do not know what the difference is and the old protocol is still supported. Feel free to either add a dep on gtkmm or live without: no gtkmm dep and configure with --without-gtkmm
- Disable support for nicinfo -
libdnet needs to be compiled with -fPIC to be linked properly by open-vm-tools
- review, patch PKGBUILD, compile and install -
still in the directory for uriparser
makepkg -s
sudo pacman -U --asdeps uriparser-*.pkg.tar.gz
change to the dir for open-vm-modules
patch PKGBUILD:
--- PKGBUILD-orig 2009-05-12 15:39:05.671978827 +0200
+++ PKGBUILD 2009-05-12 19:33:12.104432747 +0200
@@ -6,15 +6,15 @@
pkgver=2009.04.23
_pkgsubver=162451
_kernver=`pacman -Q kernel26 | cut -d . -f 3 | cut -f 1 -d -`
-pkgrel=1
+pkgrel=1_ML
pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
-arch=('i686')
+arch=('x86_64')
url="http://open-vm-tools.sourceforge.net/"
license=('GPL')
-makedepends=('libdnet' 'icu')
+makedepends=('glib2' 'gtk2' 'libx11' 'libxss' 'libdnet' 'icu' 'uriparser')
depends=("kernel26>=2.6.${_kernver}" "kernel26<2.6.`expr ${_kernver} + 1`")
install=$pkgname.install
-source=(http://easynews.dl.sourceforge.net/sourceforge/open-vm-tools/open-vm-tools-$pkgver-${_pkgsubver}.tar.gz)
+source=(http://download.sourceforge.net/sourceforge/open-vm-tools/open-vm-tools-$pkgver-${_pkgsubver}.tar.gz)
md5sums=('3ccdf1d0b45926ca98740994b8e52cdc')
build() {
@@ -23,7 +23,7 @@
cd "$srcdir/open-vm-tools-$pkgver-${_pkgsubver}"
- ./configure --prefix=/usr --disable-unity
+ ./configure --prefix=/usr --without-gtkmm --disable-docs
(cd modules && make modules) || return 1
makepkg -s
sudo pacman -U --asdeps open-vm-modules-*.pkg.tar.gz
change to the dir for open-vm-tools
Add the two patches I provide in the next forum post and patch PKGBUILD
--- PKGBUILD-orig 2009-05-12 15:34:08.422037378 +0200
+++ PKGBUILD 2009-05-13 09:36:44.884151938 +0200
@@ -5,24 +5,31 @@
pkgname=open-vm-tools
pkgver=2009.04.23
_pkgsubver=162451
-pkgrel=4
+pkgrel=4_ML
pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
-arch=('i686')
+arch=('x86_64')
url="http://open-vm-tools.sourceforge.net/"
license=('LGPL')
-depends=('open-vm-tools-modules' 'libdnet' 'icu' 'procps')
-optdepends=('gtkmm' 'libnotify' 'libxtst')
+depends=('open-vm-tools-modules' 'icu' 'procps' 'uriparser')
+optdepends=('doxygen' 'gtkmm' 'libdnet' 'libnotify' 'libxtst')
install=$pkgname.install
-source=(http://switch.dl.sourceforge.net/$pkgname/$pkgname-$pkgver-${_pkgsubver}.tar.gz)
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-${_pkgsubver}.tar.gz)
md5sums=('3ccdf1d0b45926ca98740994b8e52cdc')
build() {
cd "$srcdir/$pkgname-$pkgver-${_pkgsubver}"
- ./configure --prefix=/usr --disable-unity --without-kernel-modules
+ # libdnet fails to link, requires -fPIC C[XX]FLAGS
+ # doc fail, wrong dir (build instead of api/build)
+ ./configure --prefix=/usr --without-kernel-modules --without-dnet --disable-docs
+
make || return 1
make install DESTDIR=$pkgdir || return 1
+ cd $pkgdir
+ patch -Np1 -i ../suspend-vm-default.patch || return 1
+ patch -Np1 -i ../resume-vm-default.patch || return 1
+
ln -fs /usr/sbin/mount.vmhgfs $pkgdir/sbin/mount.vmhgfs || return 1
install -D -m 755 $startdir/open-vm-tools.rc.d $pkgdir/etc/rc.d/open-vm-tools && \
makepkg -s
sudo pacman -U open-vm-tools-*.pkg.tar.gz
Last edited by Synss (2009-05-13 07:38:42)
Offline
- Patches -
Some files in /etc/vmware-tools also need patching (which should be done before installation) because Archlinux uses BSD-style network scripts instead of the sysv init scripts vmware expects (which is a reasonable expectation on GNU/Linux!)
Put these files in the same directory as the PKGBUILD for open-vm-tools
suspend-vm-default.patch
--- pkg/etc/vmware-tools/suspend-vm-default-orig 2009-05-13 08:55:15.597688761 +0200
+++ pkg/etc/vmware-tools/suspend-vm-default 2009-05-13 08:56:11.771255575 +0200
@@ -25,37 +25,6 @@
echo `date` ": Executing '$0'"
echo
-find_networking_script() {
- local script="error"
- for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do
- if [ -d "$dir/rc0.d" ] &&
- [ -d "$dir/rc1.d" ] &&
- [ -d "$dir/rc2.d" ] &&
- [ -d "$dir/rc3.d" ] &&
- [ -d "$dir/rc4.d" ] &&
- [ -d "$dir/rc5.d" ] &&
- [ -d "$dir/rc6.d" ]; then
-
- # Now find the appropriate networking script.
- if [ -d "$dir/init.d" ]; then
- if [ -x "$dir/init.d/network" ]; then
- script="$dir/init.d/network"
- elif [ -x "$dir/init.d/networking" ]; then
- script="$dir/init.d/networking"
- fi
- else
- if [ -x "$dir/network" ]; then
- script="$dir/network"
- elif [ -x "$dir/networking" ]; then
- script="$dir/networking"
- fi
- fi
- fi
- done
-
- echo "$script"
-}
-
save_active_NIC_list() {
ifconfig_path=`which ifconfig 2>/dev/null`
if [ $? ]; then
@@ -76,7 +45,7 @@
save_active_NIC_list
-network=`find_networking_script`
+network=/etc/rc.d/network
if [ "$network" != "error" ]; then
"$network" stop
# If the network is down, this may fail but that's not a good reason
resume-vm-default.patch
--- pkg/etc/vmware-tools/resume-vm-default-orig 2009-05-13 08:57:19.359887162 +0200
+++ pkg/etc/vmware-tools/resume-vm-default 2009-05-13 08:58:01.385676276 +0200
@@ -25,37 +25,6 @@
echo `date` ": Executing '$0'"
echo
-find_networking_script() {
- local script="error"
- for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do
- if [ -d "$dir/rc0.d" ] &&
- [ -d "$dir/rc1.d" ] &&
- [ -d "$dir/rc2.d" ] &&
- [ -d "$dir/rc3.d" ] &&
- [ -d "$dir/rc4.d" ] &&
- [ -d "$dir/rc5.d" ] &&
- [ -d "$dir/rc6.d" ]; then
-
- # Now find the appropriate networking script.
- if [ -d "$dir/init.d" ]; then
- if [ -x "$dir/init.d/network" ]; then
- script="$dir/init.d/network"
- elif [ -x "$dir/init.d/networking" ]; then
- script="$dir/init.d/networking"
- fi
- else
- if [ -x "$dir/network" ]; then
- script="$dir/network"
- elif [ -x "$dir/networking" ]; then
- script="$dir/networking"
- fi
- fi
- fi
- done
-
- echo "$script"
-}
-
rescue_NIC() {
niclist="/var/run/vmware-active-nics"
@@ -88,7 +57,7 @@
# main
#
-network=`find_networking_script`
+network=/etc/rc.d/network
if [ "$network" != "error" ]; then
"$network" restart
# Continue even if the networking init script wasn't successful.
Last edited by Synss (2009-05-13 07:32:35)
Offline
- Make use of all that -
start /etc/rc.d/open-vm-tools (and add it to rc.conf)
Useful info is provided at http://open-vm-tools.wiki.sourceforge.net/Packaging
But in short, you need to have an instance of vmware-user to be started for copy-paste between the host and the guest under X. I tested, it works.
Mounting the host FS also works.
specifiying xorg.conf the vmmouse driver in xorg.conf (after installation with pacman) works.
vmxnet is not loaded automatically but can be loaded manually (modprobe) in any case, I had no problem with networking from within the VM.
Even Unity works (also needs vmware-user).
That is Perfect!!
Offline