ड्राइवरों को लिखना कैसे शुरू करें?


21

मेरे पास एक फेंक-दूर का सस्ता लैपटॉप है, जिसे मैं थिंकपैड SL 500 के आसपास घुमाऊंगा।

मुझे क्या परेशान करता है दो एलईड, वायरलेस कनेक्टिविटी के लिए एक, और हाइबरनेशन के लिए एक है, जो बिल्कुल प्रकाश नहीं करते हैं, हालांकि वे कार्यात्मक हैं, मैंने इसे विंडोज़ पर आज़माया है।

इसलिए मैं उनके लिए एक कर्नेल ड्राइवर लिखना चाहूंगा, कुछ भी बड़ा नहीं है, यह सिर्फ कर्नेल के साथ खेलने के लिए एक अच्छा विचार है।

मेरा सवाल यह है कि मुझे क्या तरीके अपनाए जाने चाहिए कि कौन से उपकरण उन लीड्स के लिए ज़िम्मेदार हैं (सामान्य तौर पर, मेरे हार्डवेयर के लिए विशिष्ट नहीं), और क्या ड्राइवर उन दो लीडों के लिए ज़िम्मेदार हैं जो काम करते हैं, ब्लूटूथ और बैटरी इंडिकेटर?

और जब मैं कार्यप्रणाली कहता हूं, तो मैं वास्तव में प्रत्येक कदम के कारणों के साथ, कदम से कदम, पद्धति का मतलब है, जैसे मैंने यहां किसी और को दिया है उत्तर में: शून्य में क्या && का अर्थ है * p = && abc;

मैं स्थिर कोड एनालाइज़र और सह का उपयोग करके बड़े कोड रिपॉजिटरी के माध्यम से fgrepping में कुशल हूं, लेकिन मुझे लगता है कि हार्डवेयर ज्ञान की मेरी कमी मुझे इस समस्या में बाधा डालती है।

पुनश्च: मैं आर्कलिनक्स का उपयोग कर रहा हूं, इसलिए लगभग नवीनतम कर्नेल संस्करण।


क्या आपने CONFIG_IDEAPAD_LAPTOP को कर्नेल में सक्षम करने का प्रयास किया है?
पावेल रोमियन सेप

@ गोर्की: नहीं, मैं क्यों करूंगा? प्रश्न समस्या को हल करने के बारे में नहीं है, यह समस्या को स्वयं हल करने के लिए इस्तेमाल की जाने वाली रणनीति के बारे में है (एक प्रोग्रामर के रूप में)।
फ्लावियस

3
ठीक है, मैंने तुम्हें गलत समझा है। वैसे भी, जैसा कि IDEAPAD_LAPTOP कर्नेल मॉड्यूल थिंकपैड्स की SL श्रृंखला में ऐसी चीजों के लिए जिम्मेदार है, आप इसके स्रोत कोड को देखकर शुरू कर सकते हैं। इसके अलावा, आप कुछ पढ़ने में दिलचस्पी ले सकते हैं, उदाहरण के लिए कर्नेलवर्ब्यूज़: k गिर्नेव्यूज़.ओआर / कर्नेलहैकिंग या LKH द्वारा लिखित एक महान पुस्तक: kroah.com/lkn मेरे दिमाग में आने वाले दो अन्य अच्छे स्रोत हैं: lwn.net/Kernel/ LDD3 और amazon.com/dp/0596005652/?tag=stackoverfl08-20
Paweł Rumian

जवाबों:


5

उन एल ई डी के लिए कौन से उपकरण जिम्मेदार हैं, यह जानने के लिए मुझे किस पद्धति का व्यवस्थित रूप से पालन करना चाहिए?

आदर्श रूप से, आपको कर्नेल ओएस का स्रोत (खुला) ढूंढना चाहिए, जिस पर आपका लैपटॉप एलईडी काम कर रहा है, तब आप कर्नेल के भाग के बारे में तब तक टिप्पणी कर सकते हैं जब तक आपको कोड का पता न चल जाए जो कि एल ई डी के लिए ज़िम्मेदार है (और कुछ सिस्टम फ्रीज कर रहा है, लेकिन यह मजेदार हिस्सा है)।

यदि एल ई डी लिनक्स पर काम नहीं कर रहे हैं और आप नहीं जानते हैं कि कौन सा हार्डवेयर उन्हें अन्य ओएस पर चला रहा है, तो आपको कैसे लगता है कि आप एक ड्राइवर लिखेंगे?

यह सबसे अच्छा जवाब है जो कोई भी दे सकता है, मुझे डर है, और यह आपको (लगभग) पहले से ज्यादा चालाक नहीं बनाता है। बस आपको संकेत देता है कि आपको यह पता लगाना है कि आपके पास कौन सा हार्डवेयर है, कुछ और करने में सक्षम होने के लिए।

अधिक मदद के लिए, दो संकेत:

  1. अक्सर उपयोग किए जाने वाले आईडीई या SATA चिप्स में से एक इंटेल की श्रृंखला ICHX या ICHXr (ICH5, ICH6, ICH7 ... या ICH6R, ICH7R, ...) है।

  2. लिनक्स कर्नेल निर्देशिका जहाँ एल ई डी को नियंत्रित करने के लिए स्रोत कोड स्थित है

मैं आपको 3 पॉइंटर भी दूंगा, लेकिन जैसा कि इस गोर्की ने पहले ही ऊपर लिखा था, मैं बस फिर से दोहरा सकता हूं: लिनक्स डिवाइस ड्राइवर, 3 डी संस्करण , पीडीएफ में, मुफ्त में।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.