解决USB驱动问题的有效方案

驱动安装正常与错误对比

​ 驱动是否安装有问题,可以通过USB日志和USB Device Viewer进行判断。

​ 安装正常及启动正常的驱动在日志中是不会有带有感叹号的。

​ 安装或运行出现错误则日志中会报异常(前面带感叹号)

​ 安装正常的USB Device Viewer中USB驱动信息完整

​ 安装异常或者驱动异常则USB Device Viewer中USB驱动信息带有报错信息。

驱动错误现象及解决方法

a.驱动显示黄色感叹号

a.原因

​ 造成此现象较多为驱动安装失败或者USB设备损坏,如果触摸屏是能够正常启动且USB未被暴力等其他因素导致外观或内部损坏的情况,可进行以下解决方法。系统装机使用了 Ghost 等方式会加大安装驱动失败的几率,特别是Win7用户。

a.解决方法
  1. 驱动安装过程中提示失败

    ​ 出现此问题时,可以查看C:\Windows\INF\setupapi.dev文件,查找最近几项USB驱动日志,例如下面这个安装失败的文件(前边有感叹号,说明驱动是有问题的)。

    !    sig:           Verifying file against specific (valid) catalog failed! (0x80096002)
    !    sig:           Error 0x80096002: The certificate for the signer of the message is invalid or not found.(这个错误估计可以忽略,因为程序往下继续走了)
    ...
    !    sig:           Verifying file against specific Authenticode(tm) catalog failed! (0x800b0100)
    !    sig:           Error 0x800b0100: No signature was present in the subject.(这个错误估计也可以忽略)
    ...
    !    sig:      Verifying file against specific (valid) catalog failed! (0x80096002)
    !    sig:      Error 0x80096002: The certificate for the signer of the message is invalid or not found.(继续忽略)
    ...
    !    sig:      Verifying file against specific Authenticode(tm) catalog failed! (0x800b0100)
    !    sig:      Error 0x800b0100: No signature was present in the subject.(继续忽略)
    ...
         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.(问题来了)
    

    ​ C:\Windows\System32\DriverStore\FileRepository\mdmcpq.inf_amd64_neutral_b53453733bd795bc路径中少了usbser.sys这个文件,系统中查看发现mdmcpq.inf_amd64_neutral_b53453733bd795bc这个文件夹都没有,所以问题就在这里,到正常的电脑上拷贝一下这个文件夹(检查下是否有usbser.sys)并粘贴到自己的电脑中,完事重新安装下驱动,如果还有问题,分析下log再找下问题即可。
    注意:FileRepository文件夹粘贴的时候可能权限不够,按如下操作既可。

    ​ 在C:/Windows/System32/DriverStore/FileRepository上点击右键-属性
    ​ 我们先来获得这个文件夹的所有权,点安全-高级-所有者
    ​ 接着点编辑-高级其他用户或组,在输入选择的对象名称里面输入你的用户名,或者点高级-立即查找,选择你的用户名,确定,然后选择替换子容器和对象的所有者,不选择这个的话,我们就只有这个文件夹的所有权,并没有他的子文件夹和里面的文件的所有权,然后应用-确定,这样我们就拥有了这个文件夹的所有权,因为之前这个文件夹的所有权是属于System,并不属于我们。
    ​ 再点权限-编辑-添加,把你的用户名填入或者用高级-立即查找,确定,再点击你的用户名-编辑,把完全控制/允许那个打勾,确定,再把使用可从此对象继承的权限替换所有后代上现有的可继承权限打勾,同前面,这个不打勾你就只有外面那文件夹权限,里面的文件夹还是不能“完全控制”,然后点应用-确定-确定-确定

  2. 安装完成后连接设备显示感叹号

    ​ 如果使用的是ST的虚拟串口驱动,我们安装的版本并不一定支持Win10/11操作系统。如果反复安装ST虚拟串口驱动无效,可在ST官网中下载支持Win10的虚拟串口进行安装尝试解决。

  3. 针对Win7操作系统安装ST的虚拟串口驱动

    ​ 部分 Win7 用户会出现无法安装驱动的情况(驱动出现感叹号),这是由于 USB 虚拟串口缺失文件所致(原因:系统装机使用了 Ghost 等方式)。解决办法如下(针对虚拟串口):

    ​ 将mdmcpq.inf复制到c:\windows\inf
    ​ 将usbser.sys复制到c:\windows\system32\drivers
    ​ 安装驱动软件 VCP_V1.3.1_Setup.exe;(注:该部分 Win7 用户需安装 V1.3.1 版本)
    ​ 重新插入 USB 相关设备,并在设备管理器界面右键选更新驱动;

