最近入手一块 Arduino Micro Pro ,插在台式机上之后要求安装驱动,指定了 Arduino 目录下的 Drivers之后还出现了 Inf 段落无效的字样。忽然想起来我的 Win7 是Ghost版本,于是上网搜索解决办法。
在 http://blog.csdn.net/u013926582/article/details/24442583 和 http://www.arduino.cn/thread-2485-1-1.html 都有提到。
最后使用的方法是 查看 C:\Windows\inf\setupapi.dev.log (要从下向上搜索,最近安装的错误在文件尾)
发现下面的字样
dvi: {DIF_INSTALLDEVICEFILES} 17:08:34.464
dvi: Class installer: Enter 17:08:34.465
dvi: Class installer: Exit
dvi: Default installer: Enter 17:08:34.465
dvi: {Install FILES}mdmcpq.inf
inf: Opened PNF: 'c:\windows\system32\driverstore\filerepository\arduino.inf_amd64_neutral_844213a156728dfe\arduino.inf' ([strings])
inf: Opened PNF: 'C:\Windows\INF\mdmcpq.inf' ([strings])
inf: Opened PNF: 'C:\Windows\INF\usb.inf' ([strings.0804])
inf: {Install Inf Section [DriverInstall]}
inf: CopyFiles=FakeModemCopyFileSection (arduino.inf line 128)
cpy: Open PnpLockdownPolicy: Err=2. This is OK. Use LockDownPolicyDefault
flq: QueueSingleCopy...
flq: Inf : 'c:\windows\system32\driverstore\filerepository\arduino.inf_amd64_neutral_844213a156728dfe\arduino.inf'
! flq: Missing SourceDisksFiles/SourceDisksNames information from INF.
! flq: Default INBOX source locations pulled from pre-built DrvIndex
flq: SourceRootPath: 'C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_b53453733bd795bc'
flq: {FILE_QUEUE_COPY}
flq: CopyStyle - 0x00002000
flq: {FILE_QUEUE_COPY}
flq: CopyStyle - 0x00002000
flq: SourceRootPath - 'C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_b53453733bd795bc'
flq: SourcePath - '\'
flq: SourceFilename - 'usbser.sys'
flq: TargetDirectory- 'C:\Windows\system32\DRIVERS'
flq: TargetFilename - 'usbser.sys'
flq: {FILE_QUEUE_COPY exit(0x00000000)}
flq: {FILE_QUEUE_COPY exit(0x00000000)}
inf: {Install Inf Section [DriverInstall] exit (0x00000000)}
dvi: Processing co-installer registration section [DriverInstall.CoInstallers].
inf: {Install Inf Section [DriverInstall.CoInstallers]}
inf: {Install Inf Section [DriverInstall.CoInstallers] exit (0x00000000)}
dvi: Co-installers registered.
dvi: {Install INTERFACES}
dvi: Installing section [DriverInstall.Interfaces]
dvi: {Install INTERFACES exit 00000000}
dvi: {Install FILES exit (0x00000000)}
dvi: Default installer: Exit
dvi: {DIF_INSTALLDEVICEFILES - exit(0x00000000)} 17:08:34.479
ndv: Pruning file queue...
dvi: {_SCAN_FILE_QUEUE}
flq: ScanQ flags=620
flq: SPQ_SCAN_PRUNE_COPY_QUEUE
flq: SPQ_SCAN_FILE_COMPARISON
flq: SPQ_SCAN_ACTIVATE_DRP
flq: ScanQ number of copy nodes=1
! sig: GetNameSDInfo
! sig: Error 0: The operation completed successfully.
flq: ScanQ action=200 DoPruning=32
flq: ScanQ end Validity flags=620 CopyNodes=1
dvi: {_SCAN_FILE_QUEUE exit(0, 0x00000000)}
ndv: Committing file queue...
flq: {_commit_file_queue}
flq: CommitQ DelNodes=0 RenNodes=0 CopyNodes=1
flq: {SPFILENOTIFY_STARTQUEUE}
flq: {SPFILENOTIFY_STARTQUEUE - exit(0x00000001)}
flq: {_commit_copy_subqueue}
flq: subqueue count=1
flq: {SPFILENOTIFY_STARTSUBQUEUE}
flq: {SPFILENOTIFY_STARTSUBQUEUE - exit(0x00000001)}
flq: source media:
flq: SourcePath - [C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_b53453733bd795bc]
flq: SourceFile - [usbser.sys]
flq: Flags - 0x00000000
flq: {SPFQNOTIFY_NEEDMEDIA}
flq: {SPFILENOTIFY_NEEDMEDIA}
flq: {SPFILENOTIFY_NEEDMEDIA - exit(0x00000000)}
flq: {SPFQNOTIFY_NEEDMEDIA - returned 0x00000000}
!!! flq: source media: SPFQOPERATION_ABORT.
!!! flq: Error 2: The system cannot find the file specified.
flq: {_commit_copy_subqueue exit(0x00000002)}
!!! flq: FileQueueCommit aborting!
!!! flq: Error 2: The system cannot find the file specified.
flq: {SPFILENOTIFY_ENDQUEUE}
flq: {SPFILENOTIFY_ENDQUEUE - exit(0x00000001)}
flq: {_commit_file_queue exit(0x00000002)}
ndv: Device install status=0x00000002
ndv: Performing device install final cleanup...
! ndv: Queueing up error report since device installation failed...
ndv: {Core Device Install - exit(0x00000002)} 17:08:34.493
dvi: {DIF_DESTROYPRIVATEDATA} 17:08:34.494
dvi: Class installer: Enter 17:08:34.494
dvi: Class installer: Exit
错误是说找不到 C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_b53453733bd795bc(特别注意,不同系统,这个名字会不同,需要根据你当前系统中的错误来确定) 我进去 C:\Windows\System32\DriverStore\FileRepository\ 一看确实没有。
又在网上搜索了一下,在 http://www.arduino.cn/thread-2350-1-1.html 这里给出来两个64位的。
下载之后,首先将 UsbSer.sys 放到 Windows\System32\Drivers 下面,然后在 C:\Windows\System32\DriverStore\FileRepository\ 下面创建一个 mdmcpq.inf_amd64_neutral_b53453733bd795bc 目录把mdmcpq.zip中的全部内容放进去。
卸载之前安装的驱动,然后重新安装一次即可。
如果有遇到同样问题的朋友可以试试。
===========================================================================
2月16日 如果始终无法完成安装,建议检查一下你是否将设备插在 USB 3.0 的Port上。某些USB 3.0的 Controller 对于一些低速设备存在兼容性问题。如果是的话,请更换到 USB 2.0 的端口上再进行上述实验。
4月4日 在FileRepository 目录下创建目录的过程中,可能遇到“需要权限来执行此操作”的问题。解决方法是:
1.确保你的杀毒软件关闭了(比如,瑞星之类的你可以考虑直接卸载)
2.在FileRepository 目录上点鼠标右键,弹出的菜单上切换到安全页面。然后在上面的组或用户名栏目上检查是否有你当前账户。比如:开机登录的用户名是 player ,而这里没有。那么按下编辑键,在新弹出页面上用添加按钮,然后输入 player ,按下检查名称按钮就添加进去了。特别注意:其中的 SYSTEM 用户名,并非 Administrator,如果你是 Administrator 登录进来,那么需要手工添加一下。