మూలం నుండి మీడియాటెక్ Android కెర్నల్ ఎలా నిర్మించాలి



సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి

చాలా మంది ఆండ్రాయిడ్ యూజర్లు అనుకూలీకరించిన కెర్నల్‌లను ఇన్‌స్టాల్ చేయడాన్ని ఆనందిస్తారు, ఇది పనితీరు మరియు బ్యాటరీ జీవితాన్ని పెంచే ట్వీక్‌లను అందిస్తుంది. మీకు నచ్చిన కెర్నల్‌ను మీరు కనుగొనలేకపోతే, లేదా మీ పరికరానికి ఏదీ అందుబాటులో లేకపోతే, కొన్నిసార్లు మీరు మీ స్వంతంగా నిర్మించుకోవాలి. ఈ గైడ్ మెడిటెక్ పరికరాల కోసం మూలం నుండి కెర్నల్‌ను ఎలా నిర్మించాలో దృష్టి పెడుతుంది.



దయచేసి ఈ గైడ్ క్రొత్తవారి కోసం కాదు, ఇది Android ROM లను అనుకూలీకరించడం, లైనక్స్ టెర్మినల్స్‌లో పనిచేయడం మరియు మనం ఏమి చేస్తున్నారనే దాని గురించి కొంచెం పని పరిజ్ఞానం గురించి అవగాహన ఉన్న వ్యక్తుల కోసం ఉద్దేశించబడింది.



అవసరాలు:

  1. లైనక్స్ ఆపరేటింగ్ సిస్టమ్
  2. కొన్ని ప్రాథమిక సి పరిజ్ఞానం మరియు మేక్‌ఫైల్‌లతో ఎలా పని చేయాలి
  3. Android NDK

ప్రారంభించడానికి, మీరు Linux కోసం ఈ క్రింది ప్యాకేజీలను డౌన్‌లోడ్ చేసుకోవాలి:



  • పైథాన్
  • గ్నూ మేక్
  • జెడికె
  • వెళ్ళండి

sudo apt-get install git gnupg flex bison gperf build-අත්‍යාවශ්‍ය జిప్ కర్ల్ libc6-dev libncurses5-dev: i386 x11proto-core-dev libx11-dev: i386 libreadline6-dev: i386 libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - మల్టీలిబ్ మింగ్వా 32 టోఫ్రోడోస్ పైథాన్-మార్క్‌డౌన్ లిబ్‌క్స్ఎమ్ఎల్ 2-యుటిల్స్ x11proto-core-dev libx11-dev: i386 libreadline6-dev: i386 lib32z-dev libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc6 lineline libreadread6 -gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev: i386 libreadline6: i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2 8-dev పైథాన్ gcc g ++ cpp gcc-4.8 g ++ - 4.8 && sudo ln -s / usr / lib / i386-linux-gnu / mesa / li bGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

ఇప్పుడు etc / udev / rules.d / 51-android.rules కు వెళ్లండి:

