LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 970|回复: 5

vmware-modules在2.6.36上编译失败后的解决方法

[复制链接]
发表于 2010-10-27 13:42:51 | 显示全部楼层 |阅读模式
每次升级内核,vmware-modules就经常性的编不过,主要是在64位的机器上,支持的不够好,这时就得搜索一下,看有没有补丁能够解决问题,这里记录一下最近的一次解决方法,希望对有同样困扰的人能有所帮助。
我的系统是x86_64 multilib
1. 安装layman
2. 加入vmware的overlay
layman -a vmware
3. 安装vmware-workstation-7.1.2.301548,需要先到vmware的官方站点去下载VMware-Workstation-7.1.2-301548.x86_64.bundle,然后放到/usr/portage/distfiles下,再emerge
4. 你会发现内核升级到2.6.36以后,vmware-modules编不过了,即使是vmware overlay里的版本也不行,会出现错误:
/dev/shm/portage/app-emulation/vmware-modules-238.2/work/vmmon-only/linux/iommu.c:156: error: implicit declaration of function ¡®iommu_map_range
/dev/shm/portage/app-emulation/vmware-modules-238.2/work/vmmon-only/linux/iommu.c:403: error: implicit declaration of function ¡®iommu_unmap_range
5. 网上搜了一下,需要一个补丁,vmware-7.1-2.6.36-generic.patch,于是自己修改一个ebuild,/etc/makc.conf中加入:
PORTDIR_OVERLAY=/usr/local/portage
6. 把最新的vmware-modules的ebuild目录拷贝过去
cp -r /var/lib/layman/vmware/app-emulation/vmware-modules/ /usr/local/portage/app-emulation/vmware-modules/
7. 切换到/usr/local/portage/app-emulation/vmware-modules/中,把vmware-modules-238.2.ebuild拷贝一份,改名为如:vmware-modules-9999.ebuild
8. 修改这个ebuild,在src_prepare() 中去掉这两个补丁:
kernel_is 2 6 35 && epatch "${FILESDIR}/iommu_map.patch"
kernel_is 2 6 35 && epatch "${FILESDIR}/sk_sleep.patch"
添加这个补丁:
kernel_is 2 6 36 && epatch "${FILESDIR}/vmware-7.1-2.6.36-generic.patch"
9. 修改完后,重新生成checksum:
ebuild vmware-modules-9999.ebuild digest
10. 把vmware-7.1-2.6.36-generic.patch这个补丁放到vmware-modules/files下,然后emerge,这次可以编过了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2010-10-28 11:15:10 | 显示全部楼层

vmware-workstation-7.1.2.301548 不能启动

找不到 /opt/vmware/workstation/bin/vmware-config.pl

# /etc/init.d/vmware start
* Starting VMware USB Arbitrator ...                                                                       [ ok ]
* Starting VMware services ...                                                                             [ ok ]
Started Bridge networking on vmnet0
Started DHCP service on vmnet1
Enabled hostonly virtual adapter on vmnet1
Started DHCP service on vmnet8
Started NAT service on vmnet8
Enabled hostonly virtual adapter on vmnet8
Started Network detection service
Started all configured services on all networks                                                             [ ok ]


# vmware
process 27293: Attempt to remove filter function 0x7f1002a4cec0 user data 0x936fb0, but no such filter has been added
  D-Bus not built with -rdynamic so unable to print a backtrace


# /etc/init.d/hald start
# vmware

建立虚拟机后运行一直黑屏。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-28 20:51:05 | 显示全部楼层
这个没碰到过,网上搜了一下:
Recompiling libsexy & libview after adding accessibility USE flag to gtkmm helps.
可以试试 ,还有说是hald跟dbus的问题,我这里都是用-hal的。
回复 支持 反对

使用道具 举报

发表于 2010-10-28 23:44:24 | 显示全部楼层
libsexy libview gtkmm都没有accessibility USE flag.
所有相关的包都是 -hal。
装了unstable 的 glib 2.7.1和 gtk+2.22.0:2, gtk+ 2.91.2:3, VMware-Workstation-Full-7.1.2-301548.x86_64.bundle
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-29 12:34:42 | 显示全部楼层
libsexy libview gtkmm都加上accessibility试试?
回复 支持 反对

使用道具 举报

发表于 2010-10-29 16:36:58 | 显示全部楼层
# emerge -av libsexy libview gtkmm

[ebuild   R   ] dev-cpp/gtkmm-2.20.3  USE="examples -doc -test" 0 kB [?=>0]
[ebuild   R   ] x11-libs/libsexy-0.1.11-r2  USE="-doc" 0 kB [?=>0]
[ebuild   R   ] x11-libs/libview-0.6.6  USE="-debug" 0 kB [?=>1]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表