रास्पबेरी को डेटा लकड़हारा के रूप में स्थापित करना


13

जैसा कि शीर्षक में कहा गया है कि मैं एक साधारण एम्बेडेड एप्लिकेशन पर काम कर रहा हूं, जो सीरियल पोर्ट से कुछ जानकारी को पढ़ता है और डिस्प्ले पर थोड़ा सा स्टेटस दिखाने के अलावा फाइल में लॉग इन करता है।

अब मैं स्टेज पर हूं, लॉगिंग चल रही है और मैं सिस्टम को कॉन्फ़िगर करने की कोशिश कर रहा हूं और मुझे कुछ सवाल मिले हैं।

  1. इस प्रणाली का उद्देश्य डेटा को FAT32 USB स्टिक में लॉग करना है, जिसे किसी भी समय अनप्लग, रिप्लेस या रिप्लेस किया जा सकता है। किसी भी सम्मिलित USB मास स्टोरेज को एक निश्चित डायरेक्टरी में ऑटो-माउंटिंग का पसंदीदा तरीका क्या है? Usbmount पैकेज लगभग ऐसा करने के लिए लगता है, लेकिन रखरखाव की कमी थोड़ा सावधान करती है।

  2. मैं बिजली की आपूर्ति की गारंटी नहीं दे सकता और स्वच्छ शट डाउन प्रदर्शन कर सकता हूं। शुक्र है कि आंतरिक OS जानकारी से हटकर, केवल लिखी जाने वाली फाइलें ही लॉग होनी चाहिए। क्या OS के लिए एक जर्नलिंग फाइल सिस्टम मुझे खुद से बचाएगा या क्या मुझे सिस्टम को रीड-ओनली या रैम रैम के साथ छेड़छाड़ करना चाहिए?

  3. क्या USB स्टिक पर FAT फाइल सिस्टम बच जाएगा और पावर आउटेज और अचानक इजेक्शन से उबर जाएगा? क्या मुझे आरोहित होने पर हर बार एक नई लॉग फ़ाइल बनानी चाहिए?

  4. मैंने X सर्वर को स्वचालित रूप से शुरू करने के लिए सेट किया है और स्थिति प्रदर्शन शुरू करने के लिए और विंडो प्रबंधक / स्क्रीन सेवर को अक्षम करने के लिए LXDE ऑटोस्टार्ट स्क्रिप्ट के साथ भरा हुआ है। क्या निरंतर प्रदर्शन को बनाए रखने के लिए कोई अन्य गोटे हैं?

  5. लकड़हारे के पास ईथरनेट पहुंच नहीं होगी और उसे एक सटीक घड़ी की आवश्यकता होगी। RasClock मॉड्यूल एक उपयुक्त विकल्प है?

लंबी पोस्ट और कई अर्ध-संबंधित प्रश्नों के बारे में क्षमा करें।

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


क्या आप अपने काम कर रहे USB-> धारावाहिक समाधान का वर्णन कर रहे हैं ताकि अन्य-ड्राफ्टसेगर इसे आज़मा सकें? मैं अपने स्क्रैपर / लकड़हारे / वेबकैम पाई से कुछ अतिरिक्त मूल्य प्राप्त करने के लिए उत्सुक हूं। धन्यवाद!
ताई विनीका

जवाबों:


7

इस प्रणाली का उद्देश्य डेटा को FAT32 USB स्टिक में लॉग करना है, जिसे किसी भी समय अनप्लग, रिप्लेस या रिप्लेस किया जा सकता है।

उस का अनप्लग्ड हिस्सा समस्याग्रस्त है। AFAIK, कोई भी कंप्यूटर सिस्टम कहीं भी आपको संभावित समस्याओं के बिना किसी भी बिंदु पर अघोषित रूप से एक यूएसबी स्टिक बाहर करने का अधिकार नहीं देता है। तो आपको यह सोचना होगा कि उसके आसपास कैसे पहुंचा जाए।

मैं बिजली की आपूर्ति की गारंटी नहीं दे सकता और स्वच्छ शट डाउन प्रदर्शन कर सकता हूं।

फिर, किसी भी कंप्यूटर सिस्टम पर अचानक (केवल के बारे में) बिजली काटना जोखिम भरा है। यह आमतौर पर ठीक होता है (जिसने बिजली की विफलता आदि के कारण दुर्घटना के समय इसे बंद नहीं किया है;), लेकिन पीआई के साथ एसडी कार्ड भ्रष्टाचार की रिपोर्ट करने वाले लोगों की असामान्य मात्रा प्रतीत होती है। तो अगर आपका मतलब है, "ज्यादातर सिस्टम को बंद नहीं किया जाएगा" तो आपको फिर से सोचना होगा, क्योंकि यह एक मृत अंत की रणनीति होगी। ध्यान दें कि कीबोर्ड या नेटवर्क कनेक्शन के बिना शटडाउन को ट्रिगर करना संभव है । आप USB स्टिक को भी साफ करने के लिए एक अनुकरणीय विधि का उपयोग कर सकते हैं।

आप कैशिंग प्रतिबंधित करने के लिए syncविकल्प जोड़ सकते हैं /etc/fstab, लेकिन man mountनोट्स:

सीमित संख्या में लिखने के चक्र (जैसे कुछ फ्लैश ड्राइव) "सिंक" वाले मीडिया के मामले में जीवन-चक्र छोटा हो सकता है।

इसमें एसडी कार्ड शामिल हैं, हालांकि जब तक आप रुक-रुक कर परीक्षण करना (और उपयुक्त होने पर प्रतिस्थापित करना) याद रखते हैं, तब तक आपका मीडिया इसके लायक हो सकता है। यह सामान्य प्रदर्शन को थोड़ा प्रभावित करेगा, मुझे लगता है।

