linux - ऑपर - लिनक्स फाइल सिस्टम




कैसे एक लिनक्स कर्नेल मॉड्यूल कोड करने के लिए? (2)

मेरे पास दो साल के सी प्रोग्रामिंग अनुभव है। अब मैंने लिनक्स कर्नेल मॉड्यूल विकास के लिए काम करने का फैसला किया। हालांकि, मैं भी शुरू नहीं कर सकता। मैंने इस कोड को उबुन्टू में संकलित किया है

#include <linux/module.h>
int init_module(void){ printk("<1> hellp"); return 0;}
void cleanup_module(void){ printk("<1> bye");}

हालांकि, insmod त्रुटि संदेश काम नहीं कर रहा है "अमान्य मॉड्यूल स्वरूप" है Googling के बाद मुझे लगा कि यह संस्करण संगतता के साथ कुछ समस्या हो सकती है और इसका समाधान करने का कोई अच्छा तरीका नहीं है। तो क्या कुछ वास्तविक कर्नेल मॉड्यूल डेवलपर मुझे कुछ सलाह दे सकते हैं? सीखने शुरू करने से पहले मुझे क्या वातावरण तैयार करना चाहिए?

धन्यवाद!


लिनक्स कर्नेल, मॉड्यूल प्रोग्रामिंग और एम्बेडेड उपकरणों के लिए सरल डिवाइस ड्राइवरों के बारे में एक संपूर्ण और सरल ब्लॉग।

xploredevicedrivers.blogspot.in


आप module_exit() और module_exit() मैक्रोज़ और कुछ महत्वपूर्ण #defines याद कर रहे हैं। हमें आपके मेक / जीसीसी विकल्पों के साथ ही अधिक जानकारी की आवश्यकता है। यह "अमान्य मॉड्यूल प्रारूप" की रिपोर्ट कर रहा है क्योंकि आप 32bit में संकलन कर रहे हैं जब आपका कर्नेल 64bit है, इसलिए सुनिश्चित करें कि आप -64 कंपाइल और लिंक फ्लैग का उपयोग कर रहे हैं।

कर्नेल मॉड्यूल के लिए एक महान हैलो वर्ल्ड ट्यूटोरियल यहां स्थित है: http://archive.is/KNkEE (लेख का मूल लिंक टूट गया है)

कर्नेल मॉड्यूल लिखने में आपका स्वागत है वे विंडोज ड्राइवर लिखने की तुलना में काफी मज़ेदार हैं (मैंने दोनों किया है)। लिनक्स कर्नेल मॉड्यूल इंटरफ़ेस का उपयोग करने के लिए बहुत सरल है और बहुत सारे आधार ड्राइवर हैं जो आप को प्रतिनिधि कर सकते हैं और काम तेजी से पूरा कर सकते हैं।







linux-device-driver