- 论坛徽章:
- 0
|
这两天终于经过重重折腾把vmwaretools装到fedora 9上了,现在虚拟机用起来终于比较爽了。
各功能似乎都齐全,鼠标能平滑过渡,定位准确,屏幕分辨率可以随窗口大小变换,可以在虚拟机和explorer间拖动文件,想不出还有什么其他的了。
btw,我用的是自己编译的2.6.26.5-49的核。虚拟机和vmwaretools都是vmware 6.0.5版本。
安装vmwaretools方法网上有,不赘述。
但我在编译安装的过程中提示错误,os.c中500多行,一个结构体中的成员get_info无法找到。vmmemctl这个驱动模块最终没有编译成功。
查了下源文件,不知从哪一个版本开始,那个结构体的get_info接口被一个新的read_proc接口取代了,故有此问题。
如果出现上述问题,解决办法如下(没出现的就不要瞎改了):
将vmwaretools的gzip包解开,在找到其lib/module/source/os.c文件,修改两处:
190多行的地方:
找到
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
static int os_proc_read(char *, char **, off_t, int);
static struct proc_dir_entry *global_proc_entry;
改为:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) //换成自己的内核版本号
static int os_proc_read(char *, char **, off_t, int, int *, void *);
static struct proc_dir_entry *global_proc_entry;
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
static int os_proc_read(char *, char **, off_t, int);
static struct proc_dir_entry *global_proc_entry;
500多行的地方:
找到
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
global_proc_entry = create_proc_entry("vmmemctl", S_IFREG | S_IRUGO, NULL);
if (global_proc_entry != NULL) {
global_proc_entry->get_info = os_proc_read;
}
改为:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) //改成你自己的内核版本
global_proc_entry = create_proc_entry("vmmemctl", S_IFREG | S_IRUGO, NULL);
if (global_proc_entry != NULL) {
global_proc_entry->read_proc = os_proc_read;
}
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
global_proc_entry = create_proc_entry("vmmemctl", S_IFREG | S_IRUGO, NULL);
if (global_proc_entry != NULL) {
global_proc_entry->get_info = os_proc_read;
} |
|