అభిరుచిపై # adb ప్రోటోకాల్ (నెక్సస్ వన్)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e12 ″, MODE = ”0600 ″, OWNER =” ”
అభిరుచిపై # ఫాస్ట్‌బూట్ ప్రోటోకాల్ (నెక్సస్ వన్)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0bb4 ″, ATTR {idProduct} ==” 0fff ”, MODE =” 0600 ″, OWNER = ””
క్రెస్పో / క్రెస్పో 4 జి (నెక్సస్ ఎస్) పై # adb ప్రోటోకాల్
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e22 ″, MODE = ”0600 ″, OWNER =” ”
క్రెస్పో / క్రెస్పో 4 జి (నెక్సస్ ఎస్) పై # ఫాస్ట్‌బూట్ ప్రోటోకాల్
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e20 ″, MODE = ”0600 ″, OWNER =” ”
స్టింగ్రే / వింగ్రే (జూమ్) పై # adb ప్రోటోకాల్
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”22b8 ″, ATTR {idProduct} ==” 70a9 ″, MODE = ”0600 ″, OWNER =” ”
స్టింగ్రే / వింగ్రే (జూమ్) పై # ఫాస్ట్‌బూట్ ప్రోటోకాల్
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 708c ”, MODE =” 0600 ″, OWNER = ””
మాగురో / టోరోపై # adb ప్రోటోకాల్ (గెలాక్సీ నెక్సస్)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”04e8 ″, ATTR {idProduct} ==” 6860 ″, MODE = ”0600 ″, OWNER =” ”
మాగురో / టోరో (గెలాక్సీ నెక్సస్) పై # ఫాస్ట్‌బూట్ ప్రోటోకాల్
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e30 ″, MODE = ”0600 ″, OWNER =” ”
పాండాపై # adb ప్రోటోకాల్ (పాండాబోర్డ్)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d101 ″, MODE = ”0600 ″, OWNER =” ”
పాండాపై # adb ప్రోటోకాల్ (పాండాబోర్డ్ ES)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” d002 ″, MODE = ”0600 ″, OWNER =” ”
పాండాపై # ఫాస్ట్‌బూట్ ప్రోటోకాల్ (పాండాబోర్డ్)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d022 ″, MODE = ”0600 ″, OWNER =” ”
పాండాపై # usbboot ప్రోటోకాల్ (పాండాబోర్డ్)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d00f ”, MODE =” 0600 ″, OWNER = ””
పాండాపై # usbboot ప్రోటోకాల్ (పాండాబోర్డ్ ES)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d010 ″, MODE = ”0600 ″, OWNER =” ”
గ్రూప్ / టిలాపియాపై # adb ప్రోటోకాల్ (నెక్సస్ 7)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e42 ″, MODE = ”0600 ″, OWNER =” ”
గ్రూప్ / టిలాపియాపై # ఫాస్ట్‌బూట్ ప్రోటోకాల్ (నెక్సస్ 7)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e40 ″, MODE = ”0600 ″, OWNER =” ”
మంటాపై # adb ప్రోటోకాల్ (నెక్సస్ 10)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4ee2 ″, MODE = ”0600 ″, OWNER =” ”
మంటాపై # ఫాస్ట్‌బూట్ ప్రోటోకాల్ (నెక్సస్ 10)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4ee0 ″, MODE = ”0600 ″, OWNER =” ”



మరియు bash.rc లో:

ఎగుమతి USE_CCACHE = 1
ఇప్పుడు చివరకు:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
కాబట్టి ఇప్పుడు మేము నిర్మాణ వాతావరణాన్ని ఏర్పాటు చేయడానికి సిద్ధంగా ఉన్నాము. టెర్మినల్‌లో, టైప్ చేయండి:

ఎగుమతి TARGET_BUILD_VARIANT = వినియోగదారు TARGET_PRODUCT = devicename MTK_ROOT_CUSTOM = .. / mediatek / custom / TARGET_KERNEL_V
ఈ ఆదేశాలు ఏమి చేయబోతున్నాయో ఇక్కడ ఉంది:

