amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 5866|回复: 16

分享一个Libusb 和 zadig安装USB驱动

[复制链接]
发表于 2014-9-29 14:22:07 | 显示全部楼层 |阅读模式
用STM32开发自定义USB设备时就需要安装driver, 一般会选择libusb.
我之前用win7 32bit/64bit都没问题, 最近想将driver装到win8上看看结果发现无法安装.
后来在网上找到了一个开源的zadig,可以用这个软件将liusb安装上去.
zadig其实就是一个打包软件,可以通过它打包驱动,然后自动解压,签名,再安装.
下面介绍一些使用经验.

首先到官方网站上下载 编译好的exe 和source code.
https://github.com/pbatard/libwdi/wiki

打开编译好的zadig.exe 用管理员权限打开,界面如下

点options  选择 lsit all devices, 默认zadig只列出没有安装驱动的设备.
在下拉菜单找到要装驱动的设备设备, 箭头右边有个选择驱动类型的地方,选libusb
然后就是一个大复合按钮,按钮右边有个下箭头可以选择行为. 如果选择extract files,zadig就会将驱动文件解压到一个usb_driver目录.
点options菜单选择Advanced Mode,可以看到zadig的log输出.
点Install Driver就可以安装驱动了.


这个软件还提供源代码,下载后可以自己修改.一些修改源代码的注意事项:
1. 最好用VS2012修改,如果是用VS2010打开会提示平台工具集错误,要在project属性->配置属性->常规->平台工具集里修改为VS2010的 V100
2. 首先要修改MSVC目录下的config.h头文件
下面这2段是WinUSB和libusbK用到的,将这些代码注释掉就不会将这2个驱动编译进去,可以减小zadig的体积


#ifndef DDK_DIR
//#define DDK_DIR "C:/Program Files (x86)/Windows Kits/8.1"
#endif


#ifndef LIBUSBK_DIR
//#define LIBUSBK_DIR "D:/libusbK/bin"
#endif

下面这段代码是libusb使用的, 要修改其目录为正确的libusb driver所在目录,主要用于zadig将driver打包进exe
#ifndef LIBUSB0_DIR
#define LIBUSB0_DIR "c:/libusb-win32"
#endif
3. Installer_x86和installer_x64要修改C/C++下的运行库为多线程/MT, 要不然在一些win7/8 机器上会提示缺少dll

也可以自己修改其他部分来添加自己的一些需求.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2014-9-29 14:24:41 | 显示全部楼层
source code:
编译好的exe:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2014-9-29 14:34:42 | 显示全部楼层
谢谢分享,我也听同事的建议,在win8.1 64bit上安装V-USB驱动的。
发表于 2014-9-29 14:35:45 | 显示全部楼层
谢谢,收了,备用
头像被屏蔽
发表于 2014-9-29 14:35:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
发表于 2014-9-29 14:40:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
发表于 2014-9-29 15:00:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2014-9-29 15:09:43 | 显示全部楼层
great job!
 楼主| 发表于 2014-9-29 20:51:32 | 显示全部楼层
bbs2009 发表于 2014-9-29 15:00
貌似 LZ  是  HIDUSB , 这个可能容易驱动, 据 mcupro 大侠 说 :win8  对其他非HID设备限制端口0(除在 ...

不是hidusb, 是完全自定义的USB, 可以根据自己需要定义EP的类型.
EP0只是用于控制传输
发表于 2014-11-18 16:15:23 | 显示全部楼层
谢谢楼主
有个问题,用zadig生成的驱动,生成的cat文件 ,查看属性,显示的签名不可用,请问这样可以在win8上安装吗?
发表于 2014-11-18 16:24:50 | 显示全部楼层
不错,备用
发表于 2014-11-18 16:54:31 | 显示全部楼层
不错,多谢分享。
发表于 2014-11-18 20:00:15 | 显示全部楼层
谢谢分享!
发表于 2014-11-18 20:08:11 来自手机 | 显示全部楼层
谢谢楼主,正为签名的事情头疼呢。
发表于 2014-11-18 22:40:34 | 显示全部楼层
您好 ,vs2010下确实出现了问题,但提到 不止第一点 。   错误 1 error MSB3073。 目前无法解决
 楼主| 发表于 2014-11-20 15:09:01 | 显示全部楼层
icemagicisme 发表于 2014-11-18 22:40
您好 ,vs2010下确实出现了问题,但提到 不止第一点 。   错误 1 error MSB3073。 目前无法解决 ...

我用的是2012开发的,没用过2010.
发表于 2015-1-19 15:56:18 | 显示全部楼层
不错。我之前用LibUsbDotNet开发的程序,在win7下装驱动很麻烦,自带的inf-wizard生成驱动在某些机不能安装。用了lz这个软件解决了。
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-2-21 10:59

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表