लिनक्स कर्नेल को नए संस्करण में अद्यतन करना। एंड्रॉइड डिवाइस के कर्नेल को फ्लैश करना मोबाइल डिवाइस का कर्नेल क्या है

"और मैं... कार्बोरेटर धो दूं!"
चुटकुला

परिचय

किंडरगार्टन में, मेरे समान विचारधारा वाले दोस्तों और मैंने उनकी संरचना को समझने की उम्मीद में टिड्डों का विच्छेदन किया। स्कूल में उन्होंने "रूस" रेडियो को बेच दिया। संस्थान में, यह उन कारों का समय था जिनके नट को कई बार पुन: व्यवस्थित किया गया था। रुचियां बदल गई हैं, लेकिन कभी-कभी "अलग करने" की इच्छा जागृत होती है, और आज इसका उद्देश्य एंड्रॉइड है।

एंड्रॉइड स्रोतों से आपको कितनी बार मदद मिली है? अब मेरी गिनती नहीं की जा सकती. एंड्रॉइड एक ओपन सोर्स प्रोजेक्ट है, लेकिन दुर्भाग्य से हमारे पास केवल पढ़ने की क्षमता है; Google कर्मचारी बने बिना Android कोड को संपादित करना लगभग असंभव है। आइए इस क्षण का शोक मनाएं और भंडार डाउनलोड करें। यह कैसे करें इसका पूरी तरह से आधिकारिक वेबसाइट पर वर्णन किया गया है।


सामान्य वास्तुकला

एंड्रॉइड आर्किटेक्चर को योजनाबद्ध रूप से निम्नानुसार चित्रित किया जा सकता है:

डेस्कटॉप कंप्यूटर और लैपटॉप में ऊर्जा मोड की एक स्थापित प्रणाली होती है (x86 प्रोसेसर में उनमें से कई होते हैं): जब कुछ किया जा रहा होता है तो कंप्यूटर "पूरी गति से" चलता है, और सिस्टम निष्क्रिय होने पर ऊर्जा-कुशल मोड में चला जाता है। "स्लीप" मोड में जाना या तो निष्क्रियता की काफी लंबी अवधि के बाद होता है, या मैन्युअल रूप से, उदाहरण के लिए, लैपटॉप का ढक्कन बंद करते समय।

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

वैकलॉक तंत्र को कर्नेल में पोर्ट करने के प्रयासों के कारण कई डेवलपर्स ने विरोध किया। एंड्रॉइड प्रोग्रामर्स ने एक विशिष्ट समस्या का समाधान किया, जिसका समाधान एक निश्चित तंत्र था। कार्य की शर्तें बहुत संकीर्ण थीं। लक्ष्य प्लेटफ़ॉर्म एआरएम है, इसलिए इसकी विशेषताओं का उपयोग किया गया था: एआरएम प्रोसेसर शुरू में x86 के विपरीत, "स्लीप" और "वेक" ऑपरेटिंग मोड में लगातार बदलाव मानते हैं। एंड्रॉइड एप्लिकेशन में पावरमैनेजर के माध्यम से पावर प्रबंधन प्रणाली के साथ संचार होता है, लेकिन लिनक्स क्लाइंट अनुप्रयोगों के बारे में क्या?

एंड्रॉइड डेवलपर्स ने "भविष्य के लिए" एक सामान्य समाधान खोजने की कोशिश भी नहीं की, जिसे बिना किसी समस्या के मुख्य कर्नेल में एकीकृत किया जा सके, और इस समस्या पर लिनक्स कर्नेल समुदाय से परामर्श नहीं किया। क्या आप इसके लिए उन्हें दोषी ठहरा सकते हैं? सभी समस्याओं और चर्चाओं के बावजूद, जैसा कि ऊपर बताया गया है, ऑटोस्लीप के समान कार्यक्षमता वाला एक एपीआई कोर में दिखाई दिया।

एंड्रॉइड एप्लिकेशन के प्रोग्रामर को शायद ही कभी वेकलॉक से निपटना पड़ता है, क्योंकि प्लेटफ़ॉर्म और ड्राइवर "स्लीप" मोड को ध्यान में रखते हुए उन्हें सौंपे गए दायित्वों को संसाधित करते हैं। हालाँकि, परिचित पॉवरमैनेजर आपको इस प्रक्रिया में हस्तक्षेप करने में मदद करेगा। वैसे, लेखक केवल एक परिदृश्य के बारे में सोच सकता है: ब्रॉडकास्ट रिसीवर से सेवा शुरू करते समय फोन को सो जाने से रोकने के लिए, जिसे एंड्रॉइड सपोर्ट लाइब्रेरी वेकफुलब्रॉडकास्ट रिसीवर से सहायक वर्ग द्वारा हल किया जाता है।

कम मेमोरी किलर

मानक लिनक्स कर्नेल में आउट ऑफ मेमोरी किलर होता है, जो खराबता पैरामीटर के आधार पर, मारे जाने वाली प्रक्रिया को निर्धारित करता है:

Badness_for_task = total_vm_for_task / (sqrt(cpu_time_in_seasons) *
sqrt(sqrt(cpu_time_in_मिनट)))

इस प्रकार, एक प्रक्रिया जितनी अधिक मेमोरी की खपत करेगी और जितनी कम समय तक चलेगी, उसका भाग्य उतना ही कम होगा।

