July 2010
M T W T F S S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031  
86

Categories

Archives

Getting VMware 1.x Server Running on Fedora 10

As part of the aftermath of my Fedora Core 6 laptop getting dropped, I needed to do several re-installs of key apps. One of the more critical ones was VMware Server 1.08. I’m not a big fan of the 2.x version of this product so I’d rather just continue using the 1.x version.

In what has pretty much become the norm with VMware, every kernel upgrade, invariably breaks VMware. Since I had previously been using Fedora Core 6, a deprecated release, I hadn’t had a kernel update in a while, so I didn’t really have to deal with kernel churn. Now back on the bleeding edge with Fedora 10 I’m once again having to keep VMware Server working everytime a new kernel comes out.

So to start, I made sure I had the latest and greatest version of the 1.x VMware Server branch. I prefer to work with RPMs, so I grabbed the RPM version of the package. Upon installing it I ran into the following.

1st install attempt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
## install vmware rpm
% rpm -ivh VMware-server-1.0.8-126538.i386.rpm 
Preparing...                ########################################### [100%]
   1:VMware-server          ########################################### [100%]
 
# configure vmware
% vmware-config.pl
...
...
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config10/vmmon-only'
make -C /lib/modules/2.6.27.19-170.2.35.fc10.i686/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/kernels/2.6.27.19-170.2.35.fc10.i686'
  CC [M]  /tmp/vmware-config10/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config10/vmmon-only/./include/machine.h:24,
                 from /tmp/vmware-config10/vmmon-only/linux/driver.h:15,
                 from /tmp/vmware-config10/vmmon-only/linux/driver.c:49:
/tmp/vmware-config10/vmmon-only/./include/x86.h:830:1: warning: "PTE_PFN_MASK" redefined
In file included from include/asm/paravirt.h:7,
                 from include/asm/irqflags.h:55,
                 from include/linux/irqflags.h:57,
                 from include/asm/system.h:11,
                 from include/asm/processor.h:17,
                 from include/linux/prefetch.h:14,
                 from include/linux/list.h:6,
                 from include/linux/module.h:9,
                 from /tmp/vmware-config10/vmmon-only/linux/driver.c:12:
include/asm/page.h:22:1: warning: this is the location of the previous definition
In file included from /tmp/vmware-config10/vmmon-only/linux/vmhost.h:13,
                 from /tmp/vmware-config10/vmmon-only/linux/driver.c:71:
