मैं लिनक्स डिवाइस ड्राइवर को विकसित करने के प्रयास कर रहा हूँ और मेरा पहला प्रयास के रूप में मैं निम्न फ़ाइल विकल्प है कि एक चार डिवाइस ड्राइवर विकसित करने की कोशिश कर रहा हूँ,किसी डिवाइस ड्राइवर के लिए कर्नेल मॉड्यूल को लोड करने पर स्वचालित रूप से/dev में डिवाइस कैसे बनाया जाए?
struct file_operations fops{
.open=open_fun,
.release=release_fun,
.write=write_fun,
.read=read_fun,
};
जब मैं insmod
का उपयोग कर चालक लोड करते हैं, मुझे लगता है कि देख /proc/devices
ड्राइवर को चार उपकरणों के नीचे सूचीबद्ध करता है लेकिन मुझे इसे /dev
में नहीं मिल रहा है। एक गूगल खोज mknod
का सुझाव दिया /dev
में एक deivce बना सकते हैं और ड्राइवर की बड़ी और छोटी से संबद्ध करना। हालांकि, ऐसा करने का प्रयास सुपर उपयोगकर्ता के रूप में किए जाने पर भी "अनुमति अस्वीकार" त्रुटि हुई।
क्या मैं डिवाइस /dev
में प्रदर्शित करने के लिए जब कर्नेल मॉड्यूल लोड किया जाता है क्या करना चाहिए? मैंने डिवाइस को पंजीकृत करने के पुराने (register_chrdev
) और नए संस्करण (cdev_init & cdev_add
) दोनों की कोशिश की लेकिन उनमें से कोई भी काम नहीं करता है।
धन्यवाद,
मीर
देखें यह भी: http://stackoverflow.com/questions/5970595/create-a-device-node-in-code/ – Eugene
संभावित डुप्लिकेट [लिनक्स कर्नेल मॉड्यूल के init \ _ मॉड्यूल कोड से डिवाइस नोड कैसे बनाएं?] (https://stackoverflow.com/questions/5970595/how-to-create-a-device-node-from-the-init-module-code-of-a-linux- कर्नेल- मॉड्यूल) –