आरेख सामान्य एंड्रॉइड लॉगिंग सिस्टम दिखाता है। लॉगिंग ड्राइवर /dev/log/* के माध्यम से प्रत्येक बफ़र तक पहुँच प्रदान करता है। एप्लिकेशन उन तक सीधे नहीं, बल्कि लिबलॉग लाइब्रेरी के माध्यम से पहुंचते हैं। क्लास लॉग, स्लॉग और इवेंटलॉग लिबलॉग लाइब्रेरी के साथ संचार करते हैं। एडीबी लॉगकैट कमांड "मुख्य" बफर की सामग्री दिखाता है।

निष्कर्ष

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

रविवार शाम को, लिनक्स के जनक और ऑपरेटिंग सिस्टम कर्नेल के डेवलपर लिनस टोरवाल्ड्स ने दो महीने के काम के बाद लिनक्स कर्नेल 3.10 का एक नया संस्करण जारी करने की घोषणा की।

स्वयं डेवलपर के अनुसार, यह कर्नेल पिछले कुछ वर्षों में नवाचार के मामले में सबसे बड़ा है।

लिनुस ने स्वीकार किया कि पहले तो उसका इरादा एक और रिलीज़ उम्मीदवार को रिलीज़ करने का था, लेकिन विचार करने के बाद वह तुरंत अंतिम रिलीज़ क्रमांक 3.10 को रिलीज़ करने के लिए इच्छुक था। टोरवाल्ड्स ने अपने संदेश में यह भी कहा कि नया कर्नेल, संस्करण 3.9 की तरह, रोजमर्रा के उपयोग के लिए पूरी तरह से तैयार है।

इसके अलावा, कर्नेल के आरसी संस्करण की घोषणा में, लिनुस टोरवाल्ड्स ने लिखा कि पहले वह हमेशा उन लोगों के नामों की एक सूची शामिल करते थे, जिन्होंने कोड के कुछ हिस्से भेजे थे, लेकिन इस बार यह सूची इतनी बड़ी होगी कि इसे नहीं किया जा सका। पूरी तरह से एक शीट मेलिंग में दिया गया।

कर्नेल 3.10 में किए गए प्रमुख परिवर्तनों की सूची:

  • अब आप स्क्रिप्ट को प्रोग्राम के रूप में निष्पादित होने से रोक सकते हैं - "#!" हेडर में दुभाषिया के पथ वाली स्क्रिप्ट को लॉन्च करने की कार्यक्षमता को अब कर्नेल मॉड्यूल के रूप में संकलित किया जा सकता है;
  • Google द्वारा विकसित और उपयोग किया जाने वाला Bcache सिस्टम एकीकृत है। Bcache आपको तेज़ SSD ड्राइव पर धीमी हार्ड ड्राइव तक पहुंच की कैशिंग व्यवस्थित करने की अनुमति देता है; कैशिंग ब्लॉक डिवाइस स्तर पर की जाती है - और यह आपको डिवाइस पर उपयोग किए गए फ़ाइल सिस्टम की परवाह किए बिना ड्राइव तक पहुंच को तेज करने की अनुमति देता है;
  • LLVMLinux प्रोजेक्ट द्वारा तैयार किए गए पैच की बदौलत कर्नेल को क्लैंग कंपाइलर का उपयोग करके संकलित किया जा सकता है;
  • टाइमर व्यवधानों की पीढ़ी को नियंत्रित करने के लिए एक गतिशील प्रणाली सामने आई है। अब, वर्तमान स्थिति के आधार पर, आप प्रति सेकंड हजारों टिक से लेकर प्रति सेकंड एक इंटरप्ट तक की सीमा में इंटरप्ट को बदल सकते हैं - यह आपको सिस्टम के निष्क्रिय होने पर प्रोसेसिंग में रुकावट आने पर सीपीयू पर लोड को कम करने की अनुमति देता है। वर्तमान में इस फ़ंक्शन का उपयोग रीयल-टाइम सिस्टम और एचपीसी (उच्च प्रदर्शन कंप्यूटिंग) के लिए किया जाता है, लेकिन अगले कर्नेल रिलीज़ में इसका उपयोग डेस्कटॉप सिस्टम के लिए भी किया जाएगा;
  • अब एप्लिकेशन को सूचित करने के लिए एक ईवेंट उत्पन्न करना संभव है कि यह प्रक्रिया/सिस्टम (सीग्रुप में) के लिए उपलब्ध मेमोरी की समाप्ति के करीब पहुंच रहा है;
  • मेमोरी एक्सेस प्रोफाइलिंग अब पर्फ़ कमांड के लिए उपलब्ध है;
  • iSCSI सबसिस्टम में RDMA (iSER) प्रोटोकॉल के लिए समर्थन जोड़ा गया;
  • एक नया ड्राइवर "सिंक" (प्रयोगात्मक) है। इसे एंड्रॉइड प्लेटफ़ॉर्म के भीतर विकसित किया गया था और इसका उपयोग अन्य ड्राइवरों के बीच सिंक्रनाइज़ेशन के लिए किया जाता है;
  • QXL वर्चुअल ग्राफिक्स कार्ड ड्राइवर को एकीकृत किया गया है (स्पाइस प्रोटोकॉल का उपयोग करके त्वरित ग्राफिक्स आउटपुट के लिए वर्चुअलाइजेशन सिस्टम में उपयोग किया जाता है);
  • AMD के 16h (जगुआर) परिवार के प्रोसेसर में पेश की गई नई पावर प्रबंधन सुविधाएँ अब समर्थित हैं;
  • आधुनिक एएमडी जीपीयू में निर्मित हार्डवेयर यूवीडी डिकोडर का उपयोग करके वीडियो डिकोडिंग को तेज करने के लिए समर्थन को Radeon DRM में जोड़ा गया है;
  • Microsoft हाइपर-V वर्चुअल वीडियो एडेप्टर के लिए एक ड्राइवर सामने आया है (सामान्य तौर पर हाइपर-V के संचालन में भी सुधार हुए हैं);
  • क्रिप्टोग्राफ़िक फ़ंक्शंस (sha256, sha512, ब्लोफ़िश, टूफ़िश, सर्पेंट और कैमेलिया) का निष्पादन AVX/AVX2 और SSE निर्देशों का उपयोग करके अनुकूलित किया गया है।

हाल ही में, कर्नेल के नए संस्करण अक्सर जारी किए गए हैं। हर कुछ महीनों में एक स्थिर रिलीज़ सामने आती है। खैर, रिलीज़ के लिए अस्थिर उम्मीदवार और भी अधिक बार सामने आते हैं। लिनुस टोरवाल्ड्स और दुनिया भर के कई डेवलपर्स नए कर्नेल को बेहतर बनाने और उनमें अधिक से अधिक कार्यक्षमता जोड़ने के लिए लगातार काम कर रहे हैं।

प्रत्येक नए संस्करण के साथ, लिनक्स कर्नेल कई नए उपकरणों, जैसे नए प्रोसेसर, वीडियो कार्ड या यहां तक ​​कि टच स्क्रीन के लिए समर्थन जोड़ता है। हाल ही में, नए उपकरणों के लिए समर्थन में काफी सुधार हुआ है। साथ ही, कर्नेल में नए फ़ाइल सिस्टम शामिल किए गए हैं, नेटवर्क स्टैक के संचालन में सुधार किया गया है, और त्रुटियों और बगों को ठीक किया गया है।

यदि आप किसी विशेष कर्नेल संस्करण में परिवर्तनों के बारे में अधिक विस्तृत जानकारी चाहते हैं, तो कर्नेल.org पर इसका चेंजलॉग देखें, और इस लेख में हम लिनक्स कर्नेल को नवीनतम संस्करण में अपडेट करने पर विचार करेंगे। मैं निर्देशों को किसी विशिष्ट कर्नेल संस्करण से न जोड़ने का प्रयास करूंगा; नए कर्नेल अक्सर जारी किए जाते हैं और यह उनमें से प्रत्येक के लिए प्रासंगिक होगा।

आइए उबंटू और सेंटओएस कर्नेल को अपग्रेड करने पर नजर डालें। सबसे पहले, आइए देखें कि Ubuntu 16.04 में कर्नेल को कैसे अपडेट किया जाए।

आइए सबसे पहले देखें कि आपने कौन सा कर्नेल इंस्टॉल किया है। ऐसा करने के लिए, एक टर्मिनल खोलें और चलाएँ:

उदाहरण के लिए, मैं वर्तमान में संस्करण 4.3 का उपयोग कर रहा हूं, और मैं नवीनतम संस्करण में अपडेट कर सकता हूं। उबंटू डेवलपर्स ने पहले ही सुनिश्चित कर लिया है कि उनके उपयोगकर्ता कर्नेल को मैन्युअल रूप से संकलित नहीं करते हैं और कर्नेल के नए संस्करण के लिए डिबेट पैकेज बनाए हैं। इन्हें आधिकारिक Canonical वेबसाइट से डाउनलोड किया जा सकता है।

यदि कर्नेल संस्करण ज्ञात होता तो मैं यहां डाउनलोड करने के लिए wget कमांड प्रदान कर सकता था, लेकिन हमारे मामले में ब्राउज़र का उपयोग करना बेहतर होगा। वेबसाइट http://kernel.ubuntu.com/~kernel-ppa/mainline/ खोलें। यहां उबंटू टीम द्वारा संकलित सभी कर्नेल हैं। कर्नेल को विशिष्ट वितरणों, वितरण के कोड नाम के साथ और सामान्य दोनों के लिए संकलित किया जाता है। इसके अलावा, उबंटू 16.10 से कर्नेल संभवतः 16.04 में काम करेगा, लेकिन आपको उबंटू 16.04 में 9.04 से कर्नेल स्थापित नहीं करना चाहिए।

नीचे स्क्रॉल करें, यह वह जगह है जहां कर्नेल के नए संस्करण स्थित हैं:

इसके अलावा, सबसे ऊपर एक दैनिक/वर्तमान फ़ोल्डर है, जिसमें नवीनतम, रात्रिकालीन कर्नेल बिल्ड शामिल हैं। वांछित कर्नेल संस्करण का चयन करें और अपने आर्किटेक्चर के लिए दो फ़ाइलें लिनक्स-हेडर और लिनक्स-इमेज डाउनलोड करें:

एक बार डाउनलोड पूरा हो जाने पर, आप इंस्टॉलेशन के लिए आगे बढ़ सकते हैं। ऐसा करने के लिए, टर्मिनल में निम्नलिखित कार्य करें:

इंस्टालेशन पैकेज वाले फ़ोल्डर में जाएँ, उदाहरण के लिए ~/डाउनलोड:

स्थापना चलाएँ:

यदि यह आदेश काम नहीं करता है, तो आप दूसरा रास्ता अपना सकते हैं। Gdebi उपयोगिता स्थापित करें:

sudo apt-get install gdebi

फिर कर्नेल को स्थापित करने के लिए इसका उपयोग करें:

sudo gdebi linux-headers*.deb linux-image-*.deb

कर्नेल स्थापित है, जो कुछ बचा है वह बूटलोडर को अपडेट करना है:

सुडो अपडेट-ग्रब

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

जैसा कि आप देख सकते हैं, कर्नेल सफलतापूर्वक स्थापित हो गया है और काम कर रहा है। लेकिन कर्नेल के पुराने संस्करण को हटाने में जल्दबाजी न करें; सिस्टम पर कर्नेल के कई संस्करण रखने की अनुशंसा की जाती है, ताकि समस्याओं की स्थिति में आप पुराने कार्यशील संस्करण से बूट कर सकें।

उबंटू पर स्वचालित लिनक्स कर्नेल अपडेट

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

स्क्रिप्ट स्थापित करें:

सीडी/टीएमपी
$ गिट क्लोन git://github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ बैश उबंटू-मेनलाइन-कर्नेल-अपडेटर/इंस्टॉल

अपडेट के लिए जांच कर रहा है:

KernelUpdateChecker -r yackety

-r विकल्प आपको उस वितरण शाखा को निर्दिष्ट करने की अनुमति देता है जिसके लिए आप कर्नेल की खोज करना चाहते हैं। ज़ेनियल के लिए कर्नेल अब नहीं बनाए गए हैं, लेकिन अगले संस्करण के कर्नेल यहां ठीक काम करेंगे। इसके अलावा, -no-rc विकल्प का उपयोग उपयोगिता को रिलीज़ उम्मीदवारों का उपयोग न करने का निर्देश देने के लिए किया जा सकता है, और -v विकल्प इंस्टॉल किए जाने वाले सटीक कर्नेल संस्करण को निर्दिष्ट करता है। यदि आपको परवाह नहीं है कि कर्नेल किस वितरण के लिए है, जब तक कि यह नवीनतम है, --any-release विकल्प का उपयोग करें। स्क्रिप्ट निम्नलिखित परिणाम उत्पन्न करेगी:

कर्नेल स्थापित करने से पहले, आप /tmp/kernel-update फ़ाइल खोलकर विवरण देख सकते हैं:

यहां हम देख सकते हैं कि याकेटी की खोज की गई थी और कर्नेल संस्करण वर्तमान में 4.7-आरसी6 है। हम स्थापित कर सकते हैं:

सुडो /टीएमपी/कर्नेल-अपडेट

स्क्रिप्ट हमें वर्तमान कर्नेल का संस्करण दिखाएगी, साथ ही स्थापित किए जाने वाले कर्नेल का संस्करण, उसकी निर्माण तिथि और अन्य विवरण भी दिखाएगी। आपसे यह भी पूछा जाएगा कि क्या आपको चेंज लॉग रखने की जरूरत है। इसके बाद इंस्टॉलेशन आता है:

पुराने कर्नेल, बस मामले में, हटाएं नहीं (एन):

हो गया, कर्नेल को नवीनतम संस्करण में अपग्रेड करना पूरा हो गया है, अब अपने कंप्यूटर को रीबूट करें (y):

आइए देखें कि क्या उबंटू कर्नेल अपडेट वास्तव में काम करता है:

इसके अलावा, स्क्रिप्ट को स्टार्टअप में जोड़ दिया गया है और अब लॉग इन करने के 60 सेकंड बाद स्वचालित रूप से अपडेट की जांच होगी। ऑटोलोडिंग शॉर्टकट फ़ाइल में है:

vi ~/.config/autostart/KernelUpdate.desktop

आप इसे आवश्यकतानुसार बदल सकते हैं या हटा सकते हैं। यदि आप सिस्टम से स्क्रिप्ट को पूरी तरह से हटाना चाहते हैं, तो चलाएँ:

rm ~/.config/autostart/KernelUpdate.desktop
$ sudo rm /usr/local/bin/KernelUpdate(चेकर, स्क्रिप्ट जेनरेटर)

डाउनलोड नहीं हो रहा है

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

और सिस्टम को पुनर्स्थापित करने के लिए चयन करें उबंटू के लिए उन्नत विकल्पग्रब मेनू में:

और पिछले चल रहे कर्नेल को प्रारंभ करें:

डाउनलोड करने के बाद, जो कुछ बचता है वह है गलत तरीके से स्थापित कर्नेल को हटाना और ग्रब को फिर से अपडेट करना, 4.7 के बजाय वांछित कर्नेल संस्करण को प्रतिस्थापित करना:

sudo apt रिमूव लिनक्स-हेडर-4.7* लिनक्स-इमेज-4.7*

सुडो अपडेट-ग्रब

आपका सिस्टम अब अपनी पिछली स्थिति में वापस आ गया है। आप कर्नेल का पुराना संस्करण स्थापित करने का प्रयास कर सकते हैं या पुनः प्रयास कर सकते हैं।

CentOS पर लिनक्स कर्नेल को 4.4 में अपग्रेड करना

अब आइए देखें कि CentOS में Linux कर्नेल के नवीनतम संस्करण को कैसे अपडेट किया जाए। निर्देशों का परीक्षण CentOS 7 पर किया गया है, लेकिन संभवतः RedHat 7, Fedora और अन्य समान वितरणों पर काम करेगा।

एक नियम के रूप में, नए कर्नेल आधिकारिक CentOS रिपॉजिटरी में शामिल नहीं हैं, इसलिए नवीनतम स्थिर संस्करण प्राप्त करने के लिए हमें ELRepo रिपॉजिटरी को जोड़ना होगा। यह वाणिज्यिक पैकेज (एंटरप्राइज़ लिनक्स पैकेज) का भंडार है और रेडहैट और फेडोरा द्वारा भी समर्थित है।

रिपॉजिटरी जोड़ने के लिए, इन चरणों का पालन करें:

सबसे पहले आपको कुंजी आयात करनी होगी:

आरपीएम --आयात https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

RHEL/Scientific Linux/CentOS-7 में रिपॉजिटरी और आवश्यक घटक जोड़ें:

आरपीएम -यूवीएच http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

यम, यम-प्लगइन-फास्टेस्टमिरर इंस्टॉल करें

फेडोरा 22 और उच्चतर पर:

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

कस्टम कर्नेल?

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

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

हालाँकि, अनलॉक बूटलोडर वाले स्मार्टफोन में कर्नेल को मुख्य फर्मवेयर से अलग से बदला जा सकता है। और न केवल प्रतिस्थापित करें, बल्कि बड़ी संख्या में विभिन्न कार्यों के साथ एक कर्नेल स्थापित करें जिन्हें प्रबंधित करने के लिए कुछ तकनीकी ज्ञान की आवश्यकता होती है, और इसलिए आमतौर पर साइनोजनमोड, एओकेपी और एमआईयूआई जैसे लोकप्रिय फर्मवेयर के कर्नेल में निर्मित नहीं होते हैं। इन कार्यों में आप उच्च प्रोसेसर आवृत्तियों, स्क्रीन गामा का नियंत्रण, ऊर्जा बचत मोड, अत्यधिक कुशल पावर प्रबंधक और बड़ी संख्या में अन्य सुविधाओं के लिए समर्थन पा सकते हैं।

इस लेख में हम इस बारे में बात करेंगे कि कस्टम कर्नेल के निर्माता हमें क्या पेशकश कर सकते हैं, विभिन्न उपकरणों के लिए मुख्य कस्टम कर्नेल पर विचार करेंगे, और मुख्य फर्मवेयर से स्वतंत्र रूप से कर्नेल को स्थापित करने का प्रयास करेंगे और अपनी त्वचा पर सब कुछ जांचेंगे। तो, वैकल्पिक कर्नेल के डेवलपर आमतौर पर क्या पेशकश करते हैं?

स्मार्ट ट्रैफिक कंट्रोलर

उदाहरण के लिए, गैलेक्सी एस II और गैलेक्सी नेक्सस में उपयोग किए जाने वाले OMAP35XX SoCs में एक स्मार्टरिफ्लेक्स फ़ंक्शन होता है, जो प्रोसेसर पर लोड बदलने पर स्मार्ट वोल्टेज समायोजन प्रणाली के रूप में कार्य करता है। अनिवार्य रूप से, यह उपयोगकर्ता द्वारा वोल्टेज की फाइन ट्यूनिंग की आवश्यकता को समाप्त करता है।


अनुकूलन

अक्सर कस्टम कर्नेल बनाने का मुख्य लक्ष्य प्रदर्शन को अनुकूलित करना होता है। आमतौर पर, एक मोबाइल डिवाइस विक्रेता प्रदर्शन और स्थिरता के बीच संतुलन बनाए रखने की कोशिश करता है, इसलिए अच्छी अनुकूलन तकनीकें जो डिवाइस की गति को महत्वपूर्ण रूप से बढ़ा सकती हैं, उन्हें निर्माता द्वारा केवल इस आधार पर अस्वीकार किया जा सकता है कि उनका उपयोग करने के बाद, कुछ एप्लिकेशन क्रैश होने लगे। हर दसवां प्रक्षेपण। बेशक, उत्साही लोग ऐसी छोटी-छोटी बातों से परेशान नहीं होते हैं, और उनमें से कई अपने स्वयं के असेंबली के कर्नेल में किसी भी कंपाइलर विकल्प, बिजली बचत एल्गोरिदम को लागू करने के लिए तैयार हैं और प्रोसेसर आवृत्ति को उतना बढ़ा सकते हैं जितना डिवाइस संभाल सकता है। सभी अनुकूलन तकनीकों में, चार सबसे आम हैं:



अन्य प्रकार का अनुकूलन: डिफ़ॉल्ट I/O अनुसूचक को बदलना। इस क्षेत्र में स्थिति और भी दिलचस्प है, क्योंकि शेड्यूलर्स के संचालन के सिद्धांतों को समझने के बजाय, कुछ कर्नेल बिल्डर्स लिनक्स के लिए I/O शेड्यूलर्स पर इंटरनेट पर दस्तावेज़ पढ़ते हैं और निष्कर्ष निकालते हैं। उपयोगकर्ताओं के बीच, यह दृष्टिकोण और भी अधिक व्यापक है। वास्तव में, लगभग सभी सबसे शक्तिशाली और बुद्धिमान लिनक्स शेड्यूलर एंड्रॉइड के लिए पूरी तरह से अनुपयुक्त हैं: वे मैकेनिकल डेटा स्टोर के साथ उपयोग के लिए डिज़ाइन किए गए हैं, जिसमें डेटा एक्सेस की गति सिर की स्थिति के आधार पर भिन्न होती है। शेड्यूलर डेटा के भौतिक स्थान के आधार पर विभिन्न अनुरोध एकत्रीकरण योजनाओं का उपयोग करता है, इसलिए वर्तमान प्रमुख स्थिति के करीब डेटा के अनुरोधों को उच्च प्राथमिकता प्राप्त होगी। सॉलिड-स्टेट मेमोरी के मामले में यह पूरी तरह से अतार्किक है, जो सभी कोशिकाओं तक समान पहुंच गति की गारंटी देता है। उन्नत शेड्यूलर स्मार्टफोन पर फायदे की बजाय नुकसान अधिक करेंगे, और सबसे अनाड़ी और आदिम शेड्यूलर सर्वोत्तम परिणाम दिखाएंगे। लिनक्स में तीन समान शेड्यूलर हैं:

  • नहीं (कोई ऑपरेशन नहीं)- तथाकथित गैर-अनुसूचक। एक सरल फीफो अनुरोध कतार, पहला अनुरोध पहले संसाधित किया जाएगा, दूसरा दूसरा, और इसी तरह। सॉलिड-स्टेट मेमोरी के लिए उपयुक्त है और आपको ड्राइव तक पहुंच के लिए एप्लिकेशन प्राथमिकताओं को उचित रूप से वितरित करने की अनुमति देता है। एक अतिरिक्त प्लस: बहुत ही सरल ऑपरेटिंग सिद्धांत के कारण कम प्रोसेसर लोड। नुकसान: डिवाइस के संचालन की विशिष्टताओं पर कोई विचार नहीं किया गया, जिसके परिणामस्वरूप प्रदर्शन विफलता हो सकती है।
  • एसआईओ (सरल I/O)- सेक्टरों की एक-दूसरे से निकटता को ध्यान में रखे बिना डेडलाइन शेड्यूलर का एक एनालॉग, यानी विशेष रूप से सॉलिड-स्टेट मेमोरी के लिए डिज़ाइन किया गया। दो मुख्य विशेषताएं: लिखने के संचालन पर पढ़ने के संचालन की प्राथमिकता और प्रक्रिया द्वारा संचालन का समूहीकरण, संचालन करने के लिए प्रत्येक प्रक्रिया को एक समय टुकड़ा आवंटित करना। स्मार्टफ़ोन में जहां वर्तमान एप्लिकेशन की गति और लिखने के संचालन पर पढ़ने के संचालन की प्रबलता महत्वपूर्ण है, यह बहुत अच्छा प्रदर्शन दिखाता है। Nexus 4 और SiyahKernel के लिए Leankernel, Matr1x कर्नेल में उपलब्ध है।
  • पंक्ति (पढ़ें और लिखें)- एक शेड्यूलर विशेष रूप से मोबाइल उपकरणों के लिए डिज़ाइन किया गया है और कुछ महीने पहले ही कर्नेल में जोड़ा गया है। मुख्य लक्ष्य पहले पढ़ने के अनुरोधों को संसाधित करना है, लेकिन साथ ही लिखने के अनुरोधों के लिए उचित समय वितरित करना है। इसे इस समय NAND मेमोरी के लिए सबसे अच्छा शेड्यूलर माना जाता है; इसका उपयोग डिफ़ॉल्ट रूप से Leankernel और Matr1x में किया जाता है।

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

# cat /sys/block/*/queue/scheduler

