2010-06-12 12 views
6

मैं अपने मुख्य मंच के रूप में लिनक्स का उपयोग करके एम्बेडेड सिस्टम में प्रोग्रामिंग सीख रहा हूं। और मैं एक डिवाइस इवेंट मैनेजमेंट सर्विस बनाना चाहता हूं। यह सेवा एक उपयोगकर्ता-स्थान एप्लिकेशन/डिमन है जो यह पता लगाएगी कि एक कनेक्टेड हार्डवेयर मॉड्यूल ने किसी ईवेंट को ट्रिगर किया है या नहीं। लेकिन मेरी समस्या यह है कि मुझे नहीं पता कि मुझे कहां से शुरू करना चाहिए।नेटलिंक उपयोगकर्ता-स्थान और कर्नेल-स्पेस संचार

मैंने उपयोगकर्तास्पेस-कर्नेलस्पेस संचार के लिए नेटलिंक कार्यान्वयन के बारे में पढ़ा और यह एक अच्छा विचार प्रतीत होता है लेकिन यह सुनिश्चित नहीं है कि यह सबसे अच्छा समाधान है या नहीं। लेकिन मैंने पढ़ा है कि यूडीईवी डिवाइस मैनेजर कर्नेल स्पेस से "uevent" का इंतजार करने के लिए नेटलिंक का उपयोग करता है लेकिन यह मेरे लिए यह स्पष्ट नहीं है कि यह कैसे करें।

मैंने मतदान sysfs के बारे में पढ़ा लेकिन ऐसा लगता है कि फाइल सिस्टम को मतदान करना एक अच्छा विचार नहीं है।

मुझे क्या लगता है कि मुझे अपनी सेवा में उपयोग करने के लिए क्या करना चाहिए? क्या मुझे नेटलिंक का उपयोग करना चाहिए (हार्ड/कोई सुराग कैसे करें) या सिर्फ sysfs को मतदान करना (सुनिश्चित नहीं है कि यह काम करता है)?

धन्यवाद

+0

मतदान के बजाए sysfs में प्रश्न में एक निर्देशिका में जब आप अधिसूचित होने के लिए अधिसूचित हो सकते हैं। – MikeK

उत्तर

1

हां, मतदान की सलाह दी जाती है। ये संसाधन: नेटलिंक पर एलजे आलेख, "नेटलिंक सॉकेट के साथ समझना और प्रोग्रामिंग" को नेटलिंक करना इतना मुश्किल नहीं लगता है। यहां पाइथन में नेटलिंक सॉकेट का एक उदाहरण दिया गया है।

udevtrigger udev परिवर्तनों पर प्रतिक्रिया करने के लिए एक महान उपयोगिता है।

http://www.linuxjournal.com/article/7356

http://smacked.org/docs/netlink.pdf

http://guichaz.free.fr/misc/iotop.py

http://manpages.ubuntu.com/manpages/gutsy/man8/udevtrigger.8.html

1

तो तुम सब एक घटना आप sysfs उपयोग कर सकते हैं, जो नेटलिंक की तुलना में बहुत आसान हो जाएगा के लिए प्रतीक्षा है। एक उदाहरण जीपीआईओ सिस्टम की एज फ़ाइल है।

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