驱动INF文件解析和 为自己的设备安装指定驱动
文章目录一、修改INF文件二、给INF驱动文件签名2.1 工具准备转载请注明出处!作者:雪天鱼目的:为自己的设备安装CyUSB驱动,然后用CyAPI进行一些读写测试。首先Windows为USB设备安装驱动是根据硬件ID和兼容ID来进行匹配的。我的设备的硬件ID和要安装的驱动分别如下所示:设备:AL-Link一、修改INF文件驱动:Cyusb直接为设备安装该驱动安装不上,需要修改 cyusb.inf
转载请注明出处!
作者:雪天鱼
目的:为自己的设备安装CyUSB驱动,然后用CyAPI进行一些读写测试。
首先Windows为USB设备安装驱动是根据硬件ID和兼容ID来进行匹配的。
我的设备的硬件ID和要安装的驱动分别如下所示:
设备:AL-Link
一、修改INF文件
驱动:Cyusb
直接为设备安装该驱动安装不上,需要修改 cyusb.inf
文件。
打开 cyusb.inf文件,有:
[Manufacturer]
%CYUSB_Provider%=Device,NT,NTx86,NTamd64
;for all platforms
[Device]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
;for windows 2000 non intel platforms
[Device.NT]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
;for x86 platforms
[Device.NTx86]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
;for x64 platforms
[Device.NTamd64]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
这里将最后三行按照实际的硬件ID改为:
;for x64 platforms
[Device.NTamd64]
%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_336C&PID_1001
- 其中变量
%VID_XXXX&PID_XXXX.DeviceDesc%
是自定义的设备描述,在INF文件末尾的[Strings]节中定义;这里我设置为“XUE-Link V1.0” CyUsb
是安装节的名称,不区分大小写USB\VID_336C&PID_1001
是设备的硬件ID,由生成商设置
INF文件修改好了,然后在设备管理器中为AL-Link安装该驱动,安装结果如下:
出现这个界面就说明INF文件修改有效,Window将其和设备匹配起来了,但似乎还有东西需要修改。
经过查阅资料,发现需要数字签名,看了下有两种解决方法,第一种是自己给INF驱动文件签名,第二种是取消Windows的强制数字签名设置。想了想,后期驱动开发应该还是要学习如何给驱动签名,所以这里我采用第一种方法了。
成功后,进行测试,测试结果如下图所示:
成功检测到了使用cyusb.sys驱动的设备,并列举了出来。
二、给INF驱动文件签名
2.1 工具准备
需要使用到 Inf2Cat,makecert,Signtool,CertMgr 等工具,需要下载Windows 10 SDK来获取,可以通过Visual Studio Installer下载,也可以直接在官网下载。
这里不知道为啥下载下来的SDK中没有Inf2Cat工具
试了安装8.0版本的Window SDK也不管用,最终是通过沃通代码签名精灵来生成的 cat文件
2.2 制作签名证书
(1)打开Visual Studio的命令行工具
(2)制作证书,输入下列命令:
makecert -r -pe -ss root -n CN="Company XUE CA" -$ commercial -b 01/01/2020 -e 01/01/2100 Cert1.cer
makecert 命令使用说明如下:
https://docs.microsoft.com/en-us/windows/win32/seccrypto/makecert
选择"是"
此时产生了Cert1.cer根证书
(3)导出PFX格式证书
在Windows搜索栏输入MMC并打开:
在"文件"->“添加管理单元"中添加"证书"至我的用户账户,并确认,
在"受信任的根证书颁发机构”->“证书"中找到刚才安装的证书"Company XUE CA”,右击"所有任务"->“导出"进入证书导出向导:
这里我直接导出到桌面,生成了cert1.pfx文件
2.3 给INF文件签名
先生成Cat目录文件
下载好沃通代码签名精灵,以管理员身份运行,再把inf文件和其[SourceDisksFiles]节中调用的驱动文件都添加到 CAB/CAT中
生成的CAT文件和 inf文件放在同一目录下即可。
再签名Cat文件
同样在命令行工具下执行:、
Signtool sign /v /fd sha256 /f cert1.pfx /p 123456 /n "Company XUE CA" /t http://timestamp.digicert.com *.cat
signtool 命令使用说明如下:
https://docs.microsoft.com/zh-cn/dotnet/framework/tools/signtool-exe
其中"/p 123456"是导出pfx时设置的密码
命令执行成功后,如下图所示,且在cat文件的属性中能够看到已经被签名:
至此,驱动已经签名成功,驱动可以在设备管理器中手动安装完成
三、驱动安装
3.1手动安装
若手动安装驱动,需要将inf,cat以及cer文件拷贝至目标电脑,首先需要安装证书,用管理员身份运行CMD,输入如下命令:
CertMgr /add cert1.cer /s /r localMachine root /all
其中cert1.cer为之前生成的根证书
安装证书成功后,即可在设备管理器中手动安装驱动
参考博客:
https://blog.csdn.net/qq_29729577/article/details/113537243
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)