तो, प्लग या यूएसबी स्टिक को यैंकिंग से बचने की कोशिश करें जो आप सबसे अच्छा कर सकते हैं, और निश्चित रूप से एक सेटअप डिज़ाइन नहीं करते हैं जो इस पर निर्भर करता है। उदाहरण के लिए, अपने आप को या अन्य उपयोगकर्ताओं को यह न बताएं, "जब भी आप चाहें यूएसबी स्टिक को अनप्लग करना ठीक है", क्योंकि यह नहीं है और आप ऐसा नहीं कर सकते।

syncअपने आवेदन में उचित कॉल करना (जैसे, जब निष्क्रिय, या एक महत्वपूर्ण लिखने के बाद) एक अच्छा विचार है।

एक बार जब आप है सब कुछ आप स्थापित और कॉन्फ़िगर चाहते हैं , तो आप संभवतः माउंट कर सकते हैं जड़ फाइल सिस्टम केवल पढ़ने के लिए, आप अलग विभाजन बनाते हैं के लिए /var, /runऔर /tmpऔर उन rw माउंट; आप इस तरह के एक आरोहित विभाजन को भी बना सकते हैं और इसमें आरडब्ल्यू डाइरेक्टरीज़ को सिमिलिंक कर सकते हैं।

रास्पियन पाई पर, आपको चिंता करने की ज़रूरत नहीं है /run, क्योंकि यह पहले से ही tmpfs (RAM) है; /sysऔर /procRAM में भी हैं (लेकिन उनका उपयोग किसी भी चीज़ के लिए नहीं करें, सिवाय उनके जो भी इरादा हो)। यदि सिस्टम एक ही उद्देश्य के लिए है और आपका सारा डेटा USB स्टिक पर जाता है, /varतो केवल एक ही समस्या है, लेकिन मुझे नहीं लगता है कि गंभीर रूप से ऐसा है।


हमारी प्राथमिक समस्या यह है कि आपातकालीन स्टॉप के दौरान किसी भी समय बिजली कट सकती है, मुझे संदेह है कि परीक्षण के दौरान लगातार घटना होगी (इसलिए शुरू करने के लिए लकड़हारे की आवश्यकता है)। मैं जांच करूंगा कि हम पाई के लिए बैक-अप बैटरी से निपट सकते हैं, और शायद बिजली की हानि का पता लगाने के लिए किसी प्रकार के सेंसर को तार कर सकते हैं। हालाँकि मेरा जीवन बहुत आसान होगा यदि रूट फाइल सिस्टम को केवल-पढ़ने के लिए मोड में लगाया जा सकता है और USB मेमोरी आवधिक फ्लश और इस तरह के माध्यम से संरक्षित होती है।
doynax

@ डॉयनाक्स: रूट फाइलसिस्टम आरओ के साथ चलना संभव है। मेरे पास इसका कोई अनुभव नहीं है, लेकिन मैंने इस बारे में अंत में कुछ पैराग्राफ जोड़े हैं कि मुझे लगता है कि बुनियादी चिंताएं क्या हैं।
गोल्डीलॉक्स

2

पूर्व जीवन में मैंने डिवाइस ड्राइवरों पर काम किया था जो मेमोरी कार्ड पढ़ते / लिखते थे। उन्हें किसी भी ऑपरेशन के बीच में रखा जा सकता है, इसलिए यहां तक ​​कि बैटरी या कैपेसिटर का बैक अप पावर भी मदद नहीं करेगा। चिप्स के फॉर्मेटिंग स्पेक्स के आधार पर, मैंने "हॉट" रिमूव और इंसर्शन द्वारा किए गए कम से कम नुकसान के लिए आवश्यक व्यवहार का अनुमान लगाया।

मूल रूप से, आपको जो करने की ज़रूरत है वह यह सुनिश्चित करता है कि यदि आप डेटा ब्लॉक के मध्य-लेखन से कट गए हैं (या संपर्क स्क्विरली हैं) तो आप इस तथ्य को पहचान सकते हैं। मूल रूप से डेटा को एक ब्लॉक नंबर (और निश्चित आकार नहीं तो लंबाई) के साथ प्रीपेन्ड करें, और अंत में एक crc और (समान) ब्लॉक नंबर को जोड़ें।

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

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

यह हालांकि निम्न स्तर का सामान है। एक फ़ाइल सिस्टम के माध्यम से ऐसा करना एक और कहानी है।

आपको वास्तव में आपके FAT की निरर्थक प्रतियों की आवश्यकता है, और FAT तालिका के चारों ओर एक समान कार्य करें। अनुक्रमिक संख्या आपको बताएगी कि कौन सबसे हाल ही में है, और फ्रंट / बैक मैच और सीआरसी अखंडता सुनिश्चित करेगा।

यह मेरे सोते समय का अतीत है इसलिए मुझे आशा है कि यह पर्याप्त स्पष्ट है।


1

सटीक घड़ी के लिए, बहुत सारे सस्ते जीपीएस मॉड्यूल उपलब्ध हैं। उससे ज्यादा सटीक घड़ी ढूंढना मुश्किल है।


यह एक उत्कृष्ट सुझाव है। हमें घड़ी सेट करने और बैटरी से निपटने की परेशानी से बचाएं। हमें बस समय-क्षेत्र (और डीएसटी नियम जो मुझे लगता है) पर नज़र रखने की ज़रूरत है, और एक शुद्ध डेटा लकड़हारा के लिए सार्वभौमिक समय ठीक होना चाहिए।
doynax

क्या एक जीपीएस मॉड्यूल इनडोर काम करता है जब आकाश का कोई हिस्सा दिखाई नहीं देता है और फिर भी एक साधारण आरटीसी पर लाभ प्रदान करता है?
स्टीफन गौरिचोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.