|
Проблема CyUSB.sys и 64-х битных Windows |
|
|
|
Dec 28 2009, 20:42
|
Группа: Новичок
Сообщений: 1
Регистрация: 19-04-07
Из: г.Волгоград
Пользователь №: 27 179

|
Начиная с 2006 года стал в разработках устройств в качестве интерфейсных мх использовать CY7C68013A вместо FT245BM, т.к. иногда требовалась большая скорость передачи. Тогда у FTDI ещё не было мх, которые бы работали на USB2.0. Потом ещё выяснилось, что CY7C68013A и стоит дешевле (на тот момент сохранились накладные в которых их стоимость 2,54$), удобнее в использовании (есть GPIB), для небольших скоростей (<4МБ/с) ассинхронный режим аналогичен FT245BM, превосходная библиотека NET 2.0 CyUSB.dll (ради этого перешёл с любимого Delphi на C#) очень хорошо продокументированная. Спустя три года поставил 64-битную 7-ку. Надеясь найти обновления качнул Development Kit датированный 2009 годом и там оказался CyUSB.sys версии 1.7.0.0 (в 2006 году была версия 1.8.120.0)! Техподдержка, чтоб её не доставали с подобными вопросами вывесила, что дрова мол работают в режими с отключённой проверкой сертефикатов (проверял не работают) и сертифицировать они ничего не собираются. FTDI сначала поторопились с версией CDM 2.04.14, написав, что поддерживает Server 2008 и 7-ку (оказались не сертифицированные), но потом быстро исправились в версии CDM 2.06.00 WHQL Certified. Что делать? Где бы взять исходники для CyUSB.sys, чтоб попробывать их перекомпилировать в DDK для 64-битки и потом мб сертифицировать?
|
|
|
|
|
Dec 28 2009, 21:51
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(pecec @ Dec 28 2009, 23:42)  Где бы взять исходники для CyUSB.sys, чтоб попробывать их перекомпилировать в DDK для 64-битки и потом мб сертифицировать? Исходники - не знаю, проще bulkusb.sys из wdk подогнать под задачу и собрать. Что касается "сертифицировать" - то ничего сертифицировать не надо, кроме своей собственной фирмы, купив на нее сертификат от GlobalSign, Verisign, или еще кого, кто там в списке - http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx . После того, как купите такой сертификат, стоит он не так и дорого, что-то типа 170 евро на год, сможете сами им подписать даже их драйвер (если это не нарушает их лицензии на этот драйвер), после чего он начнет ставится без отключения проверок, а винда гордо рапортовать о дровах Вашего изготовления. т.е. WHQL не нужна, чтобы можно было ставить драйвера. Она нужна, чтобы еще и пальцы гнуть можно было, "типа мы и там сертифицировались".
|
|
|
|
|
Jan 4 2010, 19:32
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(pecec @ Dec 28 2009, 23:42)  ... Спустя три года поставил 64-битную 7-ку. Надеясь найти обновления качнул Development Kit датированный 2009 годом и там оказался CyUSB.sys версии 1.7.0.0 (в 2006 году была версия 1.8.120.0)! ... Так ведь, у Cypress есть SuiteUSB 3.4 - USB Development tools for Visual StudioЦитата(pecec @ Dec 28 2009, 23:42)  ... Техподдержка, чтоб её не доставали с подобными вопросами вывесила, что дрова мол работают в режими с отключённой проверкой сертефикатов (проверял не работают) и сертифицировать они ничего не собираются. ... Они ведь объясняют причины этого: Why is cyusb.sys not WHQL signed? Поиск в Google ("sign driver for x64") дал вот такое решение: VISTA: Install unsigned hardware driver in x64 bit, Guide to Installing Un-Signed Drivers in Win 7 x64Я пока не использую Windows 7 (x64). Пожалуйста, напишите, работает ли это решение для Windows 7 (x64)?
|
|
|
|
|
Jan 13 2010, 16:20
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 9-06-08
Пользователь №: 38 171

|
Цитата(pecec @ Dec 28 2009, 23:42)  Где бы взять исходники для CyUSB.sys, чтоб попробывать их перекомпилировать в DDK для 64-битки и потом мб сертифицировать? Исходники найти не получится, занимался этоим вопрос, но безуспешно (общался вживую с ребятами из Cypress). Довольно просто можно переписать usbbulk.sys (получается ничуть не хуже, а местами и лучше), как уже было подмечено. А вот сертификовать думаю необходимо будет под Х64. Просто подписью (как упоминул уважаемый SM) не обойтись.
|
|
|
|
|
Mar 18 2010, 20:35
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(Konst_777 @ Mar 17 2010, 10:52)  У меня тоже работает в режиме Test Mode. Подписывать драйвера той утилитой еще не пробовал. Видимо майкрософт решили содрать еще немного денег с производителей. Сколько стоит получить подпись у майкрософт для своего устройства? P.S. Может тогда уже лучше использовать FT2232H?: http://www.ftdichip.com/Drivers/D2XX.htm
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
May 6 2010, 10:09
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Полезная утилита для тех, кто использует цифровую подпись для тестирования драйверов (Signing a Driver Package with the Test Certificate), как штатное средство подписи драйверов: Вот web страница автора утилиты и, собственно, сама утилита Remove Watermarks for Windows 7, Vista and Server 2008.
|
|
|
|
|
Feb 8 2012, 18:41
|
Группа: Участник
Сообщений: 12
Регистрация: 25-11-10
Из: Москва
Пользователь №: 61 185

|
Подниму тему. У пользователей идет обновление парка компьютеров, и на них установливают Windows 7 X64. Спрашивают драйверы для устройств на CY7C68013 FX2 под эту систему соответственно. Цитата(Konst_777 @ Jan 4 2010, 23:32)  Поиск в Google ("sign driver for x64") дал вот такое решение: Guide to Installing Un-Signed Drivers in Win 7 x64Я пока не использую Windows 7 (x64). Пожалуйста, напишите, работает ли это решение для Windows 7 (x64)? Это решение работает. В Windows 7 X64 запускаются программы написанные под XP и работают с драйвером для windows 7 X64 при отключенной проверке подписи драйвера. Еще как вариант можно использовать подписанный драйвер для демоплаты http://www.cypress.com/?id=4&rID=53338Но тогда надо VID PID менять на соттветствующие. Вопрос: есть еще варианты подписать драйвер под свои устройства чтобы в x64 он нормально устанавливался?
|
|
|
|
|
Jan 27 2014, 17:19
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936

|
to Konst_7771 пункт - не заработал. 2 пункт - не подходит QUOTE (Konst_777 @ Jan 27 2014, 20:03)  А вот WinUSB - пока не разобрался откуда взять .inf и .sys файлы (как создать, хотя по вашей ссылке сходил )
|
|
|
|
|
Jan 27 2014, 19:09
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(pergunt @ Jan 27 2014, 21:19)  1 пункт - не заработал... Похоже, что Вы что-то не сделали или сделали не так. Проверьте, что Вы: - подписали драйвер цифровой подписью для тестирования драйверов;
- добавили Ваш тестовый сертификат в хранилище сертификатов на компьютере.
Цитата(pergunt @ Jan 27 2014, 21:19)  ...А вот WinUSB - пока не разобрался откуда взять .inf и .sys файлы (как создать, хотя по вашей ссылке сходил ) Почитайте тему Подскажите по winUSB
|
|
|
|
|
Jan 28 2014, 07:16
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936

|
to Konst777 Относительно WinUSB.inf и WinUsb.sys : Правильно я понял, что я должен скорректировать (добавить) в файл WinUSB.inf , находящийся в дирректории с:\Windows\inf\ строки касающиеся моего устройства, т.е. :
[Version] Signature = "$Windows NT$" Class = USBDevice ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6} Provider = %ManufacturerName% CatalogFile = WinUSBInstallation.cat DriverVer=09/04/2012,13.54.20.543
; ========== Manufacturer/Models sections ===========
[Manufacturer] %ManufacturerName% = Standard,NTamd64
[Standard.NTamd64] %DeviceName% =USB_Install, USB\VID_0547&PID_1002
; ========== Class definition ===========
[ClassInstall32] AddReg = ClassInstall_AddReg
[ClassInstall_AddReg] HKR,,,,%ClassName% HKR,,NoInstallClass,,1 HKR,,IconPath,%REG_MULTI_SZ%,"%systemroot%\system32\setupapi.dll,-20" HKR,,LowerLogoVersion,,5.2
; =================== Installation ===================
[USB_Install] Include = winusb.inf Needs = WINUSB.NT
[USB_Install.Services] Include =winusb.inf Needs = WINUSB.NT.Services
[USB_Install.HW] AddReg=Dev_AddReg
[Dev_AddReg] HKR,,DeviceInterfaceGUIDs,0x10000,"{9f543223-cede-4fa3-b376-a25ce9a30e74}"
; [DestinationDirs] ; If your INF needs to copy files, you must not use the DefaultDestDir directive here. ; You must explicitly reference all file-list-section names in this section.
; =================== Strings ===================
[Strings] ManufacturerName="" ClassName="Universal Serial Bus devices" DeviceName="My USB" REG_MULTI_SZ = 0x00010000
Посмотрите, пожалуйста, этих изменений достаточно?
2. Этот inf файл я корректирую прямо в дирректории с:\Windows\inf\ ? или нужно поместить его в свою дирректорию?
3. WinUsb.sys файл возьмется автоматически родной из Windows или его тоже нужно создавать?
|
|
|
|
|
Jan 28 2014, 09:45
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(dxp @ Jan 28 2014, 10:32)  Этот приём не работает после какого-то там обновления.  Тоже использовали, а потом перестало работать... Да ну, а как же разработчики драйверов? Теперь все поголовно обязаны платить Certification Authorities? Попробовал использовать драйвер CyUSB (ver. 3.4), который я когда-то подписал цифровой подписью для тестирования драйверов, под Windows 8.1 x64. Все работает Цитата(dxp @ Jan 28 2014, 10:32)  ...В итоге, накопали некий скрипт,... Так и живём. Ну, так выложите скрипт. Осчастливьте народ. Цитата(pergunt @ Jan 28 2014, 11:16)  to Konst777 Относительно WinUSB.inf и WinUsb.sys : Правильно я понял, что я должен скорректировать (добавить) в файл WinUSB.inf , находящийся в дирректории с:\Windows\inf\... Не нужно трогать WinUSB.inf и WinUsb.sys. Вообще. В этом и преимущество. To identify a USB device as a WinUSB device, the device firmware must have these Microsoft OS Descriptors. Посмотрите пример, который я выложил в теме Подскажите по winUSB. И еще, очень полезно почитать USB Stack and Microsoft OS Descriptors.
|
|
|
|
|
Jan 28 2014, 10:27
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936

