tingxx 发表于 2005-5-23 13:12:17

thanks

demonlj 发表于 2005-5-23 16:17:21

^_^不用,搞定就好

hemj 发表于 2005-5-24 15:45:07

在按照楼主所说的方法安装win4lin的过程中遇到问题,内核打上补丁后无法编译,代码如下:

# make
Makefile:703: 目标“arch/i386/mki-adapter26”在同一个规则中给出了多次。
CHK   include/linux/version.h
UPD   include/linux/version.h
SYMLINK include/asm -> include/asm-i386
SPLIT   include/linux/autoconf.h -> include/config/*
HOSTCCscripts/genksyms/genksyms.o
SHIPPED scripts/genksyms/lex.c
SHIPPED scripts/genksyms/parse.h
SHIPPED scripts/genksyms/keywords.c
HOSTCCscripts/genksyms/lex.o
SHIPPED scripts/genksyms/parse.c
HOSTCCscripts/genksyms/parse.o
HOSTLDscripts/genksyms/genksyms
CC      scripts/mod/empty.o
HOSTCCscripts/mod/mk_elfconfig
MKELF   scripts/mod/elfconfig.h
HOSTCCscripts/mod/file2alias.o
HOSTCCscripts/mod/modpost.o
HOSTCCscripts/mod/sumversion.o
HOSTLDscripts/mod/modpost
HOSTCCscripts/conmakehash
HOSTCCscripts/bin2c
CC      arch/i386/kernel/asm-offsets.s
In file included from arch/i386/kernel/asm-offsets.c:7:
include/linux/sched.h:612: error: duplicate member 'mki_task_info'
include/linux/sched.h:620: error: duplicate member 'mki_task_info'
make: *** 错误 1
make: *** 错误 2

在不打Kernel-Win4Lin3-2.6.9.patch和mki-adapter26_1_3_12.patch的情况下是可以正常编译的,这是什么原因?要怎么解决?

附上我的patch.log文件内容如下:

patching file kernel/exit.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file kernel/exit.c.rej
patching file kernel/fork.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file kernel/fork.c.rej
patching file kernel/sched.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
3 out of 3 hunks ignored -- saving rejects to file kernel/sched.c.rej
patching file mm/vmscan.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file mm/vmscan.c.rej
patching file arch/i386/Kconfig
Hunk #1 FAILED at 870.
1 out of 1 hunk FAILED -- saving rejects to file arch/i386/Kconfig.rej
patching file arch/i386/kernel/entry.S
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/kernel/entry.S.rej
patching file arch/i386/kernel/head.S
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file arch/i386/kernel/head.S.rej
patching file arch/i386/kernel/process.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file arch/i386/kernel/process.c.rej
patching file arch/i386/kernel/signal.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
3 out of 3 hunks ignored -- saving rejects to file arch/i386/kernel/signal.c.rej
patching file arch/i386/kernel/vm86.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/kernel/vm86.c.rej
patching file arch/i386/Makefile
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/Makefile.rej
The next patch would create the file arch/i386/mki/Makefile,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki/Makefile.rej
The next patch would create the file arch/i386/mki/mki.c,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki/mki.c.rej
patching file arch/i386/mm/fault.c
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mm/fault.c.rej
The next patch would create the file include/asm-i386/mki.h,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/asm-i386/mki.h.rej
The next patch would create the file include/asm-i386/mkiversion.h,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file include/asm-i386/mkiversion.h.rej
patching file include/asm-i386/segment.h
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file include/asm-i386/segment.h.rej
patching file include/asm-i386/thread_info.h
Reversed (or previously applied) patch detected!Assume -R?
Apply anyway?
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file include/asm-i386/thread_info.h.rej
patching file include/linux/init_task.h
Hunk #1 FAILED at 112.
1 out of 1 hunk FAILED -- saving rejects to file include/linux/init_task.h.rej
patching file include/linux/sched.h
Hunk #1 succeeded at 614 with fuzz 2 (offset 30 lines).
patching file arch/i386/Makefile
The next patch would create the file arch/i386/mki-adapter26/LICENSE,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/LICENSE.rej
The next patch would create the file arch/i386/mki-adapter26/Makefile,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/Makefile.rej
The next patch would create the file arch/i386/mki-adapter26/README,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/README.rej
The next patch would create the file arch/i386/mki-adapter26/mki-adapter26.h,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/mki-adapter26.h.rej
The next patch would create the file arch/i386/mki-adapter26/mki-main.c,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/mki-main.c.rej
The next patch would create the file arch/i386/mki-adapter26/mki26.c,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/mki26.c.rej
The next patch would create the file arch/i386/mki-adapter26/mkifunc.h,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/mkifunc.h.rej
The next patch would create the file arch/i386/mki-adapter26/mkivnet.c,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/mkivnet.c.rej
The next patch would create the file arch/i386/mki-adapter26/timer.c,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/timer.c.rej
The next patch would create the file arch/i386/mki-adapter26/vneteth.h,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/vneteth.h.rej
The next patch would create the file arch/i386/mki-adapter26/vnetint-pub.h,
which already exists!Assume -R?
Apply anyway?
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/i386/mki-adapter26/vnetint-pub.h.rej



另外说明一下我其它的相关软件版本:
系统是ML1.2F
内核源码用的是kernel-sourcecode-2.6.9-9mgc.athlon.rpm这个包的
GCC version:gcc version 3.4.3 20041114
GNU Make 3.80



大家帮我看看问题在那?怎么打了补丁就无法编译?

demonlj 发表于 2005-5-24 17:26:18

这个问题似乎很常见,我也没有什么好的解决方案。只是自己尝试了很土的解决过程^_^
最上面的那个问题,关于在make的时候出现提示“规则给出多次”,是因为patch工作做太多了(或者是做错了)。就是patch那步
我是步不明白如何在打了补丁的内核中把补丁再给卸载掉的,所以就直接把ml1.2自带的linux-2.6.9文件夹删除了。(这是很过分的做法哦^_^因为系统需要2.6.9源码包的)不过,我之后重新下载了一个linux-2.6.9.tar.bz2(或者是tar.gz,随便你了)
解压缩到/usr/src之后
ln -sf /boot/config-2.6.9 /usr/src/linux-2.6.9/.config
正确进行打补丁patch
make menuconfig
到倒数第二个选项load 刚才那个.config文件,然后把我说的那个重要模块填上,就可以make了

wanglaow 发表于 2005-5-25 21:04:03

为什么一运行

modprobe -r mki_adapter

这个命令就说不能卸载

而一旦等到可以卸载了,却出现不能安装后面的DOS的问题?

到底应该在什么时候卸载mki_adapter?

hemj 发表于 2005-5-25 21:14:56

哦,原来是补丁打太多了起冲突啊,我还以为这两个补丁有问题呢!因为我试过只打这两个补丁中的其中任意一个也还是相同的结果--无法编译!但如果按照楼上的方法编译出的内核岂不没有了ML1.2原内核所带的cko等补丁了?
在 http://www.netraverse.com/support/docs/kernel_patching.html?PHPSESSID=266020eb1c449d6ed82891146434ab00 这个页面上有说明,给内核打补丁是不可逆的,也就是说是不可卸载的,但是分析补丁文件应该可以手动改回来吧?!但那么大的工作量还不如重装一遍内核源码!

demonlj 发表于 2005-5-25 22:05:08

为什么一运行

modprobe -r mki_adapter

这个命令就说不能卸载

而一旦等到可以卸载了,却出现不能安装后面的DOS的问题?

到底应该在什么时候卸载mki_adapter?
我也是试了很久才搞定的,这里说明偶不是高手。所以没有很好的办法解决。只能说说时机的掌握问题,在释放dos文件的时候,不是有
...
.......
的过程吗?--就是两行很明显的点,你在第二行点会结束的时候运行modprobe -r mki_adapter就ok了,虽然系统还会提示不能卸载,但已经没有说明关系了

demonlj 发表于 2005-5-25 22:08:53

哦,原来是补丁打太多了起冲突啊,我还以为这两个补丁有问题呢!因为我试过只打这两个补丁中的其中任意一个也还是相同的结果--无法编译!但如果按照楼上的方法编译出的内核岂不没有了ML1.2原内核所带的cko等补丁了?
在 http://www.netraverse.com/support/docs/kernel_patching.html?PHPSESSID=266020eb1c449d6ed82891146434ab00 这个页面上有说明,给内核打补丁是不可逆的,也就是说是不可卸载的,但是分析补丁文件应该可以手动改回来吧?!但那么大的工作量还不如重装一遍内核源码!
汗,那没办法了。不过,偶觉得要比你更惨。我无意间对2.6.9的内核也做了毁灭性的改动,而且在改动之前已经安装了kde3.40的补丁(刚给的),然后编译,无论怎么编译都没办法通过,现在只好不用2.6.9了,用我原来编译好的2.6.11.8
win4lin是不能玩了。郁闷

这么看来你还是重新编译内核算了,起码你没有我那种问题

hemj 发表于 2005-6-1 16:55:11

楼主:在安装使用win4lin过程中又遇到以下问题:
1:无法强制卸载mki_adapter模块,按你说的经验和方法试了4,5小时也没有成功!
2:为什么我在装好win98se中文版后无法运行,运行后启动到一个蓝底界面就自动退出了,用终端运行win命令提示如下:



$ win
Warning: Missing charsets in String to FontSet conversion
xcrt: BadMatch (invalid parameter attributes)
with X function X_CreateWindow (code 1, minor 0), (serial #689, resource id 77)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #690, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #691, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #692, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #693, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #694, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #695, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #696, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #697, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #698, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #699, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeWindowAttributes (code 2, minor 0), (serial #704, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ConfigureWindow (code 12, minor 0), (serial #705, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #706, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_CreateWindow (code 1, minor 0), (serial #707, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_MapSubwindows (code 9, minor 0), (serial #708, resource id 2a0005f)
xcrt: BadWindow (invalid Window parameter)
with X function X_ConfigureWindow (code 12, minor 0), (serial #709, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ChangeProperty (code 18, minor 0), (serial #710, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_ConfigureWindow (code 12, minor 0), (serial #711, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_MapWindow (code 8, minor 0), (serial #712, resource id 2a0005c)
xcrt: BadWindow (invalid Window parameter)
with X function X_MapWindow (code 8, minor 0), (serial #713, resource id 2a0005f)
Warning:
    Name: menuBar
    Class: XmRowColumn
    XtGrabKeyboard failed



以上问题有什么好的解决办法吗?

demonlj 发表于 2005-6-1 19:43:55

楼上,看你这么辛苦偶真是过意不去。真想做个视频给你,就没有那么多的困惑了
不过,偶还是有点不明白:你说用偶的“破”方法试了4.5个小时(真对不起),那为什么说win98已经安装成功了呢?
这里附上我的qq,如果真的需要帮助就加我吧。毕竟是因为偶的方法不牛B啊
QQ:33996380

hemj 发表于 2005-6-3 16:15:22

实在不好意思,因为我以前从没安装过这个,也不知道是那里没弄对,所以给楼主找了那么多麻烦,也不知道这个软件是什么性质的软件,是不是一定得有正确的license才可以安装使用win系列的系统,具体过程再描述如下,劳烦楼主再帮忙看看:

Finished extracting the DOS files.
Finished loading Windows files.
License file has invalid information.

Existing license file not OK. /var/win4lin/install/license.lic
Do you want to enter new license info? (y/n) y

Please now enter the license code for your copy of Win4Lin.
The Win4Lin product will not function without a valid license.
If you received a license code via mail or the internet, when
prompted type it in exactly as printed, including the hyphens.
Otherwise the license code can be found on the Win4Lin CD sleeve.
When prompted, please type this license code exactly as it
appears on the CD sleeve (including the hyphens).

Your Name: Linus Torvalds
Organization: Transmeta
License Code: 1w5p055x-nd5l23-843j-x328-jp28-7a

Is the above information correct? (y/n) y

License accepted.


Please go to the NeTraverse web site at:

http://www.netraverse.com/member/product_register/

to register your Win4Lin product. We recommend registering
so that you can gain access to the latest Win4Lin updates.

Reloading drivers. This will take a few moments...
License not fully activated because unable to unload modules.
This is probably because the product is currently in use.
Inspect the log file /var/win4lin/log/activate_license.log
for details.
#

要到这时候才可以modprobe -r mki_adapter,查看按照你说的内容保存的/var/win4lin/install/license.lic 文件已经被修改过了,但里面说是未注册的(我以为该软件可以试用一定次数或时间,没在意),切换到非root帐号已经可以安装win98,只是安装过程中win98复制完文件重启后硬件安装设置的过程飞快,屏幕闪几下就过了(不知道是否正常?),但运行安装的win98就出现上面的问题~

demonlj 发表于 2005-6-3 17:04:44

了解。
按照常理来说win4lin是不允许root用户按照win98系统的。
看了你的报告,大概明白是什么意思了:
首先保存到/var/win4lin/install/license.lic的信息是让系统自动提取,而如果系统已经分析此license.lic不合法的话。那它就会让你输入一些新的信息来生成一个新文件,从而覆盖原来的license.lic,而原来的license.lic则变成了备份文件
那么,如果说网上流传的license.lic文件是合法的话,到底在什么地方错了呢?
你可以观察下你运行modprobe -r mki_adapter这个命令是什么时候。你是已经让系统检测license.lic信息是否合法之后再做卸载工作的,这可能就有点悔之晚已的意思了
所以呢?应该在
Finished extracting the DOS files.
Finished loading Windows files.
License file has invalid information.
之前就要将此卸载工作做好,就像偶总结的那样:在extract DOS files进行到屏幕显示:
...
........(这两排点是很明显的)
的时候就应该完成卸载了

hemj 发表于 2005-6-3 17:29:53

1:你是不是说我装的win98是因为检测license.lic不合法才导致不能运行的?那为什么可以安装呢(象是正常安装了,我的win98也不是用root用户安装的,因为它不允许root用户安装)?
2:modprobe -r mki_adapter时机的问题:在extracting the DOS files之前系统不允许卸载mki_adapter模块,就是那两排点快完时或者之前的过程都不行,提示正在使用,只有等到我说的哪个位置才能卸载啊,这怎么办呢?

demonlj 发表于 2005-6-3 18:21:28

2.这个无所谓的,就一定要在那个时候卸载就算提示错误也没关系(其实永远都会提示错误的)
1.你的win98不大可能按照正常!!!!!!!!1

hemj 发表于 2005-6-3 18:34:34

算了,看来没法体验win4lin了,因为win98我已经装了删,删了装3次了,都是一样的,也找不到不能运行的原因在哪儿!
thank you!
页: 1 [2] 3
查看完整版本: MagicLinux下安装win4lin方法,happy