热门内容

公众号"MAKE1"

获取行业最新资讯

请扫码添加

专业客服企业微信

Freescale opensda windows 驱动安装出错排查法

简介

Freescale opensda windows 驱动安装出错排查法

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

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

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

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

1. 问题描述

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

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

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

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

很遗憾,驱动安装出错了,显示错误信息是: “Windows 已找到设备的驱动程序软件,但在试图安装它时遇到错误,…系统找不到指定的文件.”

这个问题在公司的windows Xp和windows 7的32位版本上正常,在家里的windows 7的64位版本上出错.

2. 解决方法

查看log,驱动安装的log在%windir%infSETUPAPI.DEV.LOG和%windir%infSETUPAPI.APP.LOG.

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

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetupLogLevel

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetupLogMask

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetupLogPath

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetupAppLogLevels

参考:

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%infSETUPAPI.DEV.LOG,在最后面发现以下的文字.

source media:

Description - [windows cd]

SourcePath - [C:WindowsSystem32DriverStoreFileRepositorymdmcpq.inf_amd64_neutral_9f203c20b6f0dabd]

SourceFile - [usbser.sys]

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:WindowsSystem32DriverStoreFileRepositorymdmcpq.inf_amd64_neutral_9f203c20b6f0dabd,

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

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

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

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

打开驱动文件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

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

 

*****************************************************************************

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

  • hgyxbll

 

看驱动安装log里描述的详细信息,具体是哪个路径下的文件有问题,然后去其他机器拿个相同的文件比较一下.

windows的文件一般会有记录哈希值的.所以不能随便随便拿一个文件.

要拿同样目录下的文件.(可能目录名中带有哈希值的一部分)

 

1
 条评论
相关内容推荐