बदलने के लिए निम्नलिखित का उपयोग किया जाता है (जहाँ पंक्ति अनुसूचक का नाम है):

# मेरे लिए /sys/block/*/queue/scheduler में; पंक्ति प्रतिध्वनि करें > $1; हो गया

कुछ कर्नेल निर्माता I/O से संबंधित अन्य प्रकार के अनुकूलन का भी उपयोग करते हैं। यह fsync सिस्टम कॉल को अक्षम कर देता है, जिसका उपयोग खुली फ़ाइलों की परिवर्तित सामग्री को डिस्क पर फ़्लश करने के लिए बाध्य करने के लिए किया जाता है। एक राय है कि fsync के बिना सिस्टम ड्राइव को कम बार एक्सेस करेगा और इस प्रकार प्रोसेसर का समय और बैटरी पावर बचाएगा। एक विवादास्पद बयान: fsync का उपयोग अक्सर अनुप्रयोगों में नहीं किया जाता है और केवल वास्तव में महत्वपूर्ण जानकारी को सहेजने के लिए किया जाता है, लेकिन इसे अक्षम करने से ऑपरेटिंग सिस्टम क्रैश या अन्य समस्याओं की स्थिति में वही जानकारी खो सकती है। Fsync को अक्षम करने की क्षमता Franco.Kernel और GLaDOS कर्नेल में उपलब्ध है, और फ़ाइल /sys/module/sync/parameters/fsync_enabled द्वारा नियंत्रित की जाती है, जिसमें आपको अक्षम करने के लिए 0 या सक्षम करने के लिए 1 लिखना चाहिए। फिर, इस सुविधा का उपयोग करने की अनुशंसा नहीं की जाती है।

