Mailinglist Archive: opensuse-factory (175 mails)
| < Previous | Next > |
Re: [opensuse-factory] Kernel 2.6.36 & VMware
- From: Dominique Leuenberger <dominique@xxxxxxxxxxxxxxx>
- Date: Wed, 22 Sep 2010 11:03:11 +0200
- Message-id: <1285146191.5877.3.camel@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
On Mon, 2010-09-20 at 12:25 +0200, Dominique Leuenberger wrote:
I just started my first virtual machine in vmware 7.1.1 running on a
2.6.36 kernel.
attached the patch I just spun up. It does not fully work backwards
compatible, but is good enough for us now I think.
How to apply (as root)
cd /usr/lib/vmware/modules/source
tar xf vmware.tar
cd vmware-only
patch -p1 < ~/patch/to/my/file.patch
cd ..
tar cf vmmon.tar vmmon-only
Then start vmware 7.1.1, provide the root pass and it will succeed
building the vmmon module and allow you to start the machine.
(vsock.ko seems not to build yet... but it's not mandatory to start a
machine... i'll have a look at that later on).
Dominique
diff -ur vmmon-only/include/driver-config.h
vmmon-only.patch//include/driver-config.h
--- vmmon-only/include/driver-config.h 2010-08-01 20:51:25.000000000 +0200
+++ vmmon-only.patch//include/driver-config.h 2010-09-22 10:54:43.340000004
+0200
@@ -71,6 +71,13 @@
# define _STDINT_H 1
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
+/*
+ * We do have unlocked_ioctl in kernel 2.6.36+
+ */
+# define VMW_HAVE_UNLOCKED_IOCTL
+#endif
+
#ifndef __KERNEL__
# define __KERNEL__
#endif
diff -ur vmmon-only/linux/iommu.c vmmon-only.patch//linux/iommu.c
--- vmmon-only/linux/iommu.c 2010-08-01 20:51:25.000000000 +0200
+++ vmmon-only.patch//linux/iommu.c 2010-09-22 10:43:33.964000005 +0200
@@ -153,7 +153,7 @@
map_to = PPN_2_PA(mpn);
map_prot = IOMMU_READ | IOMMU_WRITE;
}
- if ((status = iommu_map_range(vmLinux->iommuDomain,
+ if ((status = iommu_map(vmLinux->iommuDomain,
PPN_2_PA(ppn),
map_to, PAGE_SIZE, map_prot))) {
printk(KERN_ERR "%s: IOMMU Mapping of PPN 0x%x -> MPN 0x%x "
@@ -400,7 +400,7 @@
/* Relinquish the IOMMU domain used by this VM. */
for (ppn = 0; ppn < vmLinux->numPages; ppn++) {
- iommu_unmap_range(vmLinux->iommuDomain, PPN_2_PA(ppn), PAGE_SIZE);
+ iommu_unmap(vmLinux->iommuDomain, PPN_2_PA(ppn), PAGE_SIZE);
}
if (vmLinux->iommuDomain) {
iommu_domain_free(vmLinux->iommuDomain);
Hi everybody,
Just a heads up in case somebody relies on VMware and is 'toying' with
Factory:
Kernel 2.6.36-rc3 hit Factory these days and VMware is not yet able to
cope with the latest changes; the various modules fail to build (again).
So in case you require vmware to work, better stay a few more days with
the 2.6.34 kernel. Probably not too long to wait until an update
appears.
I just started my first virtual machine in vmware 7.1.1 running on a
2.6.36 kernel.
attached the patch I just spun up. It does not fully work backwards
compatible, but is good enough for us now I think.
How to apply (as root)
cd /usr/lib/vmware/modules/source
tar xf vmware.tar
cd vmware-only
patch -p1 < ~/patch/to/my/file.patch
cd ..
tar cf vmmon.tar vmmon-only
Then start vmware 7.1.1, provide the root pass and it will succeed
building the vmmon module and allow you to start the machine.
(vsock.ko seems not to build yet... but it's not mandatory to start a
machine... i'll have a look at that later on).
Dominique
diff -ur vmmon-only/include/driver-config.h
vmmon-only.patch//include/driver-config.h
--- vmmon-only/include/driver-config.h 2010-08-01 20:51:25.000000000 +0200
+++ vmmon-only.patch//include/driver-config.h 2010-09-22 10:54:43.340000004
+0200
@@ -71,6 +71,13 @@
# define _STDINT_H 1
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
+/*
+ * We do have unlocked_ioctl in kernel 2.6.36+
+ */
+# define VMW_HAVE_UNLOCKED_IOCTL
+#endif
+
#ifndef __KERNEL__
# define __KERNEL__
#endif
diff -ur vmmon-only/linux/iommu.c vmmon-only.patch//linux/iommu.c
--- vmmon-only/linux/iommu.c 2010-08-01 20:51:25.000000000 +0200
+++ vmmon-only.patch//linux/iommu.c 2010-09-22 10:43:33.964000005 +0200
@@ -153,7 +153,7 @@
map_to = PPN_2_PA(mpn);
map_prot = IOMMU_READ | IOMMU_WRITE;
}
- if ((status = iommu_map_range(vmLinux->iommuDomain,
+ if ((status = iommu_map(vmLinux->iommuDomain,
PPN_2_PA(ppn),
map_to, PAGE_SIZE, map_prot))) {
printk(KERN_ERR "%s: IOMMU Mapping of PPN 0x%x -> MPN 0x%x "
@@ -400,7 +400,7 @@
/* Relinquish the IOMMU domain used by this VM. */
for (ppn = 0; ppn < vmLinux->numPages; ppn++) {
- iommu_unmap_range(vmLinux->iommuDomain, PPN_2_PA(ppn), PAGE_SIZE);
+ iommu_unmap(vmLinux->iommuDomain, PPN_2_PA(ppn), PAGE_SIZE);
}
if (vmLinux->iommuDomain) {
iommu_domain_free(vmLinux->iommuDomain);
| < Previous | Next > |