- 首先查阅文档,建议都是先升到6.10, 再从6.10升级到7.04;
- 升到6.10时,(update-manager -c),升级程序提示删除一些程序包,我居然同意了,没想到删了很多我的最爱:mplayer、azureus、amule等等,很麻烦,害得我又补装了半天
- 升到7.04时(update-manager -d),比较棘手的是azureus,总是跑一会就崩,再运行就怎么也起不来了;后来把java设成gcj就好了( sudo update-alternatives --config java ),我还是倾向于sun的java,所以就改了azureus的shell,把java换成gcj版本的java
- 另一个问题就是grub,7.04的2.6.20的内核不知道怎么把分区认成/dev/sdax格式,而2.6.15版本则还是认hdx,这个很折腾人(主要是grub命令kernel的root参数设置),升级的时候给了一个uuid好像是为了解决这个问题的,可是在我的机器上面好像不灵,而且即使grub的menu.lst你设对了,还有个问题:checkfs在扫描/etc/fstab的时候会挂掉,因为fstab中分区的设备(hda或者sda)只能适应一种内核,如果下次启动的时候你换个内核就出事了(听起来没必要,是不是?我是因为vmware的缘故)
- 接着就是vmware了,升到7.04,vmware的module要重新生成,本来还想偷懒(向上面说的)用低版本的内核起,结果发现这个所谓的低版本也是6.10带过来的,对应的头文件在6.10的源里面都没有,而且这个该死的内核是用gcc4.03编译生成的,而目前机器里面只有4.04的gcc,vmware要求编译module和内核的编译器版本要严格匹配,同时头文件版本和内核版本也要完全相同,只好试试2.6.20的内核,编译器是4.10,和我机器上面的gcc版本匹配,头文件在源里面也有,可是vmware似乎还没有正式支持2.6.20的内核,幸亏这篇文章救了我,module顺利编译成功,我的windows虚拟机顺畅运转!
You need to -
* Make a backup of /usr/lib/vmware/modules/source/vmmon.tar
* Untar /usr/lib/vmware/modules/source/vmmon.tar into a temporary directory
* Modify vmmon-only/include/compat_kernel.h, and change:
#define __NR_compat_exit __NR_exit
static inline _syscall1(int, compat_exit, int, exit_code);
to:
#define __NR_compat_exit __NR_exit
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
static inline _syscall1(int, compat_exit, int, exit_code);
#endif
* Finally, tar the modified module source back up, and replace the vmmon.tar in /usr/lib/vmware/modules/source/
* Make a backup of /usr/lib/vmware/modules/source/vmmon.tar
* Untar /usr/lib/vmware/modules/source/vmmon.tar into a temporary directory
* Modify vmmon-only/include/compat_kernel.h, and change:
#define __NR_compat_exit __NR_exit
static inline _syscall1(int, compat_exit, int, exit_code);
to:
#define __NR_compat_exit __NR_exit
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
static inline _syscall1(int, compat_exit, int, exit_code);
#endif
* Finally, tar the modified module source back up, and replace the vmmon.tar in /usr/lib/vmware/modules/source/
0 comments:
Post a Comment