कर्नेल में नए फ़ंक्शन जोड़ना

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

ये मुख्य रूप से विभिन्न ड्राइवर और फ़ाइल सिस्टम हैं। उदाहरण के लिए, कुछ कर्नेल में CIFS मॉड्यूल के लिए समर्थन शामिल है, जो आपको विंडोज़ शेयरों को माउंट करने की अनुमति देता है। ऐसा मॉड्यूल Nexus S के लिए Matr1x कर्नेल, Nexus 7 के लिए faux123, SiyahKernel और GLADOS में है। अपने आप में, यह बेकार है, लेकिन बाजार में ऐसे कई एप्लिकेशन हैं जो आपको इसकी क्षमताओं का उपयोग करने की अनुमति देते हैं।

एक अन्य उपयोगी सुविधा कर्नेल में एनटीएफएस-3जी ड्राइवर को शामिल करना है (अधिक सटीक रूप से, कर्नेल के साथ पैकेज में; ड्राइवर स्वयं एक लिनक्स एप्लिकेशन के रूप में काम करता है), जो एनटीएफएस फ़ाइल सिस्टम में स्वरूपित फ्लैश ड्राइव को माउंट करने के लिए आवश्यक है। यह ड्राइवर फॉक्स123 और सियाह कर्नेल कर्नेल में पाया जाता है। आमतौर पर यह स्वचालित रूप से सक्रिय हो जाता है, लेकिन अगर ऐसा नहीं होता है, तो आप बाज़ार से स्टिकमाउंट एप्लिकेशन का उपयोग कर सकते हैं।

