|
每次升级内核,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
|