b.未为设备创建数字表项

b.原因
b.解决方法

此类问题可禁用签名进行解决。

方法一:

​ 以管理员身份运行命令提示符;

​ 在命令提示符中输入以下命令;

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON

​ 使用以上命令进行操作之后我们就禁用签名了,此时重启计算机,设备管理器中的黄色感叹号设备符号就消失不见了,从而解决问题!

方法二:

​ 在操作系统设置中选择更新和安全项。

​ 点击恢复项中的高级启动下面的重启按钮进行重启。

​ 等待系统进入安全操作界面后,点击疑难解答。

​ 进入疑难解答选择高级选项。

​ 进入高级选项,里面有系统修复、启动修复、命令提示符、启动设置等,我们选择“启动设置”。

​ 进入启动设置界面,点击“重启”按钮,重启计算机

​ 进入启动设置界面,按一下键盘上的F7进行禁用签名操作。


​ 最后重新启动操作系统查看是否解决该问题。

c.未知错误43/52/39

c.原因
c.解决方法
  1. Code 39,此类错误可能是驱动损坏,重新安装或者参考b现象的禁用签名进行解决。

  2. Code 43,USB设备SetAddress失败(设置地址失败)。

    第一次获取设备描述符成功后,主机向设备分配地址,使用的是USB标准请求SET_ADDRESS来实现,不过当设备无响应或者没有返回ACK时,表示该USB请求SetAddress失败。
    在设备管理器中表现为:

​ 在设备管理器中查看硬件ID是:SET_ADDRESS_FAIL

​ 驱动异常或者供电异常,换个USB接口或者查看USB日志文件排查错误。

  1. Code 52,设备状态代码52很有可能是属于系统问题,并非是驱动问题。代码52问题的设备状态的描述是,Windows无法验证此设备所需的驱动程序的数字签名。最近的硬件或软件更改安装的文件可能为正确签名或已损坏,或者可能是来自未知来源的恶意软件。

    导致代码52问题的可能性有很多,如系统安装某软件后出现故障,如装某个驱动时强制中断,如某次非正常关机,或突然断电,或突然拔出U盘等等迷之操作。

​ 可参考b现象的禁用签名进行解决。

e.拔USB线蓝屏

e.原因

​ 导致拔掉USB线蓝屏可能是操作系统调用USB驱动错误、设备冲突、设备带电操作、显示器HDMI接口导致等原因。

e.解决方法

​ 该问题较难解决,可通过换显示器接口类型或者拔掉显示器接线再拔触摸屏USB线尝试解决,也可以尝试禁用相关设备驱动再拔掉设备。

其他原因

如果存在以下任何一种情况,可能会导致驱动问题:

  • 当前加载的 USB 驱动程序变得不稳定或损坏。

  • 你的 PC 需要更新,以解决可能与 USB 外部硬盘驱动器和 Windows 冲突的问题。

  • Windows 可能缺少其他重要的更新,以解决硬件或软件问题。

  • 你的 USB 控制器可能变得不稳定或损坏。

  • 外部驱动器可能正在进入选择性暂停。

  • PC 主板可能需要更新驱动程序。

  • !备注  
      将USB外部驱动设备连接到一个无供电的USB集线器可能会导致外部驱动器缺乏足够的电源来运行,请将其直接插入计算机USB接口。
    

    其他解决方法

    1. 同时按下Windows键 +R键,打开运行,在运行对话框中输入:“services.msc”命令打开服务,在服务窗口中找到并双击Plug and Play服务,首先将Plug and Play服务的启动类型为:禁用,停止服务,点击应用并确定。

      接着再点击 Plug and Play服务,将Plug and Play服务的启动类型为:手动或自动,并启动该服务,点击应用,确定。

      这时候的Plug and Play服务的启动类型:自动,运行状态:正在运行。再插拔一次USB设备,这时进入设备管理器看下是否解决了。

    2. 将设备管理器中的出现问题的设备右键卸载,然后将设备上的USB外设移除,重启电脑。

    3. 重启后将USB外设重新接入,扫描检测硬件改动,再次查看设备管理器中的问题是否还存在。

    如果使用的是集线器连接触摸屏出现未识别USB设备的,可尝试利用USBTreeViewer软件对集线器端口进行重置操作。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 解决USB驱动问题的有效方案

    发表评论