vmware-any-any-update117 は <URL:http://download.rsbac.org/tmp/> にあるものを使う.
まず vmmon の comple でこける.
make: Entering directory `/tmp/vmware-config0/vmmon-only' make -C /usr/src/linux-headers-2.6.26-rc1-20080507-myn-01/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: Entering directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01' CC [M] /tmp/vmware-config0/vmmon-only/linux/driver.o /tmp/vmware-config0/vmmon-only/linux/driver.c:171: error: unknown field 'nopage' specified in initializer /tmp/vmware-config0/vmmon-only/linux/driver.c:172: warning: initialization from incompatible pointer type /tmp/vmware-config0/vmmon-only/linux/driver.c:175: error: unknown field 'nopage' specified in initializer /tmp/vmware-config0/vmmon-only/linux/driver.c:176: warning: initialization from incompatible pointer type make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Error 1 make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01' make: *** [vmmon.ko] Error 2 make: Leaving directory `/tmp/vmware-config0/vmmon-only' Unable to build the vmmon module.
これについては,
diff -uwr vmmon-only.orig/linux/driver.c vmmon-only/linux/driver.c
--- vmmon-only.orig/linux/driver.c 2007-11-28 19:59:26.000000000 +0900
+++ vmmon-only/linux/driver.c 2008-05-11 17:41:57.000000000 +0900
@@ -168,11 +168,9 @@
static void LinuxDriverPollTimeout(unsigned long clientData);
static struct vm_operations_struct vmuser_mops = {
- .nopage = LinuxDriverNoPage
};
struct vm_operations_struct vmuser_locked_mops = {
- .nopage = LinuxDriverLockedNoPage
};
static struct file_operations vmuser_fops;
とかで対応.include/linux/mm.h の struct vm_operations_struct から nopage が無くなったのは mm: remove nopage で,本当は mm: merge populate and nopage into fault (fixes nonlinear) で導入された fault を使わなければならないような気もする.
次に vmnet の comple でこける.
make: Entering directory `/tmp/vmware-config0/vmnet-only' make -C /usr/src/linux-headers-2.6.26-rc1-20080507-myn-01/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: Entering directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01' CC [M] /tmp/vmware-config0/vmnet-only/driver.o CC [M] /tmp/vmware-config0/vmnet-only/hub.o CC [M] /tmp/vmware-config0/vmnet-only/userif.o CC [M] /tmp/vmware-config0/vmnet-only/netif.o CC [M] /tmp/vmware-config0/vmnet-only/bridge.o /tmp/vmware-config0/vmnet-only/bridge.c: In function 'VNetBridgeDevCompatible': /tmp/vmware-config0/vmnet-only/bridge.c:278: error: 'struct net_device' has no member named 'nd_net' /tmp/vmware-config0/vmnet-only/bridge.c:278: error: 'struct net_device' has no member named 'nd_net' /tmp/vmware-config0/vmnet-only/bridge.c: In function 'VNetBridgeUp': /tmp/vmware-config0/vmnet-only/bridge.c:905: error: 'struct net_device' has no member named 'nd_net' /tmp/vmware-config0/vmnet-only/bridge.c:943: error: 'struct net_device' has no member named 'nd_net' make[2]: *** [/tmp/vmware-config0/vmnet-only/bridge.o] Error 1 make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01' make: *** [vmnet.ko] Error 2 make: Leaving directory `/tmp/vmware-config0/vmnet-only' Unable to build the vmnet module.
これについては,[myn:2008041900] と同じ.次に以下.
make: Entering directory `/tmp/vmware-config0/vmnet-only' make -C /usr/src/linux-headers-2.6.26-rc1-20080507-myn-01/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: Entering directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01' CC [M] /tmp/vmware-config0/vmnet-only/driver.o CC [M] /tmp/vmware-config0/vmnet-only/hub.o CC [M] /tmp/vmware-config0/vmnet-only/userif.o CC [M] /tmp/vmware-config0/vmnet-only/netif.o CC [M] /tmp/vmware-config0/vmnet-only/bridge.o CC [M] /tmp/vmware-config0/vmnet-only/filter.o CC [M] /tmp/vmware-config0/vmnet-only/procfs.o /tmp/vmware-config0/vmnet-only/procfs.c: In function 'VNetProc_Init': /tmp/vmware-config0/vmnet-only/procfs.c:66: error: 'proc_root' undeclared (first use in this function) /tmp/vmware-config0/vmnet-only/procfs.c:66: error: (Each undeclared identifier is reported only once /tmp/vmware-config0/vmnet-only/procfs.c:66: error: for each function it appears in.) /tmp/vmware-config0/vmnet-only/procfs.c: In function 'VNetProc_Cleanup': /tmp/vmware-config0/vmnet-only/procfs.c:98: error: 'proc_root' undeclared (first use in this function) make[2]: *** [/tmp/vmware-config0/vmnet-only/procfs.o] Error 1 make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01' make: *** [vmnet.ko] Error 2 make: Leaving directory `/tmp/vmware-config0/vmnet-only' Unable to build the vmnet module.
これは,include/linux/proc_fs.h から proc_root が無くなったのは proc: remove proc_root from drivers. 見た感じ NULL にしておけばいいらしい.ということで,以下のような感じに.
diff -uwr vmnet-only.orig/procfs.c vmnet-only/procfs.c
--- vmnet-only.orig/procfs.c 2007-05-14 14:57:41.000000000 +0900
+++ vmnet-only/procfs.c 2008-05-11 18:08:43.000000000 +0900
@@ -63,7 +63,7 @@
{
int retval;
- retval = VNetProc_MakeEntry(&proc_root, "vmnet", S_IFDIR, &base);
+ retval = VNetProc_MakeEntry(NULL, "vmnet", S_IFDIR, &base);
if (retval) {
return retval;
}
@@ -95,7 +95,7 @@
void
VNetProc_Cleanup(void)
{
- VNetProc_RemoveEntry(base, &proc_root);
+ VNetProc_RemoveEntry(base, NULL);
base = NULL;
}
がしかしただし,vmnet を組込む時に,
proc_dir_entry 'vmnet' already registered Pid: 10683, comm: insmod Tainted: P 2.6.26-rc1-20080507-myn-01 #1 [<c018abfd>] proc_register+0xf2/0x11d [<c018ad23>] create_proc_entry+0x6d/0x80 [<f8ae0dc1>] VNetProc_MakeEntry+0x18/0x28 [vmnet] [<f8ae0de7>] VNetProc_Init+0x16/0x1b [vmnet] [<f8add6f8>] init_module+0x7/0xce [vmnet] [<c013989e>] sys_init_module+0x157f/0x1716 [<c02587e2>] _write_unlock_irqrestore+0x0/0xa [<c0103816>] syscall_call+0x7/0xb =======================
とか怒られて,かつ実際,
% ls -ld /proc/vmnet* dr-xr-xr-x 2 root root 0 2008-05-11 18:10 /proc/vmnet/ dr-xr-xr-x 2 root root 0 2008-05-11 18:10 /proc/vmnet/
みたいな素敵なことになる(一応動く).
Last-modified: Wed May 14 23:50:47 +0900 2008