Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wiki:open_vm_tools [2013/06/19 08:38] – andyj | wiki:open_vm_tools [2013/06/19 13:48] (current) – andyj | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Open VM Tools Background and Assumptions ====== | ====== Open VM Tools Background and Assumptions ====== | ||
- | |||
- | This page is under construction. Proceed at your own peril. May be ready on 2013-06-19. | ||
The procedure for making the proprietary VMWare Tools and Open VM Tools are very similar. As it turns out, the Open VM Tools package is incomplete, and so we must fill in the gaps based on what we know from VMWare Tools. In particular, two files in the ''/ | The procedure for making the proprietary VMWare Tools and Open VM Tools are very similar. As it turns out, the Open VM Tools package is incomplete, and so we must fill in the gaps based on what we know from VMWare Tools. In particular, two files in the ''/ | ||
Line 30: | Line 28: | ||
- libdnet | - libdnet | ||
- fuse | - fuse | ||
+ | - squashfs-tools-4.x | ||
===== Abbreviated steps ===== | ===== Abbreviated steps ===== | ||
Line 35: | Line 34: | ||
- Compile Open VM Tools | - Compile Open VM Tools | ||
- Create Open VM Tools setuid links | - Create Open VM Tools setuid links | ||
- | - Create | + | - Create |
- Create TCZ extension | - Create TCZ extension | ||
+ | - Install TCZ extension | ||
===== Compile Open VM Tools ===== | ===== Compile Open VM Tools ===== | ||
Line 50: | Line 50: | ||
- Update the MODULES_DIR path to ''/ | - Update the MODULES_DIR path to ''/ | ||
- Either: Add '' | - Either: Add '' | ||
+ | Run as root, if not already su'ed, for the rest of this procedure. | ||
Run make: | Run make: | ||
< | < | ||
make | make | ||
mkdir TCZ | mkdir TCZ | ||
+ | sudo sh | ||
TCZROOT=$(pwd)/ | TCZROOT=$(pwd)/ | ||
- | sudo make DESTDIR=$TCZROOT install-strip | + | make DESTDIR=$TCZROOT install-strip |
</ | </ | ||
===== Create Open VM Tools setuid Links ===== | ===== Create Open VM Tools setuid Links ===== | ||
- | It's a feature of the setuid wrapper that the executables must be in specific place defined in the '' | + | It's a feature of the setuid wrapper that the executables must be in specific place defined in a '' |
- | the ''/ | + | the ''/ |
will make everything links, but this isn't a problem because we know the links will be in the ''/ | will make everything links, but this isn't a problem because we know the links will be in the ''/ | ||
- | Run as root, if not already su'ed, for the rest of this procedure. | + | '' |
+ | Make the TinyCore extension specific vmware paths locations file in the '' | ||
+ | < | ||
+ | answer BINDIR / | ||
+ | answer INITDIR / | ||
+ | answer INITSCRIPTSDIR / | ||
+ | answer SBINDIR / | ||
+ | answer LIBDIR / | ||
+ | </ | ||
+ | Create a link to the plugins directory in TCZ/ | ||
+ | < | ||
+ | ln -s / | ||
+ | </ | ||
+ | The Open VM Tools also wants to know what distribution and release it's running on: | ||
+ | < | ||
+ | sed -e ' | ||
+ | </ | ||
+ | Move the files to LIBDIR subdirectories and create links in the BINDIR and SBINDIR directories: | ||
< | < | ||
- | sudo sh | ||
cd $TCZROOT/ | cd $TCZROOT/ | ||
mkdir bin sbin lib | mkdir bin sbin lib | ||
Line 79: | Line 97: | ||
for a in ../ | for a in ../ | ||
cd $TCZROOT/ | cd $TCZROOT/ | ||
- | mv $TCZROOT/ | + | mv $TCZROOT/ |
- | # we don't need links for the libraries | + | cd $TCZROOT/ |
- | </ | + | for a in ../lib/open-vm-tools/lib/lib*; do ln -s /tmp/tcloop/open-vm-tools/ |
- | Clean up files we don't need: | + | |
- | < | + | |
- | rm -rf $TCZROOT/ | + | |
- | rm -rf $TCZROOT/usr/local/ | + | |
- | rm -rf $TCZROOT/usr/local/include | + | |
- | rm -rf $TCZROOT/ | + | |
- | rm -rf $TCZROOT/sbin | + | |
</ | </ | ||
- | ===== Create | + | ===== Create |
- | Make the TinyCore | + | Make the Tinycore |
< | < | ||
- | cd $TCZROOT/ | + | mkdir -p $TCZROOT/ |
- | cat > locations << | + | |
- | answer BINDIR / | + | |
- | answer INITDIR / | + | |
- | answer INITSCRIPTSDIR / | + | |
- | t.d | + | |
- | answer SBINDIR / | + | |
- | answer LIBDIR / | + | |
- | EOF | + | |
- | ln -s / | + | |
</ | </ | ||
- | Make the Tinycore extension initialization | + | Make sure that the script |
< | < | ||
- | mkdir -p $TCZROOT/ | ||
- | cd $TCZROOT/ | ||
- | cat > open-vm-tools <<EOF | ||
#!/bin/sh | #!/bin/sh | ||
# | # | ||
/ | / | ||
- | EOF | + | </ |
+ | Make the script executable: | ||
+ | < | ||
chmod a+x open-vm-tools | chmod a+x open-vm-tools | ||
</ | </ | ||
- | Make the open-vm-tools startup script | + | Make the TCZ/ |
< | < | ||
mkdir -p $TCZROOT/ | mkdir -p $TCZROOT/ | ||
- | cd $TCZROOT/etc/ | + | </code> |
- | cat > open-vm-tools <<EOF | + | Make the open-vm-tools |
+ | <code> | ||
#!/bin/sh | #!/bin/sh | ||
# Start, stop, and restart vmtoolsd | # Start, stop, and restart vmtoolsd | ||
Line 193: | Line 195: | ||
/ | / | ||
fi | fi | ||
+ | # Start vmware-user in user's .xsession | ||
# Use ethtool to optimize vmxnet | # Use ethtool to optimize vmxnet | ||
Line 227: | Line 230: | ||
;; | ;; | ||
esac | esac | ||
- | EOF | + | </ |
+ | Make the script executable: | ||
+ | < | ||
chmod a+x open-vm-tools | chmod a+x open-vm-tools | ||
+ | </ | ||
+ | |||
+ | Clean up files we don't need: | ||
+ | < | ||
+ | rm -rf $TCZROOT/ | ||
+ | rm -rf $TCZROOT/ | ||
+ | rm -rf $TCZROOT/ | ||
+ | rm -rf $TCZROOT/ | ||
+ | rm -rf $TCZROOT/ | ||
</ | </ | ||
Line 248: | Line 262: | ||
procps.tcz | procps.tcz | ||
gtkmm.tcz | gtkmm.tcz | ||
+ | libdnet.tcz | ||
EOF | EOF | ||
</ | </ | ||
+ | |||
+ | ===== Install TCZ Extension ===== | ||
+ | |||
These extensions and their dependencies should be copied to the system that will be using the open-vm-tools extension before it's loaded. | These extensions and their dependencies should be copied to the system that will be using the open-vm-tools extension before it's loaded. | ||
Then add '' | Then add '' | ||
There is a conflict between the vmxnet and pcnet32 modules, so networking will not work unless the extension is loaded. | There is a conflict between the vmxnet and pcnet32 modules, so networking will not work unless the extension is loaded. | ||
Copy the open-vm-tools.tcz and open-vm-tools.tcz.dep files to the tce/ | Copy the open-vm-tools.tcz and open-vm-tools.tcz.dep files to the tce/ | ||
- | + | Add the following line to your .xsession file after mouse initialization: | |
- | not done: programs to add to .profile | + | < |
+ | [ $(which vmware-checkvm) ] && [ vmware-checkvm ] && vmware-user & | ||
+ | </code> | ||
+ | Reboot and enjoy. |