कर्नेल निर्माता से निर्माता में भिन्न होते हैं। सीएफ़ पर पाए जाने वाले स्रोतों की शुद्ध स्टॉक कर्नेल लाइन से बहुत सारे कर्नेल आते हैं, जो ये निर्माता करते हैं, उन स्टॉक स्रोतों को लेते हैं, उन्हें संशोधित करते हैं कि वे अपने स्वयं के ड्राइवरों को लागू करने वाले बोर्ड / चिपसेट के आधार पर सूट करें।
अपने आस-पास अच्छे से देखें, टचस्क्रीन की विविधताएं, वाईफाई चिपसेट की विविधताएं, उल्लेख नहीं करने के लिए, एक्सेलेरोमीटर, सेंसर, बैटरी, कम्पास, ध्वनि, ग्राफिक्स हैं।
उदाहरण के लिए एक कर्नेल स्रोत से एचटीसी लेना सैमसंग पर काम नहीं करेगा, और इसके विपरीत।
निर्माता चेरी-पिक या आउट-सोर्स विभिन्न बिट्स के लिए स्वतंत्र हैं जो सर्किट बोर्ड में शामिल हो जाते हैं। इसमें कोई कठोर या तेज़ नियम शामिल नहीं है। इसलिए कर्नेल को ठीक से काम करने के लिए बहुत सारे हैकिंग / संशोधन।
आपको कभी भी डेस्कटॉप लिनक्स वितरण कर्नेल की तुलना नहीं करनी चाहिए, जिसमें पीसीआई, पीसीआई-एक्सप्रेस, एसएटीए, वीजीए, एसवीजीए, यूएसबी, ईथरनेट हैं क्योंकि वे एक पूरी तरह से अलग बॉल-पार्क गेम हैं। CentOS के साथ और Android के लिनक्स कर्नेल के साथ प्रमुख अंतर यह है - सभी ड्राइवरों को या तो मॉड्यूल या बिल्ट-इन के रूप में संकलित किया जाता है, इसलिए कोई भी लिनक्स वितरण बस "बॉक्स से बाहर काम करेगा"। फिर से, डेस्कटॉप लिनक्स वितरण के साथ - आपके पास एक आर्किटेक्चर है - x86 इसलिए एक लिनक्स कर्नेल एक डेल पीसी से कहता है, लेनोवो पर बॉक्स से बाहर काम कर सकता है बशर्ते कि बोग-मानक ड्राइवर संकलित हों।
मत भूलो, एंड्रॉइड दुनिया में, विशिष्ट एआरएम चिपसेट के लिए बनाए गए कर्नेल की विविधताएं हैं, जैसे कि एआरएमवी 6, एआरएमवी 7, वहां टीईजीआरए, वहां एक्सिनोस हैं, और वे एक दूसरे के साथ द्विआधारी असंगत हैं। इसलिए यदि कोई कर्नेल TEGRA के लिए संकलित किया गया है, तो उसे भूल जाओ, यह ARMv7 पर काम नहीं करेगा!
एंड्रॉइड पर कुछ गुठली का कारण निर्माता को "टूट" दिखाई देता है। कुछ (Zte एक बहुत अच्छा उदाहरण है) एक कटा हुआ स्रोत जारी करते हैं जो स्रोत से संकलित कर सकता है लेकिन एक लापता ड्राइवर के कारण बूट करने में विफल रहता है जो GPLv2 या GPLv3 लाइसेंस द्वारा कवर नहीं किया गया है। यही समस्या है, इसलिए कुछ हैकर्स को कुछ सुरागों की तलाश में जीथब के आसपास चक्कर काटने पड़ते हैं; कुछ निर्माता, यदि सभी नहीं, अनुपालन करते हैं। Zte के स्रोत का वर्तमान अवतार शुद्ध रूप से 2.6.35.7 है, लेकिन वास्तव में इसके बहुत सारे संशोधनों के साथ 2.6.32.9 स्रोत आधार वास्तव में 2.6.35.7 के लिए वास्तविक कर्नेल स्रोत का प्रतिनिधित्व नहीं करता है!
यह वह जगह है जहां निर्माताओं को अपने संबंधित स्रोतों को जारी करना होता है, न कि केवल जीपीएलवी 2 या बाद के अनुपालन के कारण, बल्कि समुदाय के लिए इसे मॉडिफाई करने में सक्षम होना चाहिए, जैसे ओवरक्लॉकिंग क्षमताओं को जोड़ना।
इसलिए इसमें पर्दे के पीछे हैकिंग शामिल है और इसे चलाने के लिए कोशिश करने वाले ड्राइवरों के साथ बहुत खिलवाड़ होता है, और इसके लिए डिबग करना आसान नहीं है .. कुछ ड्राइवरों को क्रॉस-लाइसेंस प्राप्त किया जा सकता है, लेकिन खंड और शर्तों के आधार पर BUT वितरित नहीं किया जा सकता है बातचीत की।
शुक्र है, कि यह सब अब स्रोतों के कर्नेल 3.xx लाइन के साथ बदल गया है, क्योंकि एंड्रॉइड ड्राइवर अब मुख्यधारा के स्रोतों में एकीकृत हैं। लेकिन वहाँ एक gotcha है!
एक मौजूदा हैंडसेट को 3.xx कर्नेल पोर्ट करने का प्रयास करें जो लगभग 12-18 महीने पुराना है; नर्क में स्नोबॉल का मौका काम नहीं करेगा, ऐसा इसलिए है, क्योंकि अलग-अलग कारकों में, 3.xx स्रोत मोटे तौर पर 2.6.x स्रोत से भिन्न हैं और इसे काम करने के लिए बहुत हैकिंग लेंगे - मुझे पता होना चाहिए, कोशिश की है ज़ेट ब्लेड के लिए 2.6.38.6 स्रोत पोर्टिंग और विफल रहा।
इसी तरह, नवीनतम कर्नेल रिलीज 3.0.1 - जब मोडको पर ics4blade परियोजना पर काम कर रहे हैं, तो इसे पोर्ट करने के लिए कई प्रयास किए हैं लेकिन यह सरल तथ्य यह है कि Zte ने स्रोत की बहुत खराब गड़बड़ की है जो असंभव पर पोर्ट को जांघ प्रदान करता है ।