4 पॉइंट द्वारा GN⁺ 2024-09-02 | 1 टिप्पणियां | WhatsApp पर शेयर करें

अत्यधिक Pi बूट ऑप्टिमाइज़ेशन

प्रेरणा

  • SolarCamPi प्रोजेक्ट एक off-grid solar WiFi camera बनाने का प्रोजेक्ट है.
  • यह Raspberry Pi Zero 2 W का उपयोग करके Linux में बूट करता है, फोटो लेता है, WiFi कनेक्शन सेट करता है, फिर पावर बंद करता है, और इस प्रक्रिया को दोहराता है.
  • solar device में पावर एक कीमती संसाधन है, इसलिए पावर खपत को न्यूनतम करने के लिए बूट समय कम करना महत्वपूर्ण है.

हार्डवेयर सेटअप

  • embedded boot process को ऑप्टिमाइज़ करते समय छोटा cycle time महत्वपूर्ण होता है.
  • कई उपयोगी टूल उपलब्ध हैं:
    • Nordic Power Profiler Kit II
    • USB-SD-Mux
    • USB-UART converter

मापन / टेस्ट सेटअप

  • Debian 12 (bookworm) arm64 Lite इमेज में /boot/firmware/cmdline.txt फ़ाइल को संशोधित करके init=/init.sh शामिल किया गया.
  • init.sh स्क्रिप्ट GPIO4 को toggle करती है और सामान्य बूट फिर से शुरू करती है.

करंट में कमी

  • HDMI अक्षम करना: करंट खपत 136.7mA से घटाकर 122.6mA की गई.
  • activity LED अक्षम करना: 2mA की बचत.
  • camera LED अक्षम करना: reflection रोकने और करंट बचाने के लिए.
  • turbo mode समायोजन: turbo mode अक्षम करके 1.58As उपयोग.

समय में कमी

  • बूट प्रक्रिया में HDMI probing अक्षम करना: EDID जानकारी को hardcode करके समय बचाया गया.
  • HAT, PoE और LCD probing अक्षम करना: I2C response wait time कम किया गया.
  • camera और display probing अक्षम करना: IMX477 sensor को manually load किया गया.
  • initramfs अक्षम करना: बूट समय 5.38s से घटाकर 4.47s किया गया.

kernel load

  • kernel load सबसे धीमे कार्यों में से एक है.
  • GPU processor core overclock: kernel load समय में 20% की कमी.
  • custom Buildroot distribution पर सिस्टम माइग्रेट करना: kernel size कम किया गया और अनावश्यक फीचर हटाए गए.

अंतिम परिणाम

  • Linux user-space program को 3.5 सेकंड के भीतर बूट किया जा सकता है.
  • कुल ऊर्जा खपत: 0.364 As * 5.0 V = 1.82 Ws.
  • मूल Debian की तुलना में ऊर्जा खपत 5 गुना कम की गई.

GN⁺ का सार

  • यह लेख Raspberry Pi के बूट समय को ऑप्टिमाइज़ करके पावर खपत कम करने के तरीकों पर केंद्रित है.
  • यह solar-powered device जैसे सीमित पावर वाले वातावरण में बहुत उपयोगी है.
  • समान कार्यक्षमता वाले प्रोजेक्ट्स में OpenWRT, Tiny Core Linux आदि शामिल हैं.
  • बूट समय कम करने के कई तरीके बताकर यह embedded system optimization में रुचि रखने वालों के लिए उपयोगी है.

1 टिप्पणियां

 
GN⁺ 2024-09-02
Hacker News टिप्पणियाँ
  • rpi प्रोडक्ट लाइनअप की power समस्या एक कमजोरी है। उम्मीद है कि नया pico 2 इसे बेहतर करेगा

    • Google Coral mini का इस्तेमाल करके कैमरा बनाया था, लेकिन HQ कैमरा सपोर्ट कमज़ोर था
    • rpi ecosystem अधिक परिपक्व है और भविष्य में इसकी उपलब्धता भी अधिक भरोसेमंद लगती है
    • अगले version का कैमरा rpi से बनाया और बड़ी battery इस्तेमाल की
    • बचे हुए Coral mini और कैमरों को निपटाने का तरीका ढूंढ रहे हैं
  • यह जानने की जिज्ञासा है कि custom kernel देर से क्यों आया

    • अगर optimization चाहिए, तो LFS या source-based distro इस्तेमाल करना बेहतर लग सकता है
    • यह भी जिज्ञासा है कि EFI/BIOS optimization संभव है या नहीं
    • Arch Linux desktop पर boot time काफ़ी ज़्यादा लगता है
  • यह सवाल है कि CPU turbo को disable करना power consumption घटाने के लिए खराब विकल्प तो नहीं

    • clock frequency बढ़ने पर power consumption वर्गानुपाती रूप से बढ़ता है
    • power अंतर को मापना होगा, तभी पता चलेगा कि clock boost का फायदा है या नहीं
    • अच्छा होता अगर Pi का CPU power consumption की अधिक बारीक जानकारी देता
  • यह जानने की जिज्ञासा है कि क्या दूसरे core इस्तेमाल किए जा सकते हैं, और तस्वीर लेकर cloud में भेजने के लिए Linux ज़रूरी है या नहीं

    • कम-से-कम budget में काम पूरा करने के तरीके को लेकर जिज्ञासा है
    • पढ़ने में दिलचस्प था
  • Pi boot time कम करने पर दो अच्छे लेखों की सिफारिश

  • अगर आपको Rasp Pi ecosystem पसंद है, तो Pi Pico W आज़माने लायक है

  • Linux distro का boot time आम तौर पर धीमा होता है

    • कमज़ोर hardware पर यह और भी धीमा होता है
    • MQ-Pro SBC पर भी ऐसी ही समस्या झेली थी
    • laptop पर भी महसूस होता है (Macbooks को छोड़कर)
  • boot state बनाए रखना और low-power microcontroller इस्तेमाल करना बेहतर होगा

    • 105mA उचित power consumption नहीं है
  • लगा था कि Circle kernel से तेज़ boot कर पाएगा, लेकिन यह MIPI कैमरा को support नहीं करता

  • Pi का इस्तेमाल करके intelligent trail camera बनाने की कोशिश की थी

    • startup time महत्वपूर्ण है
    • power usage कम करना बहुत अच्छा है