/tmp/vmware-config10/vmmon-only/./include/compat_semaphore.h:5:27: error: asm/semaphore.h: No such file or directory
/tmp/vmware-config10/vmmon-only/linux/driver.c:146: error: unknown field ‘nopage’ specified in initializer
/tmp/vmware-config10/vmmon-only/linux/driver.c:147: warning: initialization from incompatible pointer type
/tmp/vmware-config10/vmmon-only/linux/driver.c:150: error: unknown field ‘nopage’ specified in initializer
/tmp/vmware-config10/vmmon-only/linux/driver.c:151: warning: initialization from incompatible pointer type
/tmp/vmware-config10/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/tmp/vmware-config10/vmmon-only/linux/driver.c:1670: error: too many arguments to function ‘smp_call_function’
make[2]: *** [/tmp/vmware-config10/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config10/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.27.19-170.2.35.fc10.i686'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config10/vmmon-only'
Unable to build the vmmon module.
 
For more information on how to troubleshoot module-related problems, please 
visit our Web site at "http://www.vmware.com/download/modules/modules.html" and
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".
 
Execution aborted.

Googling a bit produced this blog post and this wiki post. According to the blog post you need to apply the following patch set to VMware 1.08 to get it to work with the newer 2.6.27 kernels. Here’s a link to the original tarball of the patchset, as well as a link to a local copy I have cached on my site.

Steps to download and unpack the patches
1
2
3
4
5
6
7
8
9
10
11
12
13
## download patches
% wget http://www.insecure.ws/warehouse/vmware-update-2.6.27-5.5.7-2.tar.gz
 
## unpack patches
% tar zxvf vmware-update-2.6.27-5.5.7-2.tar.gz 
vmware-update-2.6.27-5.5.7-2/
vmware-update-2.6.27-5.5.7-2/services.sh
vmware-update-2.6.27-5.5.7-2/runme.pl
vmware-update-2.6.27-5.5.7-2/update.c
vmware-update-2.6.27-5.5.7-2/vmblock.tar
vmware-update-2.6.27-5.5.7-2/update
vmware-update-2.6.27-5.5.7-2/vmmon.tar
vmware-update-2.6.27-5.5.7-2/vmnet.tar
Patch vmware

Now we need to apply the patches to VMware and compile.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
## apply patches & run vmware-config.pl
% cd vmware-update-2.6.27-5.5.7-2
% perl runme.pl
Updating /usr/bin/vmware-config.pl ... now patched
The file /usr/lib/vmware/modules/source/vmmon.tar that this script was about to 
install already exists. Overwrite? [yes] 
 
The file /usr/lib/vmware/modules/source/vmnet.tar that this script was about to 
install already exists. Overwrite? [yes] 
 
Updating /usr/bin/vmware ... No patch needed/available
Updating /usr/bin/vmnet-bridge ... No patch needed/available
Updating /usr/lib/vmware/bin/vmware-vmx ... No patch needed/available
Updating /usr/lib/vmware/bin-debug/vmware-vmx ... No patch needed/available
VMware modules in "/usr/lib/vmware/modules/source" has been updated.
 
Before running VMware for the first time after update, you need to configure it 
for your running kernel by invoking the following command: 
"/usr/bin/vmware-config.pl". Do you want this script to invoke the command for 
you now? [yes] 
 
Making sure services for VMware Server are stopped.
 
Stopping VMware services:
   Virtual machine monitor                                 [  OK  ]
 
You must read and accept the End User License Agreement to continue.
Press enter to display it. 
...
...
### Skipping the EULA!
...
...
Configuring fallback GTK+ 2.4 libraries.
 
In which directory do you want to install the mime type icons? 
[/usr/share/icons] 
 
What directory contains your desktop menu entry files? These files have a 
.desktop file extension. [/usr/share/applications] 
 
In which directory do you want to install the application's icon? 
[/usr/share/pixmaps] 
 
/usr/share/applications/vmware-server.desktop: warning: value "vmware-server.png" for key "Icon" in group "Desktop Entry" is an icon name with an extension, but there should be no extension as described in the Icon Theme Specification if the value is not an absolute path
/usr/share/applications/vmware-console-uri-handler.desktop: warning: value "vmware-server.png" for key "Icon" in group "Desktop Entry" is an icon name with an extension, but there should be no extension as described in the Icon Theme Specification if the value is not an absolute path
Trying to find a suitable vmmon module for your running kernel.
 
None of the pre-built vmmon modules for VMware Server is suitable for your 
running kernel.  Do you want this program to try to build the vmmon module for 
your system (you need to have a C compiler installed on your system)? [yes] 
 
Using compiler "/usr/bin/gcc". Use environment variable CC to override.
 
What is the location of the directory of C header files that match your running
kernel? 
[/lib/modules/2.6.27.19-170.2.35.fc10.i686/build/include] 
 
Extracting the sources of the vmmon module.
 
Building the vmmon module.
 
Building for VMware Server 1.0.0.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config10/vmmon-only'
make -C /lib/modules/2.6.27.19-170.2.35.fc10.i686/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/kernels/2.6.27.19-170.2.35.fc10.i686'
  CC [M]  /tmp/vmware-config10/vmmon-only/linux/driver.o
  CC [M]  /tmp/vmware-config10/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/vmware-config10/vmmon-only/linux/hostif.o
/tmp/vmware-config10/vmmon-only/linux/hostif.c: In function ‘HostIF_SetFastClockRate’:
/tmp/vmware-config10/vmmon-only/linux/hostif.c:3441: warning: passing argument 2 of ‘send_sig’ discards qualifiers from pointer target type
  CC [M]  /tmp/vmware-config10/vmmon-only/common/comport.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/cpuid.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/hash.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/memtrack.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/phystrack.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/task.o
cc1plus: warning: command line option "-Werror-implicit-function-declaration" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wno-pointer-sign" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
In file included from /tmp/vmware-config10/vmmon-only/common/task.c:1195:
/tmp/vmware-config10/vmmon-only/common/task_compat.h: In function ‘void Task_Switch_V45(VMDriver*, Vcpuid)’:
/tmp/vmware-config10/vmmon-only/common/task_compat.h:2667: warning: ‘sysenterState.SysenterStateV45::validEIP’ may be used uninitialized in this
function
/tmp/vmware-config10/vmmon-only/common/task_compat.h:2667: warning: ‘sysenterState.SysenterStateV45::cs’ may be used uninitialized in this function
/tmp/vmware-config10/vmmon-only/common/task_compat.h:2667: warning: ‘sysenterState.SysenterStateV45::rsp’ may be used uninitialized in this function
/tmp/vmware-config10/vmmon-only/common/task_compat.h:2667: warning: ‘sysenterState.SysenterStateV45::rip’ may be used uninitialized in this function
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciContext.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciDatagram.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciDriver.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciDs.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciGroup.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciHashtable.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciProcess.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciResource.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmciSharedMem.o
  CC [M]  /tmp/vmware-config10/vmmon-only/common/vmx86.o
  CC [M]  /tmp/vmware-config10/vmmon-only/vmcore/compat.o
  CC [M]  /tmp/vmware-config10/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/vmware-config10/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: modpost: module vmmon.ko uses symbol 'init_mm' marked UNUSED
  CC      /tmp/vmware-config10/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/vmware-config10/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.27.19-170.2.35.fc10.i686'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-config10/vmmon-only'
The module loads perfectly in the running kernel.
 
Do you want networking for your virtual machines? (yes/no/help) [yes] 
Configuring a bridged network for vmnet0.
 
Your computer has multiple ethernet network interfaces available: eth0, pan0, 
wlan0. Which one do you want to bridge to vmnet0? [eth0] 
 
The following bridged networks have been defined:
 
. vmnet0 is bridged to eth0
 
Do you wish to configure another bridged network? (yes/no) [no] 
 
Do you want to be able to use NAT networking in your virtual machines? (yes/no)
[yes] 
 
Configuring a NAT network for vmnet8.
 
Do you want this program to probe for an unused private subnet? (yes/no/help) 
[yes] 
 
Probing for an unused private subnet (this can take some time)...
 
The subnet 172.16.244.0/255.255.255.0 appears to be unused.
 
The following NAT networks have been defined:
 
. vmnet8 is a NAT network on private subnet 172.16.244.0.
 
Do you wish to configure another NAT network? (yes/no) [no] 
 
Do you want to be able to use host-only networking in your virtual machines? 
[yes] 
 
Configuring a host-only network for vmnet1.
 
Do you want this program to probe for an unused private subnet? (yes/no/help) 
[yes] 
 
Probing for an unused private subnet (this can take some time)...
 
The subnet 172.16.124.0/255.255.255.0 appears to be unused.
 
The following host-only networks have been defined:
 
. vmnet1 is a host-only network on private subnet 172.16.124.0.
 
Do you wish to configure another host-only network? (yes/no) [no] 
 
Extracting the sources of the vmnet module.
 
Building the vmnet module.
 
Building for VMware Server 1.0.0.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config10/vmnet-only'
make -C /lib/modules/2.6.27.19-170.2.35.fc10.i686/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/kernels/2.6.27.19-170.2.35.fc10.i686'
  CC [M]  /tmp/vmware-config10/vmnet-only/driver.o
  CC [M]  /tmp/vmware-config10/vmnet-only/hub.o
  CC [M]  /tmp/vmware-config10/vmnet-only/userif.o
  CC [M]  /tmp/vmware-config10/vmnet-only/netif.o
  CC [M]  /tmp/vmware-config10/vmnet-only/bridge.o
  CC [M]  /tmp/vmware-config10/vmnet-only/filter.o
  CC [M]  /tmp/vmware-config10/vmnet-only/procfs.o
  CC [M]  /tmp/vmware-config10/vmnet-only/smac_compat.o
  CC [M]  /tmp/vmware-config10/vmnet-only/smac_linux.x386.o
  LD [M]  /tmp/vmware-config10/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /tmp/vmware-config10/vmnet-only/vmnet.o
see include/linux/module.h for more information
  CC      /tmp/vmware-config10/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/vmware-config10/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.27.19-170.2.35.fc10.i686'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/vmware-config10/vmnet-only'
The module loads perfectly in the running kernel.
 
Please specify a port for remote console connections to use [904] 
 
WARNING: VMware Server has been configured to run on a port different from the 
default port. Remember to use this port when connecting to this server.
Stopping xinetd:                                           [FAILED]
Starting xinetd:                                           [  OK  ]
Configuring the VMware VmPerl Scripting API.
 
Building the VMware VmPerl Scripting API.
 
Using compiler "/usr/bin/gcc". Use environment variable CC to override.
 
Installing the VMware VmPerl Scripting API.
 
The installation of the VMware VmPerl Scripting API succeeded.
 
Generating SSL Server Certificate
 
In which directory do you want to keep your virtual machine files? 
[/var/lib/vmware/Virtual Machines] 
 
The path "/var/lib/vmware/Virtual Machines" does not exist currently. This 
program is going to create it, including needed parent directories. Is this 
what you want? [yes] 
 
Please enter your 20-character serial number.
 
Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel:  
 
You cannot power on any virtual machines until you enter a valid serial number.
To enter the serial number, run this configuration program again, or choose 
'Help > Enter Serial Number' in the virtual machine console.
 
Starting VMware services:
   Virtual machine monitor                                 [  OK  ]
   Virtual ethernet                                        [  OK  ]
   Bridged networking on /dev/vmnet0                       [  OK  ]
   Host-only networking on /dev/vmnet1 (background)        [  OK  ]
   Host-only networking on /dev/vmnet8 (background)        [  OK  ]
   NAT service on /dev/vmnet8                              [  OK  ]
 
The configuration of VMware Server 1.0.8 build-126538 for Linux for this 
running kernel completed successfully.

And with that VMware server should be installed on Fedora 10!

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>