कई कर्नेल में तथाकथित zram तकनीक के लिए समर्थन भी शामिल है, जो आपको थोड़ी मात्रा में RAM (आमतौर पर 10%) आरक्षित करने और इसे संपीड़ित स्वैप क्षेत्र के रूप में उपयोग करने की अनुमति देता है। इसका परिणाम प्रदर्शन पर किसी भी गंभीर परिणाम के बिना, मेमोरी की मात्रा का एक प्रकार का विस्तार है। लीनकर्नेल में उपलब्ध, ट्रिकस्टर MOD या zram सक्षम कमांड का उपयोग करके सक्षम।

अंतिम दो दिलचस्प विशेषताएं फास्ट यूएसबी चार्ज और स्वीप2वेक हैं। पहला "फास्ट चार्जिंग" मोड के जबरन सक्रियण से ज्यादा कुछ नहीं है, भले ही स्मार्टफोन कंप्यूटर के यूएसबी पोर्ट से जुड़ा हो। फास्ट चार्जिंग मोड कमोबेश सभी नए स्मार्टफ़ोन में उपलब्ध है, हालाँकि, तकनीकी सीमाओं के कारण, इसे मेमोरी कार्ड तक पहुँच के साथ-साथ सक्षम नहीं किया जा सकता है। फास्ट यूएसबी चार्ज फ़ंक्शन आपको ड्राइव तक पहुंच को अक्षम करते हुए, इस मोड को हमेशा सक्षम करने की अनुमति देता है।