BUILD_VARIANT: కెర్నల్ దేని కోసం నిర్మించబోతుందో తెలుపుతుంది.
TARGET_PRODUCT / TARGET_KERNEL_PRODUCT: ఏ పరికరం నిర్దిష్ట ఫైళ్ళను ఉపయోగించాలో Linux కి చెబుతుంది.
MTK_ROOT_CUSTOM: మెడిటెక్ / కస్టమ్ ఫోల్డర్ యొక్క డైరెక్టరీని నిర్దేశిస్తుంది. ఈ మైడ్ కెర్నల్ సోర్స్ వలె అదే డైరెక్టరీలో ఉండాలని గుర్తుంచుకోండి.
మార్గం: మీ టూల్‌చైన్ ఎక్జిక్యూటబుల్‌లను మీ మార్గానికి సెట్ చేస్తుంది.
CROSS_COMPILE: క్రాస్ కంపైలర్ అనేది కంపైలర్ రన్ అవుతున్న ప్లాట్‌ఫారమ్ కాకుండా వేరే ప్లాట్‌ఫామ్ కోసం ఎక్జిక్యూటబుల్ కోడ్‌ను సృష్టించగల కంపైలర్. టూల్‌చెయిన్ ఈ ఫంక్షన్‌ను సులభతరం చేస్తుంది
ARCH = ఆర్మ్, ARM అనేది బ్రిటిష్ కంపెనీ ARM హోల్డింగ్స్ చే అభివృద్ధి చేయబడిన తగ్గిన ఇన్స్ట్రక్షన్ సెట్ కంప్యూటింగ్ (RISC) నిర్మాణం ఆధారంగా కంప్యూటర్ ప్రాసెసర్ల కోసం ఇన్స్ట్రక్షన్ సెట్ ఆర్కిటెక్చర్ల కుటుంబం. ARM కూడా Android లో ఉపయోగించబడుతుంది.

కాబట్టి మేము టెర్మినల్‌లో ‘ఎగుమతి ARCH = చేయి’ అని టైప్ చేసినప్పుడు, మేము ప్రాథమికంగా ARM నిర్మాణం కోసం నిర్మిస్తున్నట్లు Linux కి చెబుతున్నాము.

కాబట్టి ఇప్పుడు మేము కెర్నల్‌ను కాన్ఫిగర్ చేయడం ప్రారంభించడానికి సిద్ధంగా ఉన్నాము. మీరు చాలా జాగ్రత్తగా ఉండాలి, ఎందుకంటే కెర్నల్ ప్రాథమికంగా మీ ఫోన్‌కు నియంత్రిక. కాబట్టి జాగ్రత్తగా అనుసరించండి.


మీరు చాలావరకు బేస్ కాన్ఫిగరేషన్‌ను కెర్నల్_సోర్స్ / మెడిటెక్ / కాన్ఫిగర్ / డెవిసెనేమ్ / ఆటోకాన్ఫిగ్ / కెకాన్ఫిగ్ / ప్లాట్‌ఫామ్‌లో కనుగొంటారు.
మేము ఈ బేస్ కాన్ఫిగరేషన్‌ను ఉపయోగించవచ్చు మరియు దానిని వేర్వేరు అవసరాలతో నిర్మించవచ్చు, ఉదాహరణకు SELinux అనుమతులు ప్రారంభించబడ్డాయి లేదా నిలిపివేయబడ్డాయి. మీరు ఎల్లప్పుడూ మొదటి నుండి బేస్ కాన్ఫిగరేషన్‌ను నిర్మించవచ్చు, కాని నేను దీన్ని సిఫారసు చేయను.

కాబట్టి ఇప్పుడు లైనక్స్ టెర్మినల్‌లో టైప్ చేద్దాం:

cd కెర్నల్_సోర్స్
cp mediatek / config / devicename / autoconfig / kconfig / platform .config
మెనూకాన్ఫిగ్ చేయండి

ఇది కెర్నల్‌కు లక్షణాలను జోడించడానికి మిమ్మల్ని అనుమతించే గ్రాఫికల్ ఇంటర్‌ఫేస్‌ను సృష్టించబోతోంది. ఉదాహరణకు, మీరు I / O షెడ్యూల్, CPU గవర్నర్లు, GPU ఫ్రీక్వెన్సీ మొదలైనవాటిని సర్దుబాటు చేయవచ్చు.
మీరు కోరుకున్న సెట్టింగులను సర్దుబాటు చేసిన తర్వాత, మీరు కెర్నల్‌ను కంపైల్ చేయడానికి సిద్ధంగా ఉన్నారు. కాబట్టి Linux టెర్మినల్‌లో టైప్ చేయండి:
zImage చేయండి

మరియు ఇది ఇలా ఉండాలి:

arch / arm / boot / zImage సిద్ధంగా ఉంది

3 నిమిషాలు చదవండి