Kā izveidot MediaTek Android Kernal no avota



Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai

Daudziem Android lietotājiem patīk instalēt pielāgotus kodolus, kas var piedāvāt virkni veiktspējas un akumulatora darbības laiku uzlabojošu uzlabojumu. Bet, ja nevarat atrast sev tīkamu kodolu vai neviens no tiem nav pieejams jūsu ierīcei, dažreiz jums vienkārši jāveido savs. Šajā rokasgrāmatā galvenā uzmanība tiks pievērsta tam, kā izveidot kodolu no Mediatek ierīču avota.



Lūdzu, brīdiniet, ka šī rokasgrāmata nav paredzēta iesācējiem, tā ir paredzēta cilvēkiem ar izpratni par Android ROM pielāgošanu, darbu Linux terminālos un kopumā nedaudz darba zināšanu par to, ko mēs darām.



Prasības:

  1. Linux operētājsistēma
  2. Dažas pamatzināšanas un kā strādāt ar Makefiles
  3. Android NDK

Lai sāktu, jums būs jālejupielādē šādas Linux pakotnes:



  • Python
  • GNU Make
  • JDK
  • Ej

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev: i386 x11proto-core-dev libx11-dev: i386 libreadline6-dev: i386 libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev: i386 git-core lzop ccache gnupg flexibison gperf build-essential zip curl zlib1g-dev zlib1g-dev: i386 libc6-lib libnz1.0 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 xsltproc readline-common libreadline6-dev libreadline -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-dev libeswsdk-lib p 8-dev python 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

Tagad dodieties uz etc / udev / rules.d / 51-android.rules:

# ADB aizraušanās protokols (Nexus One)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e12 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# ātrās sāknēšanas protokols uz aizraušanos (Nexus One)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”0bb4 ″, ATTR {idProduct} ==” 0fff ”, MODE =” 0600 ″, ĪPAŠNIEKS = ””
# adb protokols ierīcē crespo / crespo4g (Nexus S)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e22 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# fastboot protokols ierīcē crespo / crespo4g (Nexus S)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e20 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# adb protokols par stingray / wingray (Xoom)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”22b8 ″, ATTR {idProduct} ==” 70a9 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# ātrās sāknēšanas protokols par stingray / wingray (Xoom)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 708c ”, MODE =” 0600 ”, ĪPAŠNIEKS =” ”
# adb protokols uz maguro / toro (Galaxy Nexus)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”04e8 ″, ATTR {idProduct} ==” 6860 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# ātrās sāknēšanas protokols uz maguro / toro (Galaxy Nexus)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e30 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# adb protokols pandā (PandaBoard)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d101 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# adb protokols pandā (PandaBoard ES)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” d002 ″, MODE = ”0600”, ĪPAŠNIEKS = ””
# ātrās sāknēšanas protokols uz pandas (PandaBoard)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d022 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# usbboot protokols uz pandas (PandaBoard)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d00f ”, MODE =” 0600 ”, ĪPAŠNIEKS =” ”
# usbboot protokols uz pandas (PandaBoard ES)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d010 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# adb protokols grupētājā / tilapijā (Nexus 7)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e42 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# ātrās sāknēšanas protokols grupētājā / tilapijā (Nexus 7)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e40 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# adb protokols mantā (Nexus 10)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4ee2 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”
# ātrās sāknēšanas protokols mantā (Nexus 10)
APAKŠSISTĒMA == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4ee0 ″, MODE = ”0600 ″, ĪPAŠNIEKS =” ”



Un bash.rc:

eksportēt USE_CCACHE = 1
Tagad beidzot:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Tāpēc tagad mēs esam gatavi izveidot būvēšanas vidi. Terminālā ierakstiet:

eksportēt TARGET_BUILD_VARIANT = lietotājs TARGET_PRODUCT = devicename MTK_ROOT_CUSTOM = .. / mediatek / custom / TARGET_KERNEL_V
Lūk, ko šīs komandas darīs:

BUILD_VARIANT: norāda, kam paredzēts būvēt kodolu.
TARGET_PRODUCT / TARGET_KERNEL_PRODUCT: norāda Linux, kurus ierīces failus lietot.
MTK_ROOT_CUSTOM: norāda mapi mediatek / custom. atcerieties, ka šī mide ir tajā pašā direktorijā, kurā atrodas arī kodola avots.
PATH: jūsu rīku ķēdes izpildāmie faili tiek iestatīti uz jūsu ceļa.
CROSS_COMPILE: Krustu kompilators ir kompilators, kas spēj izveidot izpildāmu kodu citai platformai, nevis tai, kurā darbojas kompilators. Instrumentu ķēde atvieglo šo funkciju
ARCH = arm, ARM ir datorsprocesoru instrukciju kopu arhitektūras saime, kuras pamatā ir Lielbritānijas uzņēmuma ARM Holdings izstrādāta samazinātu instrukciju kopu skaitļošanas (RISC) arhitektūra. ARM tiek izmantots arī Android.

Tātad, ievadot terminālā “eksportēt ARCH = arm”, mēs Linux sakām, ka mēs veidojam ARM arhitektūru.

Tāpēc tagad mēs esam gatavi sākt kodola konfigurēšanu. Jums jābūt ļoti uzmanīgam, jo ​​kodols būtībā ir tālruņa kontrolieris. Tāpēc vienkārši uzmanīgi sekojiet līdzi.


Bāzes konfigurāciju, visticamāk, atradīsit kernel_source / mediatek / config / devicename / autoconfig / kconfig / platform.
Mēs varam izmantot šo bāzes konfigurāciju un izveidot to ar dažādām prasībām, piemēram, iespējotas vai atspējotas SELinux atļaujas. Jūs vienmēr varat vienkārši izveidot bāzes konfigurāciju no jauna, bet es to tiešām neiesaku.

Tāpēc tagad ievadīsim Linux terminālu:

cd kodola_avots
cp mediatek / config / devicename / autoconfig / kconfig / platform .config
padarīt menuconfig

Tādējādi tiks izveidots grafisks interfeiss, kas ļaus kodolam pievienot funkcijas. Piemēram, varat pielāgot I / O grafiku, CPU vadītājus, GPU frekvenci utt.
Kad esat pielāgojis vēlamos iestatījumus, esat gatavs kompilēt kodolu. Tāpēc ierakstiet Linux terminālu:
padarīt zImage

Un tam jāatgriež kaut kas līdzīgs:

arch / arm / boot / zAttēls ir gatavs

3 minūtes lasīts