स्वीप2वेक किसी डिवाइस को जगाने का एक नया तरीका है, जिसका आविष्कार ब्रेक्ड-कर्नेल के लेखक ने किया था। इसका उद्देश्य स्क्रीन के नीचे या स्क्रीन के पार स्थित नेविगेशन कुंजियों पर अपनी उंगली सरकाकर स्मार्टफोन को चालू करना है। यह वास्तव में एक सुविधाजनक सुविधा है, लेकिन इसे चालू करने से डिवाइस निष्क्रिय होने पर भी सेंसर सक्रिय रहेगा, जिससे बैटरी काफी हद तक खत्म हो सकती है।

ओवरक्लॉकिंग, वोल्टेज और ऊर्जा की बचत

ओवरक्लॉकिंग न केवल डेस्कटॉप कंप्यूटर और लैपटॉप के मालिकों के बीच, बल्कि मोबाइल प्रौद्योगिकी के प्रति उत्साही लोगों के बीच भी लोकप्रिय है। x86 आर्किटेक्चर पत्थरों की तरह, मोबाइल उपकरणों के प्रोसेसर और ग्राफिक्स कोर उत्कृष्ट हैं। हालाँकि, ओवरक्लॉकिंग विधि और इसे लागू करने के लिए उठाए गए कदम कुछ अलग हैं। तथ्य यह है कि एसओसी के लिए मानक ड्राइवर, जो ऊर्जा की बचत और प्रोसेसर आवृत्ति को बदलने के लिए जिम्मेदार हैं, आमतौर पर मानक आवृत्तियों पर लॉक होते हैं, इसलिए ठीक ट्यूनिंग के लिए आपको वैकल्पिक ड्राइवर या कस्टम कर्नेल स्थापित करना होगा।

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

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

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

  • स्मार्टएएसएसवी2- बैटरी बचाने पर ध्यान देने के साथ इंटरएक्टिव एल्गोरिदम पर पुनर्विचार। मुख्य अंतर लोड के अल्पकालिक विस्फोट की स्थिति में प्रोसेसर को उच्च आवृत्तियों पर नहीं खींचना है, जिसके लिए कम प्रोसेसर प्रदर्शन पर्याप्त है। डिफ़ॉल्ट का उपयोग Matr1x कर्नेल में किया जाता है।
  • इंटरएक्टिवएक्स- एक ट्यून्ड इंटरएक्टिव एल्गोरिदम, जिसकी मुख्य विशेषता प्रोसेसर को न्यूनतम उपयोगकर्ता-निर्दिष्ट आवृत्ति पर लॉक करना और स्क्रीन बंद होने पर दूसरे प्रोसेसर कोर को डी-एनर्जेट करना है। लीनकर्नेल में डिफ़ॉल्ट का उपयोग किया जाता है।
  • लुल्ज़एक्टिववी2- मूलतः एक पुनर्निर्मित ऑनडिमांड। जब प्रोसेसर पर लोड निर्दिष्ट एक (डिफ़ॉल्ट रूप से 60%) से अधिक हो जाता है, तो एल्गोरिदम एक निश्चित संख्या में डिवीजनों (डिफ़ॉल्ट रूप से 1) द्वारा आवृत्ति बढ़ाता है, और लोड कम होने पर इसे कम कर देता है। यह विशेष रुचि का है क्योंकि यह आपको स्वतंत्र रूप से ऑपरेटिंग पैरामीटर सेट करने की अनुमति देता है, इसलिए यह कठोर गीक्स के लिए उपयुक्त है।