|
Прошу прощения, если задаю вопросы про очевидное. Я читаю WinUSB (Winusb.sys) Installation ( http://msdn.microsoft.com/en-us/library/wi...5%29.aspx#howto ) Дохожу до пункта How to create a driver package that installs Winusb.sys : 1. WinUSB co-installer (Winusbcoinstaller.dll) - беру соответствующее dll - WinUsbCoInstaller.dll 2. KMDF co-installer (WdfcoinstallerXXX.dll) - беру wdfcoinstaller01009.dll 3. An .inf file that installs Winusb.sys as the device's function driver. For more information, see Writing an .Inf File for WinUSB Installation. - создаю myusb.inf файл со строками приведенными мной ранее. 4. A signed catalog file for the package. This file is required to install WinUSB on x64 versions of Windows Vista. - А вот с этим пунктом непонятно, где взять проверенный каталог файл для меня, откуда?!
|
|
|
|
|
Jan 28 2014, 11:22
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (Konst_777 @ Jan 28 2014, 16:45)  Да ну, а как же разработчики драйверов? Теперь все поголовно обязаны платить Certification Authorities? Попробовал использовать драйвер CyUSB (ver. 3.4), который я когда-то подписал цифровой подписью для тестирования драйверов, под Windows 8.1 x64. Все работает  Не берусь судить, не знаю тему досконально. Пробовали разные способы, в т.ч. и подписыванием, оно кончалось BSOD'ами. QUOTE (Konst_777 @ Jan 28 2014, 16:45)  Ну, так выложите скрипт. Осчастливьте народ. Он легко гуглится. Впрочем, мне не жалко. 
srdp.zip ( 433.55 килобайт )
Кол-во скачиваний: 184
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jan 28 2014, 11:38
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(pergunt @ Jan 28 2014, 14:27)  -[color="#0000FF"] А вот с этим пунктом непонятно, где взять проверенный каталог файл для меня, откуда?! 1) сходить туда и заплатить бабла. https://www.globalsign.com/ru-ru/podpis-kod...thenticode.html2) получить сертификат 3) выполнить для Вашего INF следующие команды (в любой среде WDK) Код c:\WinDDK\8.0\bin\x86\inf2cat /driver:<path_to_driver> /os:2000,XP_X86,Server2003_X86,Vista_X86,XP_X64,Server2003_X64,Vista_X64,Server2 003_IA64,7_X64,7_X86,Server2008_X64,Server2008_IA64,Server2008_X86,Server2008R2_ X64,Server2008R2_IA64,8_X86,8_X64,Server8_X64
signtool sign /v /s my /n <certificate_name> /ac cert/mscv-gs.pem /t http://timestamp.globalsign.com/scripts/timstamp.dll <path_to_driver>\<drivername>.cat соотв. <path_to_driver> <certificate_name> и <drivername> подставить какие надо Все, наслаждаться драйвером. Платить денег надо только за тот срок, когда требуется подписывание дров. Пользоваться потом подписанными можно неограниченно. ну и winddk 8 нужен чтобы в CAT файл прописать вин8, а signtool все равно какой. я собираю дрова и под 8, и под 8.1 старым добрым WDK 7600, а из 8-го взял ТОЛЬКО inf2cat и ничего более. UPD: cert/mscv-gs.pem - этого надо скачать оттуда - http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx , там же полный список всех тех, у кого можно покупать сертификат, чтобы он подошел для KMCS
|
|
|
|
|
Jan 28 2014, 13:31
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(pergunt @ Jan 28 2014, 14:49)  Тогда я совсем запутался - в чем преимущество применения WinUsb.sys вместо CyUsb.sys (если я все равно должен заплатить )? Вы слишком углубляетесь в прошлое WinUSB. В самом начале WinUSB был просто еще одним универсальным драйвером для устройств USB. Так же как и CyUsb.sys. В настоящее время, преимущество WinUsb.sys в том, что не нужно вносить изменения в WinUsb.inf и подписывать драйвер. Попробуйте вначале прочитать WCID Devices. Там описана история развития WinUSB и требования к firmware для устройств USB, чтобы разработчику устройства USB не нужно было подписывать драйвер (модификацию WinUsb.inf), а пользователю не нужно было устанавливать драйвер. В теме USB Stack and Microsoft OS Descriptors дан ответ на вопрос: "Почему Windows не подключает мое устройство USB автоматически, хотя мое firmware отвечает на запросы MS OS Descriptors?". В этой теме есть ссылка на тему WCID Devices. Цитата(SM @ Jan 28 2014, 15:58)  ...и вы подделываетесь под VID/PID (или стандартный класс), указанный в нем, то тогда (и только тогда) Вам сертификат покупать не надо. При использовании WinUSB firmware может иметь произвольный VID/PID. Важно, чтобы firmware отвечало на запросы MS OS Descriptors.
|
|
|
|
|
Dec 23 2015, 15:55
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 2-02-13
Пользователь №: 75 460

|
А как дела на 8-ке? Установка неподписанных драйверов в Windows 8.1 http://www.windxp.com.ru/win8/article_44.htmКто-нибудь пробовал? В 7-ке подобная функция заявлена, но не работает.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|