none
【请教】驱动后安装时提示找不到文件的问题 RRS feed

  • 问题

  • 主板型号是DFI-ACP BL330-BR,芯片组为Intel ICH9系列。

    成功进入定制好的WinXPE系统,接着后安装所需驱动。

    主板自带的VGA和LAN驱动都可以正常安装,但是声卡Realtek HD Audio以及芯片组驱动安装时会出现诸如“在路径 d:\program files\realtek\audio\installshield\i386 下找不到文件 ksuser.dll”之类的提示。尤其是安装芯片组的驱动时,会出现10多次找不到相关的 .sys 和 .dll 文件的情况。

    但是人工指定到文件夹 \windows\system32 或者 \windows\system32\drivers 之后就可以找到需要的文件,并成功安装驱动。而且,在同一个平台的WinXPPro系统下安装驱动时不会出现这个问题。

    请问是因为定制Embedded系统时缺少了哪些组件才导致了这个问题么?还是说另有原因呢?

    感谢任何有用信息。

    2010年7月28日 5:41

答案

  • 因为xpe是组件化的所以不存在sp2.cab的这类“驱动包”文件。所以你就需要自己准备好文件。或者按照缺少的文件在目标设计器里查组件,然后添加。


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年7月30日 4:30
    版主
  • 请你仔细看看我以前的恢复内容!

    这些文件全部都是系统文件!并且都已经被组件化!你可以在TD中找到它们。

    避免这类问题的最终解决方法就是将驱动程序做成组件!


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)


    感谢回复。

    我不明白你为什么总是强调“组件”的问题,而忽略了我提到过的“驱动安装时提示缺少的文件,实际上已经存在于制作出的Embedded系统的系统文件夹中”。

    反过来说在普通情况下,如果在Target Designer中没有作为组件(或者组件的一部分)添加的话,制作出的Embedded系统也不会存在对应的文件吧?

    那么,我一直在提问的是:为什么对于已经存在于系统文件夹下的文件,Windows XP Embedded 会提示找不到该文件?

    再次感谢。


    copy windows\driver cache\i386\sp2.cab to target image

    copy windows\inf\drvindex.inf  to target image

     

    • 已标记为答案 advancedcj 2010年8月27日 9:25
    2010年8月25日 6:10

  • copy windows\driver cache\i386\sp2.cab to target image

    copy windows\inf\drvindex.inf  to target image

     

    感谢回复。

    这个做法起到作用了,过程如下:

    1.复制文件 driver.cab 和 sp3.cab 至 Embedded 系统的相同路径下

    2.复制文件 drvindex.inf 至 Embedded系统的相同路径下

    于是Embedded系统中驱动程序能够正常安装。

     

    但是为什么系统定位不到已经存在于文件夹 \windows\system32\driver 下的文件,而一定要靠 drvindex.inf 重定位到驱动包文件中呢?

    能够详细解释一下原理么?谢谢。

    • 已标记为答案 advancedcj 2010年8月27日 9:26
    2010年8月25日 7:56