सामान्य तौर पर, कर्नेल बिल्डर्स वास्तव में अपने कार्यान्वयन की आसानी के कारण नए ऊर्जा-बचत एल्गोरिदम के साथ आना पसंद करते हैं, इसलिए आप एक दर्जन अन्य पा सकते हैं। उनमें से अधिकांश पूरी तरह से बकवास हैं, और शेड्यूलर चुनते समय आपको नियम द्वारा निर्देशित किया जाना चाहिए: या तो ऊपर वर्णित तीन में से एक, या मानक इंटरएक्टिव, जो, वैसे, बहुत अच्छा है। आप उसी ट्रिकस्टर मॉड का उपयोग करके चुनाव कर सकते हैं।

नियंत्रण इंटरफ़ेस

सबसे लोकप्रिय कस्टम कर्नेल में विभिन्न ड्राइवर मापदंडों के बारीक नियंत्रण के लिए कई तंत्र शामिल हैं, जिनमें से सबसे आम हैं ColorControl, GammaControl, SoundControl और TempControl।

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

कोर

आपको कौन सा कोर चुनना चाहिए? इस प्रश्न का कोई स्पष्ट उत्तर नहीं है, और इसलिए नहीं कि "प्रत्येक का अपना है", बल्कि इसलिए कि दुनिया में बड़ी संख्या में एंड्रॉइड डिवाइस हैं और लगभग इतनी ही अलग-अलग कर्नेल हैं। हालाँकि, कई लोकप्रिय कर्नेल हैं जिन्हें एक साथ कई उपकरणों के लिए विकसित किया जा रहा है। किसी न किसी तरह, मैंने पूरी कहानी में उनमें से कई का उल्लेख किया है, और यहां मैं उनका संक्षिप्त विवरण दूंगा।

  • लीनकर्नेल गैलेक्सी नेक्सस, नेक्सस 7 और गैलेक्सी एस III का मूल है। विकास के दौरान मुख्य जोर कार्य की सरलता और गति पर है। ऊर्जा बचत एल्गोरिदम: इंटरएक्टिवएक्स वी2, आई/ओ शेड्यूलर: आरओडब्ल्यू, उपरोक्त सभी नियंत्रण इंटरफेस, फास्ट यूएसबी चार्ज, स्वैप और ज़्राम के लिए समर्थन, सीपीयू और जीपीयू के लिए लचीले ओवरक्लॉकिंग विकल्प। सर्वोत्तम कोर में से एक. ट्रिकस्टर मॉड का उपयोग करके अनुकूलन योग्य।
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - नेक्सस एस और नेक्सस 4 के लिए कर्नेल। सरल और अनओवरलोडेड कर्नेल। सीपीयू और जीपीयू ओवरक्लॉकिंग, गामाकंट्रोल, फास्ट यूएसबी चार्ज, स्वीप2वेक, आई/ओ शेड्यूलर के लिए समर्थन: एसआईओ, आरओडब्ल्यू और एफआईओपीएस। प्रदर्शन बदल जाता है. ट्रिकस्टर मॉड का उपयोग करके अनुकूलन योग्य।
  • ब्रिक्ड-कर्नेल (http://goo.gl/kd5F4, goo.gl/eZkAV) - नेक्सस 4 और एचटीसी वन , क्षमता ओवरक्लॉकिंग, ऊर्जा बचत एल्गोरिदम: ट्यून ऑनडिमांड (इंटरएक्टिव भी उपलब्ध है)।
  • सियाह कर्नेल - गैलेक्सी एस II और एस III के लिए कर्नेल। लचीले ओवरक्लॉकिंग विकल्प, स्वचालित बैटरी कैलिब्रेशन, बेहतर टच स्क्रीन ड्राइवर, पावर सेविंग एल्गोरिदम: स्मार्टएएसएसवी2 और लुल्ज़एक्टिववी2, आई/ओ शेड्यूलर: नूप, डेडलाइन, सीएफक्यू, बीएफक्यूवी3आर2 (डिफ़ॉल्ट), वी(आर), एसआईओ। सीआईएफएस और एनटीएफएस ड्राइवर (ऑटो-माउंटिंग के साथ)। ExTweaks का उपयोग करके कॉन्फ़िगर करने योग्य।
  • फ्रेंको.कर्नेल - नेक्सस एस, गैलेक्सी नेक्सस, नेक्सस 4, नेक्सस 7, नेक्सस 10, गैलेक्सी एस III, गैलेक्सी नोट, ऑप्टिमस वन और वन एक्स के लिए कर्नेल।

कर्नेल क्षमताएं हर डिवाइस में बहुत भिन्न होती हैं, इसलिए आपको साइट पर विवरण जांचना होगा। हालाँकि, इस कर्नेल को फ्लैश करने से आपको ओवरक्लॉक करने की क्षमता, ड्राइवर ट्यूनिंग, उत्कृष्ट प्रदर्शन, साथ ही विभिन्न बिजली बचत एल्गोरिदम और शेड्यूलर के लिए समर्थन मिलेगा। वास्तव में, कर्नेल में आलेख में वर्णित लगभग सभी बदलाव शामिल हैं। उपलब्ध सर्वोत्तम गुठलियों में से एक माना जाता है। स्वचालित अद्यतन के लिए एक एप्लिकेशन है franko.Kernel Updater. आप इसे ट्रिकस्टर मॉड का उपयोग करके कॉन्फ़िगर कर सकते हैं।

स्थापित करने के लिए कैसे?

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

निष्कर्ष

जैसा कि आप देख सकते हैं, मानक या तृतीय-पक्ष फर्मवेयर में उपयोग किए जाने वाले कर्नेल की तुलना में कस्टम कर्नेल के कई फायदे हैं। और इससे भी अधिक महत्वपूर्ण बात यह है कि इनका उपयोग करने के लिए आपको एंड्रॉइड की सभी जटिलताओं को जानने की आवश्यकता नहीं है; बस ज़िप संग्रह को डाउनलोड और इंस्टॉल करें।

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

एंड्रॉइड ऑपरेटिंग सिस्टम का कर्नेल और उसका फर्मवेयर

मोबाइल डिवाइस का मूल क्या है?

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

एंड्रॉइड पर कर्नेल इंस्टॉल करने के इच्छुक लोगों को यह समझना चाहिए कि कस्टम कर्नेल और कस्टम फर्मवेयर की अवधारणाओं के बीच अंतर है। बाद वाला सॉफ़्टवेयर का एक अनौपचारिक संस्करण है। कस्टम फर्मवेयर विशिष्ट उपकरणों के लिए विशेषज्ञों की एक टीम द्वारा विकसित किया गया था। कस्टम कर्नेल लिनक्स कर्नेल पर आधारित है, जो इसके अनौपचारिक संस्करण का प्रतिनिधित्व करता है। अक्सर एक कस्टम कर्नेल फ़र्मवेयर के साथ बंडल में आता है। लेकिन फर्मवेयर बदलने के बाद इसे अलग से इंस्टॉल किया जा सकता है। मूलतः, यह मोबाइल डिवाइस के मूल कोर को प्रतिस्थापित नहीं करता है, जो इस तरह के ऑपरेशन का अंतिम लक्ष्य है।

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

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

फास्टबूट के माध्यम से गैजेट को फ्लैश करना

आप फास्टबूट का उपयोग करके अपने एंड्रॉइड डिवाइस को रीफ़्लैश कर सकते हैं। लेकिन सबसे पहले आपको अपने गैजेट पर उपयोगिता इंस्टॉल करनी होगी। इस प्रोग्राम के दो संस्करण हैं. पहले में आधिकारिक एंड्रॉइड एसडीके प्रोग्राम के साथ फास्टबूट को डाउनलोड करना शामिल है। दूसरे संस्करण में उपयोगिता को अलग से डाउनलोड करना शामिल है।

हम यह जाँचने की अनुशंसा करते हैं कि आपका मोबाइल उपकरण आपके लैपटॉप या कंप्यूटर को देख सकता है या नहीं। ऐसा करने के लिए आपको ये करना होगा. विंडोज़ ऑपरेटिंग सिस्टम चलाने वाले और अपने स्मार्टफोन को कनेक्ट करने वाले अपने कंप्यूटर या लैपटॉप पर फास्टबूट उपयोगिता को डाउनलोड और इंस्टॉल करने के बाद, आपको कमांड लाइन खोलनी होगी। ऐसा करने के लिए, खोजें खोलें. विंडोज़ 8 में, ऐसा करने के लिए, बस माउस कर्सर को स्क्रीन के दाईं ओर ले जाएँ और उपयुक्त अनुभाग का चयन करें। सर्च में आपको “cmd” एंटर करना होगा, जिसके बाद आपके सामने कमांड लाइन आ जाएगी। डिवाइस को फ़र्मवेयर मोड पर स्विच किया जाना चाहिए। इसके बाद, आपको एक कमांड दर्ज करना चाहिए जो आपके कंप्यूटर और मोबाइल डिवाइस के बीच बातचीत का परीक्षण करेगा:

फास्टबूट डिवाइस

यदि सब कुछ काम करता है, तो आपको कर्नेल फर्मवेयर Boot.img का सही संस्करण डाउनलोड करना होगा। हम मूल फर्मवेयर के कर्नेल को फ्लैश करने की अनुशंसा नहीं करते हैं, क्योंकि इससे स्मार्टफोन के संचालन में समस्याएं हो सकती हैं। फ़ाइल को ड्राइव C पर "एंड्रॉइड" नामक पूर्व-निर्मित विभाजन में सहेजा जाना चाहिए। इसके बाद आपको मोबाइल डिवाइस को फास्टबूट में बूट करना होगा और इसे कंप्यूटर से कनेक्ट करना होगा। स्क्रीन पर "फास्टबूट यूएसबी" संदेश दिखाई देगा।

  • सीडी सी:\एंड्रॉयड.
  • फास्टबूट फ्लैश बूट बूट.आईएमजी।
  • फास्टबूट कैश मिटाएं।
  • फास्टबूट रिबूट।

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

क्लॉकवर्कमॉड रिकवरी का उपयोग कर फर्मवेयर

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

कर्नेल फ़र्मवेयर को फ़्लैश करने के लिए, ज़िप एक्सटेंशन के साथ संग्रह डाउनलोड करें। इसमें META-INF फ़ोल्डर अवश्य होना चाहिए। तो फिर दो विकल्प हैं. पहले मामले में, आपको फ़र्मवेयर फ़ाइल निर्दिष्ट करने की आवश्यकता है। दूसरे विकल्प में फ़र्मवेयर फ़ाइल को /sdcard फ़ोल्डर में रखना शामिल है। इसके बाद, आपको क्लॉकवर्कमॉड रिकवरी को सक्रिय करना चाहिए, वहां एसडीकार्ड फ़ंक्शन से अपडेट लागू करें ढूंढें और आवश्यक फ़ाइल निर्दिष्ट करें।

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

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