From: Olivier L. <oli...@ce...> - 2009-05-18 14:07:01
|
Trying to minimize the number of includes to put in the dkms build tree I'm trying to create, I've found that there are 2 hgfs.h , 2 block.h and 2 stubs.h includes that are identical except for the top comment (tipicaly the license). Is it normal? modules/linux/vmhgfs/hgfs.h is GPL v2 lib/include/hgfs.h is LGPL v2.1 modules/linux/vmblock/linux/block.h is GPL v2 vmblock-fuse/block.h is LGPL v2.1 modules/linux/vmblock/linux/stubs.h is GPL v2 vmblock-fuse/stubs.h is LGPL v2.1 Aside that, they are strictly identical... -- Olivier LAHAYE CEA Saclay DRT-LIST-DETECS-SSTM |
From: Marcelo V. <mv...@vm...> - 2009-05-19 00:40:31
|
Hi Olivier, Olivier LAHAYE wrote: > Trying to minimize the number of includes to put in the dkms build tree I'm > trying to create, I've found that there are 2 hgfs.h , 2 block.h and 2 stubs.h > includes that are identical except for the top comment (tipicaly the license). > Is it normal? > > modules/linux/vmhgfs/hgfs.h is GPL v2 > lib/include/hgfs.h is LGPL v2.1 > > modules/linux/vmblock/linux/block.h is GPL v2 > vmblock-fuse/block.h is LGPL v2.1 > > modules/linux/vmblock/linux/stubs.h is GPL v2 > vmblock-fuse/stubs.h is LGPL v2.1 > > Aside that, they are strictly identical... Yes, the files are identical except for the license. This is one of the things I worked on the past couple of months and, in the next code refresh (sometime this week) most of these duplications should be gone. (In fact, the only one I see now is hgfs.h, which apparently I missed.) So at least it should be easier to choose which file to package since there should be only one from now on. :-) (The files will be licensed under LGPL and, where needed, CDDL and / or BSD; I'm assuming that LGPL is fine for use in the kernel module code which is licensed under the GPL - all these licenses make my head spin sometimes). About your other question about what files to package, after all this cleanup it does become a little bit trickier to package modules for use with dkms; basically, what you'll have to do is: . place all shared headers either on the module's dir directly, or under a "shared" directory under the module's source dir . place all the "autoconf" stuff under "shared/autoconf" under the module's source dir . copy any shared sources to the module's source dir (for example, lib/misc/dbllnklst.c which is used by a few modules). Also, you shouldn't define OVT_SOURCE_DIR when building through dkms (in case you're wondering why that's used in modules/Makefile.am). That variable changes the behavior of the makefiles to use the shared stuff in the open-vm-tools package, which is not what you want for dkms. We do something similar when we package these modules with the Tools we ship with Workstation or other VMware products, so if you want more information about what the directory structure for building different modules "stand alone" looks like, feel free to ask. -- - Marcelo |
From: Olivier L. <oli...@ce...> - 2009-05-25 14:22:32
Attachments:
open-vm-tools-2009.05.22-167859.patch
vmtoolsd
|
Hi Marcelo, I've worked on the new release (build 167859) and I'm still having great difficulties to package open-vm-tools. Here are the problems. 1st of all I had to do a few patch for the whole stuff to build correctly (see attachment). Basicaly I had to patch configure.ac (DOT=/usr/bin instead of DOT=dot). Then I had to patch docs/api/Makefile.am to add the -e 's,##{PROJECT_NAME}##,@PACKAGE_STRING@,' line and then I had to fix lib/wiper/wiperPosix.c to handle fgets return. 2nd, lib/include/err.h has the same name as /usr/include.err.h Should the file be packaged in the open-vm-tools-devel? if yes, should the includes go to /usr/include or /usr/include/vmware ? 3rd I must admit that I'm a little bit lost in finding what files should be packaged and what files are only relevant to build open-vm-tools. Basicaly, which includes should be part of open-vm-tools-devel:/usr/include, which files should be part of dkms-open-vm-tools (that are not in open-vm- tools) I've also created an init file (/etc/init.d/vmtoolsd) that should be LSB compatible (see attachment). Aside that, except using the ./configure script, I'm totaly unfamiliar with autotools, and thus I'm realy unable to go beyond a few very basic patch in .ac and .am files, thus I'm afraid I won't be able to setup the "autoconf stuff" in the shared dir. I've notices in the modules dir that the Makefile has different behaviours depending OVT_SOURCE_DIR is defined or not. I've also noticed that the dkms.conf file uses the standard Makefile. Then what is the purpose of Makefile.kernel file? Best regards, Olivier. Le mardi 19 mai 2009 02:30:01 Marcelo Vanzin, vous avez écrit : > About your other question about what files to package, after all this > cleanup it does become a little bit trickier to package modules for use > with dkms; basically, what you'll have to do is: > > . place all shared headers either on the module's dir directly, or under a > "shared" directory under the module's source dir > . place all the "autoconf" stuff under "shared/autoconf" under the module's > source dir > . copy any shared sources to the module's source dir (for example, > lib/misc/dbllnklst.c which is used by a few modules). > > Also, you shouldn't define OVT_SOURCE_DIR when building through dkms (in > case you're wondering why that's used in modules/Makefile.am). That > variable changes the behavior of the makefiles to use the shared stuff in > the open-vm-tools package, which is not what you want for dkms. > > We do something similar when we package these modules with the Tools we > ship with Workstation or other VMware products, so if you want more > information about what the directory structure for building different > modules "stand alone" looks like, feel free to ask. -- Olivier LAHAYE CEA Saclay DRT-LIST-DETECS-SSTM |
From: Dominique L. <Dom...@TM...> - 2009-05-25 14:42:10
Attachments:
open-vm-tools.spec
|
Olivier, >>> On 5/25/2009 at 16:03, Olivier LAHAYE <oli...@ce...> wrote: > hen I had to fix > lib/wiper/wiperPosix.c to handle fgets return. Had that too (I'm doing openSUSE packges). Sent my patch in also. > 3rd I must admit that I'm a little bit lost in finding what files should be > packaged and what files are only relevant to build open-vm-tools. > Basicaly, which includes should be part of open-vm-tools-devel:/usr/include, > which files should be part of dkms-open-vm-tools (that are not in open-vm- > tools) The wiki gives quite some overview of what to package and where to put it. Most of the things are done correct by now using make install (I remember a time this did not do anything useful). http://open-vm-tools.wiki.sourceforge.net/Packaging > > I've also created an init file (/etc/init.d/vmtoolsd) that should be LSB > compatible (see attachment). Maybe you can have a look what I all did in the RPM for openSUSE? Might help you save some hours. We're shipping it since openSUSE 11.1, so the packages are proven by now to work (even though the two last releases were not pushed out. Previous one had issues with Drag'n'Drop handler and the new one is not yet tested by me). I attach you for reference the RPM we use for the openSUSE packages (it creates KMPs (Kernel Module Packages). The complete SRPMS are downloadable at: http://download.opensuse.org/repositories/home:/dimstar/openSUSE_11.1/src/ Dominique |
From: Olivier L. <oli...@ce...> - 2009-05-25 15:24:40
Attachments:
open-vm-tools.spec
|
Dominique, thanks a lot for your tips. See my comments below. > The wiki gives quite some overview of what to package and where to put it. > Most of the things are done correct by now using make install (I remember a > time this did not do anything useful). > http://open-vm-tools.wiki.sourceforge.net/Packaging Yes, I know this URL, unfortunately, I did not find any usefull tips regarding includes and devel parts. It looks like some .c files are shared between modules and tools, that some .h files are in tools build structure, but also used by some mudules For now I have an open-vm-tools that works for the userlan tools and system. what I'm stuck with is the foillowing: - Put modules in a dkms package that build modules at boot if the kernel has been updated - Create a working open-vm-tools-devel package that permit developpements of new tools (tuypicaly would contain includes and .so files) > Maybe you can have a look what I all did in the RPM for openSUSE? Might Thanks a lot for your help, I had a 1st look at your RPM spec file which looks very interresting (see mine attached). Unfortunately I don't quite understand the module part. As a distribution owner I understand that you create a binary package for the modules right? I assume that %suse_kernel_module_package -n vmware-guest -p %{SOURCE98} xen um does all the magic ;-) Although, I'm unable to follow this way as I'm not a Mandriva developper and thus I'm unable to follow thightly all new kernel releases. If a user updates its kernel, then I'll loose ability to connect it its vm and I'll have to rebuild modules by hand. Thus I'm forced to go for the dkms way until Mandriva includes open-vm-tools in its main release tree. Maybe one day all thoses modules will go into the standard linux kernel.... who knows? Olivier. -- Olivier LAHAYE CEA Saclay DRT-LIST-DETECS-SSTM |
From: Dominique L. <Dom...@TM...> - 2009-05-25 15:40:14
|
Olivier, >>> On 5/25/2009 at 5:24 , Olivier LAHAYE <oli...@ce...> wrote: >> http://open-vm-tools.wiki.sourceforge.net/Packaging > Yes, I know this URL, unfortunately, I did not find any usefull tips > regarding > includes and devel parts. > It looks like some .c files are shared between modules and tools, that some > .h > files are in tools build structure, but also used by some mudules I don't think the tools are actually ready to be extended by 3rd-parties. As such, I would not bother to much installing the devel packages. Even the fact with new kernels might be rather tricky: the modules are known to break with every single kernel release. Just now I'm stuck as openSUSE is moving to 2.6.30, but the modules do not yet compile on this kernel. Shame. > - Put modules in a dkms package that build modules at boot if the kernel has > been updated I see, as your package is not as closely linked, it's probably the only way to go. > - Create a working open-vm-tools-devel package that permit developpements of > new tools (tuypicaly would contain includes and .so files) As stated above: I don't think the tools are solid enough to encourage any 3rd party to develop on them out of the tree. Thus providing -devel package is probably not yet a good idea anyhow. >> Maybe you can have a look what I all did in the RPM for openSUSE? Might > Thanks a lot for your help, I had a 1st look at your RPM spec file which > looks > very interresting (see mine attached). > Unfortunately I don't quite understand the module part. As a distribution > owner I understand that you create a binary package for the modules right? > I assume that %suse_kernel_module_package -n vmware-guest -p %{SOURCE98} xen > um does all the magic ;-) > Although, I'm unable to follow this way as I'm not a Mandriva developper and yes, indeed: this does a lot of magic. It creates module packages for all different kernel flavors (different compiler options basically) and creates one RPM per flavor. XEN being excluded (I doubt that anybody is running a vmware inside a xen host or guest.. would not make to much sense). So yes, being close tight to the distribution is a big advantage here. > > thus I'm unable to follow thightly all new kernel releases. If a user > updates > its kernel, then I'll loose ability to connect it its vm and I'll have to > rebuild modules by hand. > Thus I'm forced to go for the dkms way until Mandriva includes open-vm-tools > in its main release tree. You should encourage them to do so early. Less wasted time for you. > > Maybe one day all thoses modules will go into the standard linux kernel.... > who knows? Oh.. THAT would be awesome. It would also finally stop us from being without running vmware (workstation/player/tools) with every new kernel hitting the shelfs. But I'm not sure I'm not to old already to still survive that day (hey.. I'm only 32.. but who knows how long THIS is going to take). Dominique |
From: Marcelo V. <mv...@vm...> - 2009-05-25 23:50:17
|
Hi Olivier, Olivier LAHAYE wrote: > Then I had to patch docs/api/Makefile.am to add the -e > 's,##{PROJECT_NAME}##,@PACKAGE_STRING@,' line and then I had to fix > lib/wiper/wiperPosix.c to handle fgets return. Thanks for pointing out the PROJECT_NAME thing, I'll fix that. Dominique also pointed out the fgets() issue (it seems Ubuntu's headers are still not complaining about that function so I didn't catch it), I'll fix it internally (it shouldn't be hard to work around so you get things to compile). > - Put modules in a dkms package that build modules at boot if the kernel has > been updated If you start with the latest open-vm-tools package, to create a working kernel module package to each module, you'll have to do the following: . create a new <target> directory for the module source . copy the module sources from their original locations into <target> . copy the modules/linux/shared directory into <target> (you should end up with a "shared" subdirectory) . if one exists, copy the contents of modules/shared/<module> into <target> . copy shared headers from lib/include into <target>/shared; these should take care of all modules: backdoor_def.h backdoor_types.h guest_msg_def.h includeCheck.h vm_assert.h vm_atomic.h vm_basic_asm.h vm_basic_asm_x86.h vm_basic_asm_x86_64.h vm_basic_defs.h vm_basic_math.h vm_basic_types.h vm_device_version.h vmware.h vmware_pack_begin.h vmware_pack_end.h vmware_pack_init.h dbllnklst.h circList.h x86cpuid.h . for a few modules, you'll have to copy extra source files (and some private header files) from lib/ into <target>; I think the worst case here is vmhgfs. You can check each module's Makefile.kernel to figure out the source files that need to be copied (there will be a section starting with "ifdef OVT_SOURCE_DIR" where all object files are listed manually - you just need to copy the corresponding .c file from lib/). Hopefully this can get you started. > I've notices in the modules dir that the Makefile has different behaviours > depending OVT_SOURCE_DIR is defined or not. I've also noticed that the > dkms.conf file uses the standard Makefile. Then what is the purpose of > Makefile.kernel file? OVT_SOURCE_DIR is used when compiling the sources within the open-vm-tools tree; they allow the makefiles to find all those shared header and sources you'll have to copy into the module's directory when using dkms. Makefile.kernel is needed because some modules also support 2.4 kernels, and the build instructions for those is in Makefile.normal. The top-level Makefile will detect which sub-makefile it needs to use. > - Create a working open-vm-tools-devel package that permit developpements of > new tools (tuypicaly would contain includes and .so files) As Dominique hinted at, mostly open-vm-tools are not yet extensible and wouldn't need a -devel package; there's one exception, though - the "guestlib" library. But you just need to install a handful of headers for this library (instead of everything under lib/include), namely: vm_basic_types.h vmGuestLib.h vmSessionId.h includeCheck.h It's also a good idea to include "modules/linux/vsock/linux/vmci_sockets.h" in that package so that users can write programs that use the vsock module. > I've also created an init file (/etc/init.d/vmtoolsd) that should be LSB > compatible (see attachment). I think it would be great to have this file in the distribution, even if just to serve as a starting point for packagers. If you haven't done so yet, could you take a look at http://open-vm-tools.sourceforge.net/contribute.php and follow the instructions so we can get it into the official package? > Maybe one day all thoses modules will go into the standard linux kernel.... > who knows? Believe me, you're not the only people who want that to happen. :-) -- - Marcelo |
From: Olivier L. <oli...@ce...> - 2009-05-26 12:06:41
|
Hi Marcelo, Thanks a lot for your tips, I'm progressing in sorting out how to create a minimal stand-alone dkms build tree. During my research, I've found that there are sometimes different includes with the same name (e.g.: util.h) example in the vsock module:> > Olivier LAHAYE wrote: > > Then I had to patch docs/api/Makefile.am to add the -e > > 's,##{PROJECT_NAME}##,@PACKAGE_STRING@,' line and then I had to fix > > lib/wiper/wiperPosix.c to handle fgets return. > > Thanks for pointing out the PROJECT_NAME thing, I'll fix that. Dominique > also pointed out the fgets() issue (it seems Ubuntu's headers are still not > complaining about that function so I didn't catch it), I'll fix it > internally (it shouldn't be hard to work around so you get things to > compile). > > > - Put modules in a dkms package that build modules at boot if the kernel > > has been updated > > If you start with the latest open-vm-tools package, to create a working > kernel module package to each module, you'll have to do the following: > > . create a new <target> directory for the module source > . copy the module sources from their original locations into <target> > . copy the modules/linux/shared directory into <target> (you should end up > with a "shared" subdirectory) > . if one exists, copy the contents of modules/shared/<module> into <target> > . copy shared headers from lib/include into <target>/shared; these should > take care of all modules: > > backdoor_def.h > backdoor_types.h > guest_msg_def.h > includeCheck.h > vm_assert.h > vm_atomic.h > vm_basic_asm.h > vm_basic_asm_x86.h > vm_basic_asm_x86_64.h > vm_basic_defs.h > vm_basic_math.h > vm_basic_types.h > vm_device_version.h > vmware.h > vmware_pack_begin.h > vmware_pack_end.h > vmware_pack_init.h > dbllnklst.h > circList.h > x86cpuid.h > ./modules/linux/vsock/linux/util.h ./lib/include/util.h => in the vsock build if the include path is incorectly set, this could lead to a situation where the wrong include (lib/include/util.h) is used (either by a .c or a sub include) instead of the correct one. Le mardi 26 mai 2009 01:48:58 Marcelo Vanzin, vous avez écrit : > Hi Olivier, > [...] > > . for a few modules, you'll have to copy extra source files (and some > private header files) from lib/ into <target>; I think the worst case here > is vmhgfs. You can check each module's Makefile.kernel to figure out the > source files that need to be copied (there will be a section starting with > "ifdef OVT_SOURCE_DIR" where all object files are listed manually - you > just need to copy the corresponding .c file from lib/). > > Hopefully this can get you started. It helps a lot :-) Though, there is still work to identify all files......... a "make standalone_module_tree" rule in the autotool config would help so much.... > [...] > > I've also created an init file (/etc/init.d/vmtoolsd) that should be LSB > > compatible (see attachment). > > I think it would be great to have this file in the distribution, even if > just to serve as a starting point for packagers. If you haven't done so > yet, could you take a look at > http://open-vm-tools.sourceforge.net/contribute.php and follow the > instructions so we can get it into the official package? I had a look, unfortunately, this file was not originaly created by me. If my memory is correct, it is a updated version of fedora package vmware-guestd Though, anybody can create a similar file based on other init.d startup script. > > Maybe one day all thoses modules will go into the standard linux > > kernel.... who knows? > > Believe me, you're not the only people who want that to happen. :-) Strange ;-) Regards, -- Olivier LAHAYE CEA Saclay DRT-LIST-DETECS-SSTM |
From: Olivier L. <oli...@ce...> - 2009-05-26 15:41:58
|
Marcelo, thanks to your help, I've been able to create a somewhat working dkms build tree. Unfortunately, I still have problems when linking/insmoding some modules: pvscsi: Unknown parameter `vmblock' vmhgfs: Unknown symbol Backdoor_InOut vmhgfs: Unknown symbol BackdoorHbIn vmhgfs: Unknown symbol BackdoorHbOut vmmemctl: Unknown symbol Backdoor_InOut vsock: no symbol version for VMCIMemcpyToQueueV vsock: Unknown symbol VMCIMemcpyToQueueV vsock: no symbol version for VMCIEvent_Unsubscribe vsock: Unknown symbol VMCIEvent_Unsubscribe vsock: Unknown symbol VMCIQueuePair_Alloc vsock: no symbol version for VMCIDatagram_Send vsock: Unknown symbol VMCIDatagram_Send vsock: no symbol version for VMCI_GetContextID vsock: Unknown symbol VMCI_GetContextID vsock: Unknown symbol VMCIContext_GetPrivFlags vsock: Unknown symbol VMCIQueuePair_AllocPriv vsock: Unknown symbol VMCIQueuePair_Detach vsock: Unknown symbol VMCIDatagram_CreateHndPriv vsock: no symbol version for VMCIMemcpyFromQueueV vsock: Unknown symbol VMCIMemcpyFromQueueV vsock: Unknown symbol VMCI_DeviceGet vsock: no symbol version for VMCIEvent_Subscribe vsock: Unknown symbol VMCIEvent_Subscribe vsock: no symbol version for VMCIDatagram_DestroyHnd vsock: Unknown symbol VMCIDatagram_DestroyHnd vsock: no symbol version for VMCIDatagram_CreateHnd vsock: Unknown symbol VMCIDatagram_CreateHnd Here is what I'm doing to create the dkms tree: Basicaly, I'm creating the ../shared link in each modules dir, then I'm putting lib/include/relevant_include.h in the shared directory then I'm copying all includes specific to a module in its directory. See below the exact actions: ================================================== # Create dkms tree and fill it mkdir -p $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release} cp -r modules/linux/* $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/ # Common stuffs for modules cp lib/include/{vmware.h,vm_assert.h,includeCheck.h,vmware_pack_begin.h,vmware_pack_end.h,vm_basic_defs.h,vm_basic_types.h,vm_device_version.h,vmware_pack_init.h,vm_atomic.h,circList.h,backdoor.h,x86cpuid.h,vm_basic_asm_x86_64.h,vm_basic_math.h,vm_basic_asm.h} \ $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/shared/ # setup shared link for module_dir in pvscsi vmblock vmci vmhgfs vmmemctl vmsync vmxnet vmxnet3 vsock do (cd $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/$module_dir; ln -s ../shared) done # Specific stuff for pvscsi # => none # Specific stuff for vmblock cp lib/include/{vmblock.h,dbllnklst.h} \ $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/vmblock/linux/ cp modules/shared/vmblock/* \ $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/vmblock/linux/ # => none # Specific stuff for vmci # => none # Specific stuff for vmhgfs cp lib/backdoor/backdoor.[ch] \ lib/hgfs/{cpName.c,cpNameInt.h,cpNameLinux.c,cpNameLite.c,hgfsEscape.c,hgfsUtil.c} \ lib/include/{cpName.h,hgfsUtil.h,hgfsEscape.h,util.h,rpcout.h,hgfsBd.h,debug.h,backdoor_def.h,guest_msg_def.h,message.h,rpcout.h,backdoor_types.h,hgfsDevLinux.h,hgfsProto.h,cpNameLite.h,escBitvector.h} \ lib/hgfsBd/hgfsBd.c \ lib/message/{messageBackdoor.c,message.c} \ lib/rpcOut/rpcout.c \ $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/vmhgfs/ # Specific stuff for vmmemctl # => none # Specific stuff for vmsync cp lib/include/syncDriverIoc.h \ $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/vmsync/ # Specific stuff for vmxnet and vmxnet3 cp modules/shared/vmxnet/* \ $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/shared/ # Specific stuff for vsock cp lib/include/vm_basic_math.h \ $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}-%{release}/vsock/ ================================================== $ rpm -ql dkms-open-vm-tools-2009.05.22.167859-1mdv2009.1 /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1 /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/dkms.conf /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/pvscsi.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/pvscsi_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/pvscsi_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/scsi_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/pvscsi/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/cachecreate.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/cachector.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/cachector1.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/epoll.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/filldir1.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/geninclude.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/getsb1.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/inode1.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/maxbytes.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/netif_num_params.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/setnice.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/sk_filter.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/skas1.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/skblin.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/autoconf/statfs1.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/backdoor.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/circList.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_completion.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_cred.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_dcache.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_ethtool.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_file.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_fs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_highmem.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_init.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_interrupt.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_ioport.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_kernel.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_kthread.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_list.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_mm.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_module.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_mutex.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_namei.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_netdevice.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_page-flags.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_page.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_pagemap.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_pci.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_pci_mapping.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_pgtable.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_sched.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_scsi.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_semaphore.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_skbuff.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_slab.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_sock.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_spinlock.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_statfs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_string.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_timer.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_uaccess.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_wait.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/compat_workqueue.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/driver-config.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/driverLog.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/driverLog.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/includeCheck.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/kernelStubs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/kernelStubsLinux.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/net.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/net_sg.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/npa_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/upt1_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_assert.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_atomic.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_basic_asm.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_basic_asm_x86_64.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_basic_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_basic_math.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_basic_types.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vm_device_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmciGuestKernelAPI.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmci_call_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmci_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmci_infrastructure.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmci_iocontrols.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmci_kernel_if.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmci_queue_pair.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmnet_def.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmware.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmware_pack_begin.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmware_pack_end.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmware_pack_init.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmxnet2_def.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmxnet3_defs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/vmxnet_def.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/shared/x86cpuid.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/Makefile.normal /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/README /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/block.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/block.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/control.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/dbllnklst.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/dentry.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/file.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/filesystem.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/filesystem.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/inode.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/module.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/os.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/stubs.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/stubs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/super.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/vmblock.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/vmblockInt.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/linux/vmblock_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmblock/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/Makefile.normal /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/pgtbl.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciCommonInt.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciDatagram.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciDatagram.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciEvent.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciEvent.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciGuestDs.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciGuestKernelIf.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciGuestKernelIf.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciInt.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciKernelIf.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciProcess.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciProcess.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciQueuePair.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciQueuePairInt.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciUtil.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmciUtil.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmci_drv.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmci_handle_array.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmci/vmci_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/Makefile.normal /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/backdoor.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/backdoor_def.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/backdoor_types.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/bdhandler.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/bdhandler.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/cpName.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/cpName.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/cpNameInt.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/cpNameLinux.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/cpNameLite.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/cpNameLite.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/debug.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/dentry.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/dir.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/escBitvector.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/file.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/filesystem.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/filesystem.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/fsutil.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/fsutil.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/guest_msg_def.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfs.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsBd.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsBd.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsDevLinux.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsEscape.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsEscape.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsProto.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsUtil.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/hgfsUtil.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/inode.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/inode.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/link.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/message.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/message.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/messageBackdoor.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/module.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/module.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/page.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/request.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/request.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/rpcout.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/rpcout.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/stubs.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/super.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/tcp.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/tcp.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/transport.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/transport.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/util.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmhgfs/vmhgfs_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/Makefile.normal /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/README /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/backdoor_balloon.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/balloon_def.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/os.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/os.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/vmballoon.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/vmballoon.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmmemctl/vmmemctl_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync/sync.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync/syncDriverIoc.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmsync/vmsync_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/Makefile.normal /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/README /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/vmxnet.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/vmxnetInt.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet/vmxnet_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3 /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/README /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/vmxnet3.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/vmxnet3_int.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vmxnet3/vmxnet3_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/COPYING /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/Makefile /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/Makefile.kernel /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/Makefile.normal /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/README /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/af_vsock.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/af_vsock.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/notify.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/notify.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/stats.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/stats.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/util.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/util.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vmciContext.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vmciDatagram.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vmciHostKernelAPI.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vmci_sockets.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vmci_sockets_int.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vsockAddr.c /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vsockAddr.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vsockCommon.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vsockPacket.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vsockSocketWrapper.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vsockVmci.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/linux/vsock_version.h /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/shared /usr/src/open-vm-tools-2009.05.22.167859-1mdv2009.1/vsock/vm_basic_math.h ========================================== I did not modify any files (either Makefiles or dkms.conf files) it looks like vsock is not linked with some vmci stuff, vmmemctl and vmhgfs are not linked with some backdoor stuff. as for "pvscsi: Unknown parameter `vmblock'" I don't understand.... Any ideas? Best regards. > Thanks a lot for your tips, I'm progressing in sorting out how to create a > minimal stand-alone dkms build tree. > During my research, I've found that there are sometimes different includes > with the same name (e.g.: util.h) > example in the vsock module:> I've also noted the following duplicate names in includes: ./modules/linux/vmblock/linux/filesystem.h ./modules/linux/vmhgfs/filesystem.h ./modules/linux/vsock/linux/vmciDatagram.h ./modules/linux/vmci/vmciDatagram.h -- Olivier LAHAYE CEA Saclay DRT-LIST-DETECS-SSTM |
From: Marcelo V. <mv...@vm...> - 2009-05-26 18:37:59
|
Olivier LAHAYE wrote: > pvscsi: Unknown parameter `vmblock' This one beats me... I didn't see anything suspicious in your script. Can you "grep -r vmblock" in pvscsi's dkms source dir? > vmhgfs: Unknown symbol Backdoor_InOut > vmhgfs: Unknown symbol BackdoorHbIn > vmhgfs: Unknown symbol BackdoorHbOut > vmmemctl: Unknown symbol Backdoor_InOut You're missing backdoorGcc32.c and backdoorGcc64.c for these two modules. > vsock: no symbol version for VMCIMemcpyToQueueV [snip] vsock needs the symbols file created during the vmci module build so that it correctly references those symbols. This is controlled in vsock's makefile by defining MODPOST_VMCI_SYMVERS to the path of the .symvers file. I don't know how you'd express that dependency using dkms, though. I'll look at the duplicate files and see if I get rid of them. -- - Marcelo |
From: Olivier L. <oli...@ce...> - 2009-05-27 11:29:00
|
Thanks Marcelo, I think I've got it. I finaly managed how to create a working dkms package following your tips. the result can be found here: http://olivier.lahaye1.free.fr/SRPMS/open-vm-tools-2009.05.22.167859-1mdv2009.1.src.rpm http://olivier.lahaye1.free.fr/RPMS/open-vm-tools-2009.05.22.167859-1mdv2009.1.x86_64.rpm http://olivier.lahaye1.free.fr/RPMS/open-vm-tools-devel-2009.05.22.167859-1mdv2009.1.x86_64.rpm http://olivier.lahaye1.free.fr/RPMS/dkms-open-vm-tools-2009.05.22.167859-1mdv2009.1.x86_64.rpm I've attached the spec file so you can look at the %install stage and see all the tricks I did. Basicaly: for DKMS package: - I've patched dkms.conf file to have vmci module built before vsock and thus have the VMwareVMCIModule.symvers file generated befor building vsock module - I've patched dkms.conf file to define MODULEBUILDDIR as it seems not defined when run from dkms and thus symers files are not properly copied. - I've created a symlink to the shared directory in each module tree. (I think there are better way for this approach like changing the way makefiles are generated so they all use the shared directory in the parent directory. - I've put all shared includes form lib/include /lib/misc/ ....into the shared directory - I've put specific source files and includes in respective modules directory - I've put backdoorGcc*.c files into vmhgfs directory and created a symlink to it into the vmmemctl directory. (I think there should be a better approach to this problem, but this quick and dirty hack is doing its job for now). I've attached the content of the 3 binary packages for information. Regards, Olivier. Le mardi 26 mai 2009 01:48:58 Marcelo Vanzin, vous avez écrit : > Hi Olivier, > > Olivier LAHAYE wrote: > > Then I had to patch docs/api/Makefile.am to add the -e > > 's,##{PROJECT_NAME}##,@PACKAGE_STRING@,' line and then I had to fix > > lib/wiper/wiperPosix.c to handle fgets return. > > Thanks for pointing out the PROJECT_NAME thing, I'll fix that. Dominique also > pointed out the fgets() issue (it seems Ubuntu's headers are still not > complaining about that function so I didn't catch it), I'll fix it internally > (it shouldn't be hard to work around so you get things to compile). > > > - Put modules in a dkms package that build modules at boot if the kernel has > > been updated > > If you start with the latest open-vm-tools package, to create a working kernel > module package to each module, you'll have to do the following: > > . create a new <target> directory for the module source > . copy the module sources from their original locations into <target> > . copy the modules/linux/shared directory into <target> (you should end up with > a "shared" subdirectory) > . if one exists, copy the contents of modules/shared/<module> into <target> > . copy shared headers from lib/include into <target>/shared; these should take > care of all modules: > > backdoor_def.h > backdoor_types.h > guest_msg_def.h > includeCheck.h > vm_assert.h > vm_atomic.h > vm_basic_asm.h > vm_basic_asm_x86.h > vm_basic_asm_x86_64.h > vm_basic_defs.h > vm_basic_math.h > vm_basic_types.h > vm_device_version.h > vmware.h > vmware_pack_begin.h > vmware_pack_end.h > vmware_pack_init.h > dbllnklst.h > circList.h > x86cpuid.h > > . for a few modules, you'll have to copy extra source files (and some private > header files) from lib/ into <target>; I think the worst case here is vmhgfs. > You can check each module's Makefile.kernel to figure out the source files that > need to be copied (there will be a section starting with "ifdef OVT_SOURCE_DIR" > where all object files are listed manually - you just need to copy the > corresponding .c file from lib/). > > Hopefully this can get you started. > > > I've notices in the modules dir that the Makefile has different behaviours > > depending OVT_SOURCE_DIR is defined or not. I've also noticed that the > > dkms.conf file uses the standard Makefile. Then what is the purpose of > > Makefile.kernel file? > > OVT_SOURCE_DIR is used when compiling the sources within the open-vm-tools tree; > they allow the makefiles to find all those shared header and sources you'll have > to copy into the module's directory when using dkms. > > Makefile.kernel is needed because some modules also support 2.4 kernels, and the > build instructions for those is in Makefile.normal. The top-level Makefile will > detect which sub-makefile it needs to use. > > > - Create a working open-vm-tools-devel package that permit developpements of > > new tools (tuypicaly would contain includes and .so files) > > As Dominique hinted at, mostly open-vm-tools are not yet extensible and wouldn't > need a -devel package; there's one exception, though - the "guestlib" library. > But you just need to install a handful of headers for this library (instead of > everything under lib/include), namely: > > vm_basic_types.h > vmGuestLib.h > vmSessionId.h > includeCheck.h > > It's also a good idea to include "modules/linux/vsock/linux/vmci_sockets.h" in > that package so that users can write programs that use the vsock module. > > > I've also created an init file (/etc/init.d/vmtoolsd) that should be LSB > > compatible (see attachment). > > I think it would be great to have this file in the distribution, even if just to > serve as a starting point for packagers. If you haven't done so yet, could you > take a look at http://open-vm-tools.sourceforge.net/contribute.php and follow > the instructions so we can get it into the official package? > > > Maybe one day all thoses modules will go into the standard linux kernel.... > > who knows? > > Believe me, you're not the only people who want that to happen. :-) > -- Olivier LAHAYE CEA Saclay DRT-LIST-DETECS-SSTM |
From: Olivier L. <oli...@ce...> - 2009-06-04 15:11:25
|
I've slightly modified my packages and found few mino bugs. Here are the patchs: (see attachments) OVT_dkms_conf.patch: swap build of vmci and vsocks so symvers file is available when building vsocks OVT_configure_ac.patch: fix DOT= variable OVT_vmtoolsd_automake.patch : VMTOOLSD_PLUGIN_ROOT points to /usr/share/open-vm-tools instead of /usr/share/open-vm-tools/plugins OVT_doc_Makefile_am.patch: set PROJECT_NAME variable OVT_wiperPosix._c.patch: handle fgets return (maybe a incorrect patch, at least it works for me) aside that, I'm a little bit lost with few things: 1) I don't have vmtoolsd.conf samble file, where can I get one? 2) there are icons for .desktop files, but they are in xpm format and seems to be installed in bad location. are they used by other stuffs? if not, then I may convert them to png. 3) the vmblock module, when loaded does create /proc/fs/vmblock, but this directory is empty (no mountPoint subdir). no warnings in dmesg.... 4) I'm little bit lost between vmtoolsd and vmware-user-suid-wrapper: which one should be run? I've started vmtoolsd from inti.d script, it loads but I can't see anithing more.screen does not resise. then if I start vmware-user-suid-wrapper, screen can be resized. Though, mouse is unable to go outside the vmware window. I still must press CTRL-ALT... what could be wrong? Thanks for any tips. Regards, Olivier. Le mercredi 27 mai 2009 13:05:37 Olivier LAHAYE, vous avez écrit : > > Thanks Marcelo, > > I think I've got it. I finaly managed how to create a working dkms package following your tips. > the result can be found here: > > http://olivier.lahaye1.free.fr/SRPMS/open-vm-tools-2009.05.22.167859-1mdv2009.1.src.rpm > > http://olivier.lahaye1.free.fr/RPMS/open-vm-tools-2009.05.22.167859-1mdv2009.1.x86_64.rpm > http://olivier.lahaye1.free.fr/RPMS/open-vm-tools-devel-2009.05.22.167859-1mdv2009.1.x86_64.rpm > http://olivier.lahaye1.free.fr/RPMS/dkms-open-vm-tools-2009.05.22.167859-1mdv2009.1.x86_64.rpm > > I've attached the spec file so you can look at the %install stage and see all the tricks I did. > Basicaly: for DKMS package: > - I've patched dkms.conf file to have vmci module built before vsock and thus have the VMwareVMCIModule.symvers file generated befor building vsock module > - I've patched dkms.conf file to define MODULEBUILDDIR as it seems not defined when run from dkms and thus symers files are not properly copied. > - I've created a symlink to the shared directory in each module tree. (I think there are better way for this approach like changing the way makefiles are generated so they all use the shared directory in the parent directory. > - I've put all shared includes form lib/include /lib/misc/ ....into the shared directory > - I've put specific source files and includes in respective modules directory > - I've put backdoorGcc*.c files into vmhgfs directory and created a symlink to it into the vmmemctl directory. (I think there should be a better approach to this problem, but this quick and dirty hack is doing its job for now). > > I've attached the content of the 3 binary packages for information. > > Regards, > > Olivier. > > Le mardi 26 mai 2009 01:48:58 Marcelo Vanzin, vous avez écrit : > > Hi Olivier, > > > > Olivier LAHAYE wrote: > > > Then I had to patch docs/api/Makefile.am to add the -e > > > 's,##{PROJECT_NAME}##,@PACKAGE_STRING@,' line and then I had to fix > > > lib/wiper/wiperPosix.c to handle fgets return. > > > > Thanks for pointing out the PROJECT_NAME thing, I'll fix that. Dominique also > > pointed out the fgets() issue (it seems Ubuntu's headers are still not > > complaining about that function so I didn't catch it), I'll fix it internally > > (it shouldn't be hard to work around so you get things to compile). > > > > > - Put modules in a dkms package that build modules at boot if the kernel has > > > been updated > > > > If you start with the latest open-vm-tools package, to create a working kernel > > module package to each module, you'll have to do the following: > > > > . create a new <target> directory for the module source > > . copy the module sources from their original locations into <target> > > . copy the modules/linux/shared directory into <target> (you should end up with > > a "shared" subdirectory) > > . if one exists, copy the contents of modules/shared/<module> into <target> > > . copy shared headers from lib/include into <target>/shared; these should take > > care of all modules: > > > > backdoor_def.h > > backdoor_types.h > > guest_msg_def.h > > includeCheck.h > > vm_assert.h > > vm_atomic.h > > vm_basic_asm.h > > vm_basic_asm_x86.h > > vm_basic_asm_x86_64.h > > vm_basic_defs.h > > vm_basic_math.h > > vm_basic_types.h > > vm_device_version.h > > vmware.h > > vmware_pack_begin.h > > vmware_pack_end.h > > vmware_pack_init.h > > dbllnklst.h > > circList.h > > x86cpuid.h > > > > . for a few modules, you'll have to copy extra source files (and some private > > header files) from lib/ into <target>; I think the worst case here is vmhgfs. > > You can check each module's Makefile.kernel to figure out the source files that > > need to be copied (there will be a section starting with "ifdef OVT_SOURCE_DIR" > > where all object files are listed manually - you just need to copy the > > corresponding .c file from lib/). > > > > Hopefully this can get you started. > > > > > I've notices in the modules dir that the Makefile has different behaviours > > > depending OVT_SOURCE_DIR is defined or not. I've also noticed that the > > > dkms.conf file uses the standard Makefile. Then what is the purpose of > > > Makefile.kernel file? > > > > OVT_SOURCE_DIR is used when compiling the sources within the open-vm-tools tree; > > they allow the makefiles to find all those shared header and sources you'll have > > to copy into the module's directory when using dkms. > > > > Makefile.kernel is needed because some modules also support 2.4 kernels, and the > > build instructions for those is in Makefile.normal. The top-level Makefile will > > detect which sub-makefile it needs to use. > > > > > - Create a working open-vm-tools-devel package that permit developpements of > > > new tools (tuypicaly would contain includes and .so files) > > > > As Dominique hinted at, mostly open-vm-tools are not yet extensible and wouldn't > > need a -devel package; there's one exception, though - the "guestlib" library. > > But you just need to install a handful of headers for this library (instead of > > everything under lib/include), namely: > > > > vm_basic_types.h > > vmGuestLib.h > > vmSessionId.h > > includeCheck.h > > > > It's also a good idea to include "modules/linux/vsock/linux/vmci_sockets.h" in > > that package so that users can write programs that use the vsock module. > > > > > I've also created an init file (/etc/init.d/vmtoolsd) that should be LSB > > > compatible (see attachment). > > > > I think it would be great to have this file in the distribution, even if just to > > serve as a starting point for packagers. If you haven't done so yet, could you > > take a look at http://open-vm-tools.sourceforge.net/contribute.php and follow > > the instructions so we can get it into the official package? > > > > > Maybe one day all thoses modules will go into the standard linux kernel.... > > > who knows? > > > > Believe me, you're not the only people who want that to happen. :-) > > > -- Olivier LAHAYE CEA Saclay |
From: Dmitry T. <dt...@vm...> - 2009-06-04 17:04:45
|
Hi Oliver, On Thursday 04 June 2009 08:11:16 Olivier LAHAYE wrote: > 3) the vmblock module, when loaded does create /proc/fs/vmblock, but this > directory is empty (no mountPoint subdir). no warnings in dmesg.... > I see that too. The mountPoint and dev entries are created when you load vmblock for the first time but not after rmmod & modprobe. I will look into it. > 4) I'm little bit lost between vmtoolsd and vmware-user-suid-wrapper: which > one should be run? I've started vmtoolsd from inti.d script, it loads but I > can't see anithing more.screen does not resise. then if I start > vmware-user-suid-wrapper, screen can be resized. You need both. Vmtoolsd is a system-wide daemon that is supposed to be started upon bootup. It provides core services, such as time synchronization, power management, guest info infrastructure, etc. Vmware-user is a session-wide process that is supposed to be started when user starts a graphical session and provides drag and drop and other facilities related to user interface. > Though, mouse is unable to go outside the vmware window. I still must press > CTRL-ALT... what could be wrong? You need to make sure that X uses VMware's mouse driver, not the stock Xorg's one. -- Dmitry |
From: Olivier L. <oli...@ce...> - 2009-06-08 15:55:51
|
Le jeudi 04 juin 2009 19:04:11, vous avez écrit : > > Though, mouse is unable to go outside the vmware window. I still must press > > CTRL-ALT... what could be wrong? > > You need to make sure that X uses VMware's mouse driver, not the stock Xorg's > one. Thanks a lot, I fixed it by adding 2 lines in the ServerLayout section of the xorg.conf file. Option "AutoAddDevices" "off" Option "AllowEmptyInput" "false" Without those options, the vmmouse module is ignored.... That was the issue. I was also stuck with kde4.2.2 and /etc/xdg/autostart script that seems ignored.... In fact the bug coms from KDE: the autostart script is ignored if NoDisplay=true is set in the /etc/xdg/autostart/vmware-user.desktop file. https://bugs.kde.org/show_bug.cgi?id=190522 Now, I think everything is ok. Just need to see how to fix the xorg.conf file in the postinstall script. Regards, -- Olivier LAHAYE CEA Saclay France |