Jump to content

    

Проблема CyUSB.sys и 64-х битных Windows

Начиная с 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-битки и потом мб сертифицировать?

Share this post


Link to post
Share on other sites
Где бы взять исходники для CyUSB.sys, чтоб попробывать их перекомпилировать в DDK для 64-битки и потом мб сертифицировать?

 

Исходники - не знаю, проще bulkusb.sys из wdk подогнать под задачу и собрать.

 

Что касается "сертифицировать" - то ничего сертифицировать не надо, кроме своей собственной фирмы, купив на нее сертификат от GlobalSign, Verisign, или еще кого, кто там в списке - http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx . После того, как купите такой сертификат, стоит он не так и дорого, что-то типа 170 евро на год, сможете сами им подписать даже их драйвер (если это не нарушает их лицензии на этот драйвер), после чего он начнет ставится без отключения проверок, а винда гордо рапортовать о дровах Вашего изготовления.

 

т.е. WHQL не нужна, чтобы можно было ставить драйвера. Она нужна, чтобы еще и пальцы гнуть можно было, "типа мы и там сертифицировались".

Share this post


Link to post
Share on other sites
...

Спустя три года поставил 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

 

 

...

Техподдержка, чтоб её не доставали с подобными вопросами вывесила, что дрова мол работают в режими с отключённой проверкой сертефикатов (проверял не работают) и сертифицировать они ничего не собираются.

...

Они ведь объясняют причины этого: 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)?

Share this post


Link to post
Share on other sites
Где бы взять исходники для CyUSB.sys, чтоб попробывать их перекомпилировать в DDK для 64-битки и потом мб сертифицировать?

 

Исходники найти не получится, занимался этоим вопрос, но безуспешно (общался вживую с ребятами из Cypress). Довольно просто можно переписать usbbulk.sys (получается ничуть не хуже, а местами и лучше), как уже было подмечено. А вот сертификовать думаю необходимо будет под Х64. Просто подписью (как упоминул уважаемый SM) не обойтись.

Share this post


Link to post
Share on other sites

У меня тоже работает в режиме Test Mode. Подписывать драйвера той утилитой еще не пробовал. Видимо майкрософт решили содрать еще немного денег с производителей. Сколько стоит получить подпись у майкрософт для своего устройства?

 

P.S.

Может тогда уже лучше использовать FT2232H?: http://www.ftdichip.com/Drivers/D2XX.htm

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

Полезная утилита для тех, кто использует цифровую подпись для тестирования драйверов (Signing a Driver Package with the Test Certificate), как штатное средство подписи драйверов:

 

Вот web страница автора утилиты и, собственно, сама утилита Remove Watermarks for Windows 7, Vista and Server 2008.

Share this post


Link to post
Share on other sites

Подниму тему.

У пользователей идет обновление парка компьютеров, и на них установливают Windows 7 X64. Спрашивают драйверы для устройств на CY7C68013 FX2 под эту систему соответственно.

 

Поиск в 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 он нормально устанавливался?

Share this post


Link to post
Share on other sites

Подниму эту тему для WINDOWS 7 x64 .

Необходимо подключить ранее разработанные платы с USB на Cypress CY7C68013 к компу с 64-х разрядной WINDOWS 7.

На ХР драйвер ставился и устройство определялось и работало (был задан VID_0547&PID_1002).

Попытка поставить драйвер на 64-х разрядную ось неудачна.

В свойствах устройства стоит ! (воскл знак) и написано -

"Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)"

 

Я брал cyusb.inf файл и добавлял в него свой VID_0547&PID_1002 (cyusb.inf и cyusb.sys брались из CY3684_EZ-USB_FX2LP_DVK).

 

Если я при запуске WINDOWS 7 через F8 выключаю проверку цифровой подписи драйверов, то мое устройство опознается правильно и далее работает (но только до перезагрузки винды).

 

Попытка отключить на постоянно проверку цифровой подписи через gpedit.msc ничего не дает (не понимаю почему?).

 

Как еще можно заставить корректно видеть мое устройство в х64 (менять/перепрошивать vid и pid на предлагаемые cypress VID_04B4&PID_1004 ... во всех платах не хочется)?!

Share this post


Link to post
Share on other sites

Чем не устраивает работа с отключенной проверкой подписи драйверов (через F8)?

Share this post


Link to post
Share on other sites
...Как еще можно заставить корректно видеть мое устройство в х64 (менять/перепрошивать vid и pid на предлагаемые cypress VID_04B4&PID_1004 ... во всех платах не хочется)?!

  • Использовать цифровую подпись для тестирования драйверов (Signing a Driver Package with the Test Certificate). Только, придется на каждом компьютере использовать TESTSIGNING Boot Configuration Option.
  • Самому подписывать драйвер, соответственно заплатить Certification Authority $400.
  • Перейти на WinUSB.

Share this post


Link to post
Share on other sites

to Konst_777

1 пункт - не заработал.

2 пункт - не подходит

  • Перейти на WinUSB.

А вот WinUSB - пока не разобрался откуда взять .inf и .sys файлы (как создать, хотя по вашей ссылке сходил )

Share this post


Link to post
Share on other sites
1 пункт - не заработал...

Похоже, что Вы что-то не сделали или сделали не так. Проверьте, что Вы:

  • подписали драйвер цифровой подписью для тестирования драйверов;
  • добавили Ваш тестовый сертификат в хранилище сертификатов на компьютере.

...А вот WinUSB - пока не разобрался откуда взять .inf и .sys файлы (как создать, хотя по вашей ссылке сходил )

Почитайте тему Подскажите по winUSB

Share this post


Link to post
Share on other sites
Похоже, что Вы что-то не сделали или сделали не так. Проверьте, что Вы:

  • подписали драйвер цифровой подписью для тестирования драйверов;
  • добавили Ваш тестовый сертификат в хранилище сертификатов на компьютере.

Этот приём не работает после какого-то там обновления. :( Тоже использовали, а потом перестало работать.

 

В итоге, накопали некий скрипт, который автоматом запускается на старте и загоняет венду в тестовый режим, где всё работает без лишних вопросов. Так и живём.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this