全部回复

  • 本来就是这样,在当前文件加下找不到文件他就去 i386下去找

    有的时候还会缺文件

    2010年7月28日 9:34
  • 这个是驱动安装程序自身的问题。因为XPE中的不存在和XP一样的后备文件支持。
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年7月28日 14:00
    版主
  • 版主能够再详细地解释一下么?谢谢。

    没有看明白这个“答案”。

    2010年7月28日 23:29
  • 本来就是这样,在当前文件加下找不到文件他就去 i386下去找

    有的时候还会缺文件


    抱歉,我想你没有看懂原文。

    文中已经说明是需要“人工指定文件夹”,还有就是相同硬件平台的WinXPP系统下的安装没有遇到这种问题。

    2010年7月28日 23:41
  • 因为xpe是组件化的所以不存在sp2.cab的这类“驱动包”文件。所以你就需要自己准备好文件。或者按照缺少的文件在目标设计器里查组件,然后添加。


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年7月30日 4:30
    版主
  • 因为xpe是组件化的所以不存在sp2.cab的这类“驱动包”文件。所以你就需要自己准备好文件。或者按照缺少的文件在目标设计器里查组件,然后添加。


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)

    感谢答复。

    但是定制好的Embedded系统的目录下有这些所谓的“缺少“文件。

    会不会是因为缺少某些环境变量,导致后安装驱动时不能定位到正确的路径呢?

    2010年7月30日 10:17
  • 不是缺少环境变量,解决这个问题最根本的方法是把驱动导入成组件。


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年7月31日 4:58
    版主
  • 不是缺少环境变量,解决这个问题最根本的方法是把驱动导入成组件。


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)


    感谢回复。

    尝试一下把需要的驱动做成组件。

    不过还是想要知道导致这个问题的原因。之前虽然查询了很多资料,但是不论是中文,英文还是日文网站都没有找到相关的解释。

    2010年7月31日 5:27
  • 我上边不是说过么,XPE是组件化的。所以将原来的一些文件也组件化了。不存在像SP2(SP3).CAB的这种的驱动包了。所以会缺少文件。
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年8月1日 15:50
    版主
  • 我上边不是说过么,XPE是组件化的。所以将原来的一些文件也组件化了。不存在像SP2(SP3).CAB的这种的驱动包了。所以会缺少文件。
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    版主你的意思是说,虽然安装驱动需要的文件已经存在于Embedded系统的文件夹\windows\system32和\windows\system32\drivers,但是因为是“组件化”,系统自己不能识别或者无法定位,所以才需要手动指定?orz...
    2010年8月2日 0:07
  • 手动把需要的文件拷贝到他要求的目录呢?
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年8月2日 11:45
    版主
  • 手动把需要的文件拷贝到他要求的目录呢?
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年8月2日 11:46
    版主
  • 手动把需要的文件拷贝到他要求的目录呢?
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)


    在普通的WinXP下安装时,驱动安装程序会在系统目录下自动找到需要的文件。

    但是在Embedded系统时,驱动安装程序似乎“变傻”,它定位不到系统目录下已经存在的文件,于是要求手动指定文件路径,初始目录是类似于\windows\system32\drvstore\ich9core_a1099cc3ca402bc13a256b097a2d59e608d87295\i386这样的文件夹。

    尝试过手动把需要的文件复制到这个文件夹,但是因为文件关联的问题,会牵扯出更多的“找不到所需文件”。(貌似是因为会牵扯到其它的文件,而这些文件默认是在相同路径下的)

    2010年8月2日 23:49
  • 这个是驱动安装程序自身的问题。因为XPE中的不存在和XP一样的后备文件支持。
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)

    怎么解决这样的问题呢,有方法吗?我也一直困惑于此啊!
    2010年8月5日 13:23
  • 手动把需要的文件拷贝到他要求的目录呢?
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)


    在普通的WinXP下安装时,驱动安装程序会在系统目录下自动找到需要的文件。

    但是在Embedded系统时,驱动安装程序似乎“变傻”,它定位不到系统目录下已经存在的文件,于是要求手动指定文件路径,初始目录是类似于\windows\system32\drvstore\ich9core_a1099cc3ca402bc13a256b097a2d59e608d87295\i386这样的文件夹。

    尝试过手动把需要的文件复制到这个文件夹,但是因为文件关联的问题,会牵扯出更多的“找不到所需文件”。(貌似是因为会牵扯到其它的文件,而这些文件默认是在相同路径下的)


    如果问题很难解决,我觉得这应该是XPE做得不好的地方。驱动安装是最正常的要求,但却不能很处理完满,是不是系统开发时考虑不周全啊。
    2010年8月5日 13:28
  • 这个是驱动安装程序自身的问题。因为XPE中的不存在和XP一样的后备文件支持。
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)

    怎么解决这样的问题呢,有方法吗?我也一直困惑于此啊!

    目前没有找到有效的解决方法。

    尝试过使用工具“double driver”将驱动备份后在Embedded系统导入,结果失败。

    而且难以将驱动组件化,因为不清楚驱动安装程序到底在哪些路径复制了哪些文件又做了哪些设置。

    2010年8月6日 4:09
  • 关于这个问题有新的发现。

    在安装主板芯片组驱动时,安装程序要参照文件 ich9core.inf,而这个文件又参照了系统文件夹 \windows\inf\ 下的文件 machine.inf。

    而 machine.inf 中有这么2句, “copyfiles=@pci.sys”,“copyfiles=@isapnp.sys”。

    与上面情况类似的是,其它被参照的文件中有“copyfiles=@pciide.sys”,“copyfiles=@pciidex.sys”,“copyfiles=@usbuhci.sys”等等。

    正好就是在Embedded系统下安装驱动时提示找不到的那些文件。

     

    在Embedded系统下安装该芯片组驱动时,安装程序没有能够把 pci.sys, isapnp.sys, pciide.sys, pciidex.sys, usbuhci.ysys等文件复制到正确的路径下,导致系统提示找不到这些文件。

    与之相比,在Windows XP Professional 系统下安装驱动时就没有这个问题。

    于是推测,Embedded 系统的路径与 Windows XPP 系统的路径不同。

     

    目前的进度到此为止,至于到底问题出在哪里又怎么解决还是没有头绪。。。

    2010年8月24日 6:34
  • 请你仔细看看我以前的恢复内容!

    这些文件全部都是系统文件!并且都已经被组件化!你可以在TD中找到它们。

    避免这类问题的最终解决方法就是将驱动程序做成组件!


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年8月24日 11:11
    版主
  • 请你仔细看看我以前的恢复内容!

    这些文件全部都是系统文件!并且都已经被组件化!你可以在TD中找到它们。

    避免这类问题的最终解决方法就是将驱动程序做成组件!


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)


    感谢回复。

    我不明白你为什么总是强调“组件”的问题,而忽略了我提到过的“驱动安装时提示缺少的文件,实际上已经存在于制作出的Embedded系统的系统文件夹中”。

    反过来说在普通情况下,如果在Target Designer中没有作为组件(或者组件的一部分)添加的话,制作出的Embedded系统也不会存在对应的文件吧?

    那么,我一直在提问的是:为什么对于已经存在于系统文件夹下的文件,Windows XP Embedded 会提示找不到该文件?

    再次感谢。

    2010年8月24日 23:52
  • 请你仔细看看我以前的恢复内容!

    这些文件全部都是系统文件!并且都已经被组件化!你可以在TD中找到它们。

    避免这类问题的最终解决方法就是将驱动程序做成组件!


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)


    感谢回复。

    我不明白你为什么总是强调“组件”的问题,而忽略了我提到过的“驱动安装时提示缺少的文件,实际上已经存在于制作出的Embedded系统的系统文件夹中”。

    反过来说在普通情况下,如果在Target Designer中没有作为组件(或者组件的一部分)添加的话,制作出的Embedded系统也不会存在对应的文件吧?

    那么,我一直在提问的是:为什么对于已经存在于系统文件夹下的文件,Windows XP Embedded 会提示找不到该文件?

    再次感谢。


    copy windows\driver cache\i386\sp2.cab to target image

    copy windows\inf\drvindex.inf  to target image

     

    • 已标记为答案 advancedcj 2010年8月27日 9:25
    2010年8月25日 6:10

  • copy windows\driver cache\i386\sp2.cab to target image

    copy windows\inf\drvindex.inf  to target image

     

    感谢回复。

    这个做法起到作用了,过程如下:

    1.复制文件 driver.cab 和 sp3.cab 至 Embedded 系统的相同路径下

    2.复制文件 drvindex.inf 至 Embedded系统的相同路径下

    于是Embedded系统中驱动程序能够正常安装。

     

    但是为什么系统定位不到已经存在于文件夹 \windows\system32\driver 下的文件,而一定要靠 drvindex.inf 重定位到驱动包文件中呢?

    能够详细解释一下原理么?谢谢。

    • 已标记为答案 advancedcj 2010年8月27日 9:26
    2010年8月25日 7:56
  • 首先来说,最正确的方法是通过文件名,将含有该文件的组件添加进工程中之后后安装驱动,或者将驱动的inf导入成组件(会自动关联需要的组件)。这样做算是最正规的(系统镜像的体积最小)。

    下面简单说一下windows搜索驱动的原理。

    明确以下几点:

    1.driver.cab、SP2(SP3).cab实际上是驱动包(微软为了节省磁盘所以把驱动的文件打包了)。

    2. drvindex.inf 实际上是对2个驱动包的索引。

    但是XPE是组件化的,驱动包中的文件已经被拆成组件了。不再有CAB格式驱动包了。

    正式开始说:

    windows 找的不是查找驱动阶段是实际上是找inf文件。默认的搜索位置是在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion的DevicePath中定义的,也就是%SystemRoot%\inf(windows\inf)文件夹下,当然还要算上添加新硬件向导所搜索的可移动磁盘、CDROM和软盘,找到INF后(也就是匹配的驱动)后,开始进入安装阶段(写注册表、拷贝文件、注册组件、注册服务……)。要干什么?都是按照INF文件中的定义去做。

    拷贝文件时从哪里搜索本地的文件呢?首先从INF所在的目录搜索、之后是windows\i386。上面都是默认的位置,当然在INF文件中你可以指定文件所在的相对目录的位置。

    本贴中所列出来的缺少文件全都是系统文件。这些文件不应该由驱动的开发者提供。

    搂住应该明白了吧?

     


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年8月29日 10:05
    版主
  • 首先来说,最正确的方法是通过文件名,将含有该文件的组件添加进工程中之后后安装驱动,或者将驱动的inf导入成组件(会自动关联需要的组件)。这样做算是最正规的(系统镜像的体积最小)。

    下面简单说一下windows搜索驱动的原理。

    明确以下几点:

    1.driver.cab、SP2(SP3).cab实际上是驱动包(微软为了节省磁盘所以把驱动的文件打包了)。

    2. drvindex.inf 实际上是对2个驱动包的索引。

    但是XPE是组件化的,驱动包中的文件已经被拆成组件了。不再有CAB格式驱动包了。

    正式开始说:

    windows 找的不是查找驱动阶段是实际上是找inf文件。默认的搜索位置是在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion的DevicePath中定义的,也就是%SystemRoot%\inf(windows\inf)文件夹下,当然还要算上添加新硬件向导所搜索的可移动磁盘、CDROM和软盘,找到INF后(也就是匹配的驱动)后,开始进入安装阶段(写注册表、拷贝文件、注册组件、注册服务……)。要干什么?都是按照INF文件中的定义去做。

    拷贝文件时从哪里搜索本地的文件呢?首先从INF所在的目录搜索、之后是windows\i386。上面都是默认的位置,当然在INF文件中你可以指定文件所在的相对目录的位置。

    本贴中所列出来的缺少文件全都是系统文件。这些文件不应该由驱动的开发者提供。

    搂住应该明白了吧?

     


    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)

    明白了。那解决方案就是advancedcj 所说的手动拷贝driver.cab、SP2(SP3).cab吗?
    2010年8月30日 0:49
  • 是的,或者添加缺少的组件!或者按照标准的开发流程,把驱动导入成组件。
    肖正波
    诚亚博瑞科技有限公司
    我的WIndows Embedded中文技术BLOG:
    www.XPE.cc
    http://m--y.spaces.live.com/blog/
    QQ:1320232327(另外两个已满)
    MSN:questor_87@hotmail.com
    MCTS:70-571;MCTS:70-577;MCTS:70-582
    Microsoft MVP(2010)
    2010年8月30日 15:35
    版主
  • 是的,或者添加缺少的组件!或者按照标准的开发流程,把驱动导入成组件。
    有些驱动,特别是主板芯片组的驱动通常比较复杂,由十数个甚至数十个部分组成,一个一个导入成组件耗时不说,还会遇到难以解决的各种文件依赖和注册表等问题。。。
    2010年8月31日 2:39
  •  

        這個是經典的Bugs... 

        別難過這個Bug還會出現在WES 2009與POSready 2009 到目前為止無解...

     


    ============================== Johnny E-mail:Johnny_wu@chader.com.tw
    2010年10月7日 2:42