首 页 » 软件使用 » 驱动安装出错的排错方法

驱动安装出错的排错方法

[ 2013-05-08 20:15 | 浏览次数: 12,685次 | 5条评论 ]

遇到驱动安装出错(失败)该怎么办呢别急,先确认其他人有没有问题,如果不想问的话就在网上搜索一下,一般问题是普遍的话很容易搜到.

假设没有搜到,那就说明可能是你的系统有问题.

可能你做过优化导致了这个问题.

OK,看实例学习排错方法.

1. 问题描述

安装飞思卡尔()demo板子(FRDM-KL25Z), 在连接demo板时已经安装了opensda的驱动.

插上板子后,系统自动查找驱动并安装最后剩下一个驱动没有安装好,就是/Freescale – CDC serial Port”,

根据飞思卡尔的文档这个CDC serial Port的驱动文件在这个板子所模拟出的U盘了,跳到设备管理器,找到这个未安装的硬件(其他设备-> PEMicro/Freescale – CDC serial Port),右键它并选择更新驱动程序软件->浏览计算机以查找驱动程序软件->选择板子所模拟出来的盘->下一步.

以下是FRDM-KL25Z盘,其中SERCDC89.CAT和SERCDC89.INF是驱动文件

很遗憾,驱动安装出错了,显示错误信息是“Windows ,,.

这个问题在公司的windows  Xpwindows 732位版本上正常,在家里的windows 764位版本上出错.

2. 解决方法

查看log,驱动安装的log%windir%\inf\SETUPAPI.DEV.LOG%windir%\inf\SETUPAPI.APP.LOG. 

如何没有产生%windir%\inf\SETUPAPI.DEV.LOG,可以查看注册表,删除这些设置安装log的键值.

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\LogLevel

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\LogMask

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\LogPath

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\AppLogLevels

参考:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff550882(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/hardware/ff550887(v=vs.85).aspx

 

打开%windir%\inf\SETUPAPI.DEV.LOG,在最后面发现以下的文字.

source media:

Description  - [windows cd]

          SourcePath   - [C:\Windows\System32\DriverStore\\_amd64_neutral_9f203c20b6f0dabd]

          SourceFile   - []

Flags        - 0×00000000

{SPFQNOTIFY_NEEDMEDIA}

{SPFILENOTIFY_NEEDMEDIA}

{SPFILENOTIFY_NEEDMEDIA - exit(0×00000000)}

{SPFQNOTIFY_NEEDMEDIA - returned 0×00000000}

source media: SPFQOPERATION_ABORT.

 Error 2: The system cannot find the file specified.

{_commit_copy_subqueue exit(0×00000002)}

FileQueueCommit aborting!

可以看出因为usbser.sys文件找不到,所以abort停止了,与驱动安装出错的提示信息相似,

usbser.sys文件在: C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_9f203c20b6f0dabd,

查找发现没有这个目录,怪不得驱动安装不成功了.

总结一下这个板子的驱动引用了系统驱动库里的一个驱动,但我的电脑的驱动库里没有要引用的驱动mdmcpq.inf,所以出错了.为什么没有呢,因为我用win7优化(减肥/瘦身)大师,或根据网上的瘦身技巧等把驱动库里很多驱动删除了,因为这些驱动用不到.没想到现在用到了.

解决方法就是恢复那个驱动文件夹.

如果暂时找不到同事或光盘复制这个文件夹,那可以看看那个usbser.sys是否已经安装上了, 如果找到了c:\Windows\System32\drivers\usbser.sys, 说明以前已经安装过了这个驱动文件,那么就没必要去复制那个文件了,只要引用一下就可以了(当然直接从他人电脑上复制usbser.sys到c:\Windows\System32\drivers也是可以的).

打开驱动文件SERCDC89.INF,找到复制的那行.

[DriverInstall.NTamd64]    ;这是为WIN7 64位的配置

include=mdmcpq.inf

CopyFiles=DriverCopyFiles.NTamd64      ;   这就是要复制DriverCopyFiles.NTamd64,从下面可以看出DriverCopyFiles.NTamd64就是usbser.sys,使用分号注释掉这行就可以不用复制了

AddReg=DriverInstall.NTamd64.AddReg

 

[DriverCopyFiles.NTamd64]

%DRIVERFILENAME%.sys,,,0×20

 

再重新选择这个来安装,驱动就安装上了

您可以任意转载本文,但转载时请勿删除作者信息。
作者:hgyxbll,原文链接:http://shashanzhao.com/archives/800.html
上一篇: | 下一篇:

共有5条评论 [点此发言]

  1. 我是一个小毛驴
    2016-06-23 10:46

    我试了还是不行啊?可以图示解决方法吗?

  2. powerdruy
    2015-05-08 22:05

    楼主真乃大神也,驱动装不上去我一点办法也没有,没想到在楼主这里居然找到了办法

  3. dynaroo
    2015-03-18 12:33

    win7 X64系统按此方法解决了htc one M7连接电脑问题。楼主的方法很专业!超赞!

  4. zybiz
    2014-05-09 19:53

    win8.1 x64系统,按此方法,还是不行,提示文件的哈希值不对或已被破坏。

    • hgyxbll
      2014-05-09 22:47

      看驱动安装log里描述的详细信息,具体是哪个路径下的文件有问题,然后去其他机器拿个相同的文件比较一下.
      windows的文件一般会有记录哈希值的.所以不能随便随便拿一个文件.
      要拿同样目录下的文件.(可能目录名中带有哈希值的一部分)