2009-06-10 12 views
8

मैं लिनक्स ओएस में सी में ड्राइवरों को कोड करना चाहता हूं, हालांकि मुझे लगता है कि यह बहुत कठिन है। क्या मुझे कुछ संकेत मिल सकते हैं कि कैसे शुरू करें या किताबें कैसे चलें? ड्राइवर्स मेरे यूएसबी पोर्ट से ग्राफिक्स कार्ड तक हो सकते हैं !!ड्राइवरों को कैसे कोड करें?

मुझे पता है कि मैं किताबों के लिए कहां खोज सकता हूं, मैं जानना चाहता हूं कि बुनियादी ज्ञान के साथ मुझे क्या शुरू करना चाहिए। क्या मुझे हार्डवेयर ज्ञान होना चाहिए और मेरे जैसे नौसिखिए के लिए कौन सी विशिष्ट किताबें अच्छी हैं?

+9

"!!" के साथ हर वाक्य को समाप्त नहीं करने के साथ शुरू होता है। ;-) –

उत्तर

4

कोशिश अमेज़न !! ड्राइवरों के लिए वहां कई किताबें हैं। कुछ नमूने 2 है !!

+5

डाउनवोट क्यों? मुझे पसंद है कि शैली कैसे प्रश्न से मेल खाती है। – aib

+1

क्योंकि यह * सहायक * नहीं माना जाता है, मुझे लगता है। – Roddy

7

"Linux Device Drivers" (ओ'रीली पुस्तक) रूबिनी और कॉर्बेट द्वारा लिनक्स डिवाइस ड्राइवर्स के लिए एक निश्चित पुस्तक है।

कूल! रॉड्डी के उत्तर & क्रिस्टीना की टिप्पणी में मुफ्त पीडीएफ संस्करण देखें!

+1

तीसरा संस्करण http://lwn.net/Kernel/LDD3/ पर भी मुफ्त ऑनलाइन उपलब्ध है। – kristina

19

O'Reilly द्वारा प्रकाशित रुबिनी और कॉर्बेट द्वारा Linux Device Drivers के साथ शुरू करें।

यह free PDF download के रूप में भी उपलब्ध है।

+2

बार कोई नहीं, केवल संदर्भ आवश्यक है। – Jamie

3

इससे पहले कि आप ड्राइवरों को डिजाइन करने में कूदें, आपको पहले असाधारण सी कौशल और शायद कुछ लिनक्स कर्नेल जानना चाहिए। डिस्जिगिंग ड्राइवर छोटे नहीं हैं और यदि आप निम्न स्तर पर प्रोग्रामिंग के लिए उपयोग नहीं करते हैं तो आपको डरा सकते हैं।

मैं The C programming Language की सिफारिश कर सकता हूं यदि आप सी के आदी नहीं हैं, मेरी राय में, सी पर प्राइमर यदि आपके पास कुछ प्रोग्रामिंग पृष्ठभूमि है।

+4

सॉलिड सी कौशल निश्चित रूप से एक अच्छा विचार है, लेकिन कर्नेल और ड्राइवर विकास के बारे में कुछ भी डरावना नहीं है। जब आप कोई गलती करते हैं तो हिस्सेदारी अधिक होती है। :-) –

5

कई ग्रंथों:

  • Essential Linux Device Drivers (मैं वास्तव में इस एक का आनंद लिया यह लिनक्स पर एक मजबूत परिचयात्मक अनुभाग और कैसे डिवाइस ड्राइवर को आम तौर पर कार्य करती है।।)
  • Linux Device Drivers ("मानक" एक free pdf link के रूप में के साथ) दूसरों के द्वारा उल्लेख किया
  • Understanding the Linux Kernel (अब तुम यहाँ खर्च करते हैं, बेहतर तुम सच को समझने के लिए कर्नेल की जरूरत है। इस में मदद मिलेगी।)
0

बस मौजूदा ड्राइवरों के स्रोत कोड देखें। मैंने कोड के ऊपर रखी गई टिप्पणियों को पढ़कर अपना यूएसबी आरएनडीआई ड्राइवर लिखा था।

कर्नेल स्रोत प्राप्त करें और/ड्राइवर निर्देशिका देखें। यूएसबी ड्राइवर यूएसबी निर्देशिका में हैं, हालांकि नेटवर्किंग के बारे में यूएसबी ड्राइवर/नेट/यूएसबी में रहते हैं।

आप टिप्पणियां पढ़कर बहुत कुछ सीख सकते हैं।

2

ड्राइवर डिवाइस के आधार पर जटिलता में व्यापक अंतर है। यूएसबी ड्राइवर स्पेक्ट्रम के साधारण तरफ हैं; जीपीयू ड्राइवर बड़े पैमाने पर जटिल होते हैं और यहां तक ​​कि उन ड्राइवरों के लेखकों को आमतौर पर वे सबकुछ नहीं जानते हैं जो वे करते हैं। मेरी सिफारिश हार्डवेयर के उन ड्राइवरों पर ध्यान केंद्रित करेगी जिनकी आप व्यक्तिगत रूप से देखभाल करते हैं, जैक-ऑल-हार्डवेयर होने की कोशिश करने के बजाय; यह लंबे समय तक आसान हो जाएगा।

दस्तावेज स्रोतों और पढ़ने के लिए विभिन्न चीजों के बारे में सभी के जवाब स्पॉट-ऑन हैं और आपको वास्तव में उनमें से एक को स्वीकार करना चाहिए।

कई जटिल ड्राइवर समुदायों में अपनी स्वयं की डोमेन-विशिष्ट जानकारी भी है। यदि आप एक जीपीयू ड्राइवर लिखना चाहते हैं, तो डीआरआई/डीआरएम और मेसा समुदायों के पास अपनी खुद की विकी और मेलिंग सूचियां हैं जो आपको बहुत मददगार, साथ ही साथ अपने स्वयं के दस्तावेज में भी मदद करेंगी। http://dri.freedesktop.org/ एक सभ्य प्रारंभिक स्थान है, जैसा कि http://wiki.x.org/ है।

आशा है कि इससे मदद मिलती है!

संबंधित मुद्दे