問題:
使用FT_Prog修改FT232R PID = 6002/6003/6004 (原始 VID = 0403 PID = 6001),
Window無法正確辨認到FT232R, 而且FT_Prog也無法抓到FT232R, 因此使用FT_Prog無法回復PID = 6001
對策:
下載FT232R VCP driver (CDM v2.12.28 WHQL Certified.zip), 解壓縮後, 手動修改ftdibus.inf和ftdiport.inf並且重新產生*.cat
修改ftdibus.inf
[FtdiHw]
;%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6001
%USB\VID_0403&PID_6002.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6002
%USB\VID_0403&PID_6003.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6003
%USB\VID_0403&PID_6004.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6004
[FtdiHw.NTamd64]
;%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6001
%USB\VID_0403&PID_6002.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6002
%USB\VID_0403&PID_6003.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6003
%USB\VID_0403&PID_6004.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6004
[Strings]
Ftdi="FTDI"
DESC="CDM Driver Package - Bus/D2XX Driver"
DriversDisk="FTDI USB Drivers Disk"
;USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6002.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6003.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6004.DeviceDesc="USB Serial Converter"
修改ftdiport.inf
[FtdiHw]
;%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001
%VID_0403&PID_6002.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6002
%VID_0403&PID_6003.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6003
%VID_0403&PID_6004.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6004
[FtdiHw.NTamd64]
;%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6001
%VID_0403&PID_6002.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6002
%VID_0403&PID_6003.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6003
%VID_0403&PID_6004.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6004
[Strings]
FTDI="FTDI"
DESC="CDM Driver Package - VCP Driver"
DriversDisk="FTDI USB Drivers Disk"
PortsClassName = "Ports (COM & LPT)"
;VID_0403&PID_6001.DeviceDesc="USB Serial Port"
VID_0403&PID_6002.DeviceDesc="USB Serial Port"
VID_0403&PID_6003.DeviceDesc="USB Serial Port"
VID_0403&PID_6004.DeviceDesc="USB Serial Port"
此時手動安裝驅動, Window回應雜湊碼錯誤, 我們需要對修改後的INF產生一組新的ftdibus.cat和ftdiport.cat檔案
open cmd, Run as administrator
假設WDK路徑安裝在C:\Program Files (x86)\Windows Kits\10
cd C:\Program Files (x86)\Windows Kits\10\bin\x86
執行Regedit, 查看HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\是否存在mySelfSignedCert,
1) 確定是之前手動加入的私人憑證mySelfSignedCert, 手動刪除mySelfSignedCert
2) 如果不確定mySelfSignedCert是否是之前手動加入, 後續的mySelfSignedCert須使用其他名稱替代
假設HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\,不存在mySelfSignedCert或已經手動刪除mySelfSignedCert
產生私人憑證
Makecert -r -pe -ss mySelfSignedCert mySelfSignedCert.cer
//Succeeded
加入私人憑證
certmgr -add mySelfSignedCert.cer -s -r localMachine root
//CertMgr Succeeded
此時可用certmgr.msc查看, 受信任的根憑證授權單位增加一個Joe's-Software-Emporium, 時間為剛剛產生
產生新的catalog files
INF2CAT /driver:c:\ftdi_vcp_drivers_modified /os:7_X86,7_X64,8_X86,8_X64,10_X86,10_X64
//...........................................................
//Signability test complete.
//
//Errors:
//None
//
//Warnings:
//None
//
//Catalog generation complete.
//c:\ftdi_vcp_drivers_modified\ftdibus.cat
//c:\ftdi_vcp_drivers_modified\ftdiport.cat
signtool sign /s mySelfSignedCert c:\ftdi_vcp_drivers_modified\ftdibus.cat
//Done Adding Additional Store
//Successfully signed: c:\ftdi_vcp_drivers_modified\ftdibus.cat
signtool sign /s mySelfSignedCert c:\ftdi_vcp_drivers_modified\ftdiport.cat
//Done Adding Additional Store
//Successfully signed: c:\ftdi_vcp_drivers_modified\ftdiport.cat
此時手動安裝驅動, PC將FT232R視為USB Serial Converter裝置 (此時, FT_Prog已經可以正確抓到FT232R),
再次手動更新USB Serial Converter驅動, PC將FT232R視為COM Port
沒有留言:
張貼留言