Microsoft द्वारा हस्ताक्षरित MSP430 USB ड्राइवर प्राप्त करना


11

मैं एक उत्पाद विकसित कर रहा हूं जो एक अंतर्निहित USB मॉड्यूल के साथ MSP430 माइक्रोकंट्रोलर का उपयोग करता है। मैंने टेक्सास इंस्ट्रूमेंट्स से एक पीआईडी ​​प्राप्त की और डिस्क्रिप्टर जनरेट करने के लिए अपने टूल्स का इस्तेमाल किया, साथ ही ड्राइवर सॉफ्टवेयर को स्थापित करने के लिए .inf फाइल भी। स्पष्ट मुद्दा यह है कि इन फ़ाइलों की कस्टम प्रकृति के कारण, USB केबल में प्लगिंग पर एक पॉपअप प्रस्तुत किया जाता है (जो कि उपयोगकर्ता को चेतावनी देता है कि ड्राइवर हस्ताक्षरित नहीं है। मेरा मानना ​​है कि विंडोज 8 और विंडोज 10 पर यह बस इसे ब्लॉक करता है और उपयोगकर्ता को इसका संकेत बिल्कुल नहीं देता है।

जैसा कि यह एक पूर्ण-विशेषताओं वाला उत्पाद है जिसे मेरी कंपनी जारी करने की योजना बना रही है, हमें एक ड्राइवर प्रमाणपत्र प्राप्त करना होगा (मैं एक .cat फ़ाइल के रूप में विश्वास करता हूं?) जिसे हम ग्राहक को प्रदान कर सकते हैं ताकि वे डिवाइस को स्थापित कर सकें। समस्या के बिना ड्राइवर सॉफ्टवेयर।

मैं काफी Microsoft दस्तावेज़ों (सबसे विशेष रूप से इस दस्तावेज़ ) के माध्यम से गया हूँ जो एक ड्राइवर को हस्ताक्षरित करने के लिए आवश्यक है की एक मुट्ठी पाने की कोशिश कर रहा है, लेकिन दुर्भाग्य से यह इस समय मेरे सिर पर है।

यह वही है जो मुझे लगता है कि मैं अब तक समझता हूं:

  • मुझे Microsoft अधिकृत प्रमाणपत्र प्राधिकरण (CA) को अपना ड्राइवर (.inf फ़ाइल?) सबमिट करने की आवश्यकता है। इनमें से कई संख्याएं हैं, इसलिए मुझे ड्राइवरों को साइन करने वाले एक को खोजने की आवश्यकता होगी।
  • सीए का चयन करने के बाद, आम तौर पर मुझे उनकी सेवा के लिए एक वार्षिक शुल्क (आमतौर पर 1, 2 या 3 साल के लिए) का भुगतान करना होगा। इस समय के दौरान मेरे द्वारा बनाए गए किसी भी ड्राइवर को सेवा समाप्त होने के बाद भी स्थायी रूप से हस्ताक्षरित किया जाएगा। अगर मैं ड्राइवर को बदलना चाहता हूं या सेवा समाप्त होने के बाद एक नया निर्माण करना चाहता हूं, तो मुझे अगले 1, 2 या 3 साल के लिए सेवा खरीदने की आवश्यकता होगी।
  • शुल्क का भुगतान करने के बाद, CA एक .cat फ़ाइल उत्पन्न करेगा जो एक प्रमाण पत्र है जो यह आश्वस्त करता है कि मैंने जो ड्राइवर दिया था उसे बदला नहीं जाएगा। यदि ऐसा होता है तो यह .cat फ़ाइल से मेल नहीं खाता है और स्थापना के दौरान एक त्रुटि दिखाई देगी

क्या ये सही है? लगने के जोखिम पर, जैसे मैं विशिष्ट CA (मैं नहीं, आप से) के लिए सिफारिशें मांग रहा हूं, मैं उन CA की सूची कहां पा सकता हूं जो मेरे लिए यह प्रमाणीकरण करने में सक्षम हैं? इससे भी बेहतर होगा कि उनकी वेबसाइटें और / या विभिन्न सेवा अवधि के लिए कीमतें हों। क्या यहां किसी को सीए द्वारा हस्ताक्षरित USB माइक्रोकंट्रोलर-आधारित उत्पाद के लिए प्रत्यक्ष अनुभव प्राप्त करने का अनुभव है, जो प्रक्रिया के माध्यम से मुझे समझने और प्राप्त करने में मदद करेगा? मैंने पहले ही MSDN फ़ोरम में पोस्ट कर दिया है, लेकिन यह वहां बहुत ही मृत प्रतीत होता है - दो दिन हो गए हैं और मेरे धागे में केवल कुछ ही दृश्य हैं।


क्या आपका ड्राइवर पूरी तरह से चित्रित चीज़ है, जिसे कर्नेल मोड में कोड निष्पादित करने की आवश्यकता है, या क्या यह केवल एक फ़ाइल है? यदि यह सिर्फ एक inf फाइल है, जो बिल्ट-इन ड्राइवर (.sys फाइलें) लोड करता है?
जैक बी

यह वह जगह है जहां मैं विफल रहता हूं, मुझे पीसी के आंतरिक कामकाज और ड्राइवरों के काम करने के बारे में ज्यादा जानकारी नहीं है। मेरा डिवाइस एक अंतर्निहित USB मॉड्यूल के साथ MSP430 के आसपास डिज़ाइन किया गया है। इस डिवाइस में केवल USB कनेक्शन पर एक CDC इंटरफ़ेस है, इसलिए यह सब एक वर्चुअल COM पोर्ट
खोलता है

जैसा कि डिज़ाइन अब बैठता है, यह वास्तव में एक विकास बोर्ड पर है और जब मैं .inf फ़ाइल का उपयोग करके डिवाइस को स्थापित करने का प्रयास करता हूं, तो मुझे विंडोज 7 से मानक त्रुटि मिलती है : davidegrayson.com/signing/img/win7_unverified-publisher.png । इस बीच मैं अभी-अभी .inf और .cat फाइलों का उपयोग करता रहा हूं, जो कि MSP430Ware पैकेज से CDC उदाहरणों में से एक के साथ प्रदान किया जाता है, लेकिन जब मैं इस उत्पाद को जारी करता हूं तो मैं ऐसा नहीं कर पाऊंगा। अगर मैं गलत नहीं हूं, तो यह
कर्नेल

1
संक्षेप में: आप हस्ताक्षर कर सकते हैं कि एक सामान्य कोड पर हस्ताक्षर करने वाले प्रमाण पत्र की कीमत लगभग £ 80 / yr है जो मैंने देखा था। सभी Microsoft क्रॉस-साइनिंग सामान की आवश्यकता नहीं है। लेकिन विंडोज 8.1 पर और इससे पहले यह सुपर विश्वसनीय नहीं है (हम इसके साथ EN61326 के माध्यम से प्राप्त नहीं कर सके) ताकि आप एक वैकल्पिक पंक्तिबद्ध भी करना चाहें। अगर कोई मुझे नहीं मारता है, तो मैं रात के खाने के बाद जवाब लिखूंगा।
जैक बी

1
@AdamLawrence मैं कुछ घंटों बाद वापस आया और यह नहीं देखा कि मुझे आपके उत्तर में कुछ भी जोड़ने की आवश्यकता है। मेरे द्वारा तो ठीक है।
जैक बी

जवाबों:


16

यह वास्तव में इतना बुरा नहीं है। मैंने इसे कुछ बार काम करने, लिखने और एक .INF / .CAT पर माइक्रोचिप PIC24FJ64GB002- आधारित USB CDC-ACM-to-I 2 C इंटरफ़ेस के लिए किया है।

  • प्रमाणपत्र प्राधिकारी के साथ संबंध स्थापित करें। आपको उन्हें कुछ बुनियादी जानकारी प्रदान करनी होगी जो वे मान्य करेंगे। यदि आप विस्तारित मान्यता (ईवी) के लिए जाते हैं, तो वे बहुत अधिक मांगेंगे, लेकिन आपको उस तक जाने की आवश्यकता नहीं है। थावे, डिजिकर्ट और कोमोडो सीए के कुछ उदाहरण हैं।

  • CA से एक प्रामाणिक कोड-हस्ताक्षर प्रमाणपत्र खरीदें। यह आपको अपने .INF फ़ाइल से संबंधित .CAT फ़ाइल को साइन करने की आवश्यकता है। हस्ताक्षर के इस स्तर के लिए आपको कर्नेल-मोड प्रमाणपत्र की आवश्यकता नहीं है।

  • प्रमाणपत्र स्थापित करें (बिना कहे चला जाता है)

  • Microsoft टूल की आवश्यकता (कैटलॉग जेनरेशन और साइनिंग) प्राप्त करने के लिए विंडोज एसडीके फ्रेमवर्क और विंडोज ड्राइवर किट डाउनलोड करें ।

  • पैकेज और ड्राइवरों पर हस्ताक्षर करें:

    • .INF फ़ाइल के लिए कैटलॉग (.CAT) फ़ाइल जनरेट करने के लिए inf2cat का उपयोग करें
    • कैटलॉग फ़ाइल पर हस्ताक्षर करने के लिए साइनटूल का उपयोग करें

इस बिंदु से आप किसी प्रकार के ड्राइवर इंस्टॉलर को बना सकते हैं, या बुनियादी इंस्टॉलेशन स्वचालन करने के लिए एसडीके से डीपीआईएनएस का उपयोग कर सकते हैं ।

संपादित करें: नीचे विभिन्न टिप्पणियों के नोट:

  1. USBSER.SYS लोड करने के लिए एक .INF फ़ाइल बनाना एक कर्नेल-मोड ड्राइवर नहीं बना रहा है - आप USBSER.SYS का उपयोग कर रहे हैं (बिल्ट-इन, हस्ताक्षरित और पहले से ही विश्वसनीय), कुछ नया नहीं बना रहे हैं - और जैसे कि एक EV हस्ताक्षर की आवश्यकता नहीं है प्रमाणपत्र और WHQL प्रमाणीकरण। एक मूल प्रमाण पत्र प्रमाण पत्र की आवश्यकता है।
  2. विंडोज 10 के साथ शुरू करना, आपको USBSER.SYS उपकरणों के लिए सभी पर साइन इन .INF की आवश्यकता नहीं है, क्योंकि Windows USB CDC-ACM डिवाइस (Class_02) ऑटो-जादुई रूप से उठाएगा। उन्होंने ड्राइवर को स्क्रैच से फिर से लिखा है और यह अब बहुत बेहतर काम करता है (यह अप्रत्याशित COM रिमूवल को भी हैंडल करता है और वर्चुअल COM पोर्ट को लॉक किए बिना फिर से इंसर्ट करता है, जो बहुत बड़ा प्लस है!)। उस ने कहा, आप अभी भी हस्ताक्षरित चालक दृष्टिकोण का उपयोग कर सकते हैं यदि आप वास्तव में चाहते हैं - हस्ताक्षरित चालक अभी भी 'काम' करेगा। अभी भी बहुत सारे 8.1 / 8/7 विन और पुरानी मशीनें हैं, इसलिए एक हस्ताक्षरित ड्राइवर होना अभी भी यूएसबी सीडीसी-एसीपी उपकरणों के लिए कुछ महत्वपूर्ण है।

आपके सवालों पर और विस्तार:

  • आप CA पर हस्ताक्षर करने के लिए कुछ भी जमा नहीं करते हैं - आप कोड हस्ताक्षर प्रमाण पत्र खरीदते हैं, इसे एक मशीन पर स्थापित करते हैं और .INF सत्यापन करते हैं और अपने आप पर हस्ताक्षर करते हैं।
  • आपको प्रति सेकेन्ड वार्षिक शुल्क का भुगतान करने की आवश्यकता नहीं है - हालाँकि, आपके द्वारा खरीदे गए प्रमाण पत्र की 1- या 2- साल की वैधता अवधि होगी। जब प्रमाणपत्र की समय सीमा समाप्त हो जाती है, तो आपको हस्ताक्षर करने में सक्षम होने के लिए एक नया खरीदना होगा - पहले हस्ताक्षरित कुछ भी मान्य रहेगा लेकिन आप नए सामान पर हस्ताक्षर करने की क्षमता खो देते हैं।
  • .CAT .INF के लिए एक हैश है - .INF में किसी भी परिवर्तन का पता लगाया जाएगा और प्रमाण पत्र अब मान्य नहीं होगा, जिसका अर्थ है .INF एक अहस्ताक्षरित की तरह व्यवहार करेगा।


4
यह एक उत्कृष्ट उत्तर है, वास्तव में बहुत उपयोगी है। आप निश्चित रूप से मुझे लगता है की तुलना में यह बहुत आसान लग रहा है। मैं इस पर गौर करूंगा। इस बीच मैं स्पष्ट, सीधे कदम प्रदान करने के कारण इस उत्तर को स्वीकार करने जा रहा हूं। चीयर्स!
DerStrom8

2
@ poizan42 यह कर्नेल-मोड ड्राइवर नहीं है। यह एक साधारण USB CDC डिवाइस है जो केवल एक वर्चुअल COM पोर्ट खोलता है। कोई कर्नेल-मोड कोड निष्पादन नहीं किया जाता है।
DerStrom8

1
बस फॉलो करना चाहता था। इन चरणों ने सिर्फ एक कैविएट के साथ पूरी तरह से काम किया: inf2cat.exe विंडोज एसडीके के साथ नहीं आता है, आपको विंडोज ड्राइवर किट (डब्ल्यूडीके) को भी स्थापित करना होगा: डॉक्स.कमीसिटी.com / en-us / windows-hardware / drivers … । आपकी मदद के लिए बहुत बहुत धन्यवाद, मैं अब बिना किसी चेतावनी के अपने ड्राइवर सॉफ्टवेयर को स्थापित करने में सक्षम हूं - यह मेरी कंपनी को उम्मीद के मुताबिक प्रकाशक के रूप में
दिखाता

2
उत्तर संशोधित किया गया। स्पष्ट इंगित करने के लिए धन्यवाद (कुछ साल हो गए हैं जब से मैंने टूलचाइन्स स्थापित किए हैं)
एडम लॉरेंस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.