Ažuriranje Linux kernela na novu verziju. Flashiranje kernela Android uređaja Što je kernel mobilnog uređaja

“A ja... perem karburator!”
Vic

Uvod

U vrtiću smo moji istomišljenici i ja secirali skakavce u nadi da ćemo razumjeti njihovu strukturu. U školi su zalemili radio "Rusija". U institutu je došlo vrijeme za automobile čije su matice mnogo puta preuređene. Interesi su se promijenili, ali ponekad se probudi želja za “rastavljanjem”, a danas je usmjerena na Android.

Koliko vam je puta pomoglo posjedovanje Android izvora? Više me se ne može računati. Android je projekt otvorenog koda, ali nažalost imamo samo mogućnost čitanja; Gotovo je nemoguće uređivati ​​Android kod, a da niste Googleov zaposlenik. Oplakujmo ovaj trenutak i preuzmimo repozitorij. Kako to učiniti savršeno je opisano na službenoj web stranici.


Opća arhitektura

Arhitektura Androida može se shematski prikazati na sljedeći način:

Stolna računala i prijenosna računala imaju uspostavljen sustav energetskih načina rada (x86 procesori ih imaju nekoliko): računalo radi „punom brzinom“ kada se nešto radi, a prelazi u energetski učinkovit način rada kada sustav miruje. Prelazak u način mirovanja događa se nakon prilično dugog razdoblja neaktivnosti ili ručno, na primjer, prilikom zatvaranja poklopca prijenosnog računala.

Na telefonima je bio potreban drugačiji mehanizam: glavno stanje sustava je "hibernacija", izlazak iz njega provodi se samo kada je to potrebno. Dakle, sustav može spavati čak i ako je neka aplikacija aktivna. Android je implementirao mehanizam wakelock-a: ako aplikacija (ili upravljački program) radi nešto važno što mora doći do logičnog završetka, on "hvata" wakelock, sprječavajući uređaj da zaspi.

Pokušaji prijenosa wakelock mehanizma u kernel izazvali su otpor mnogih programera. Android programeri riješili su određeni problem čije je rješenje bio određeni mehanizam. Uvjeti zadatka bili su vrlo uski. Ciljana platforma je ARM, pa su korištene njegove značajke: ARM procesori u početku pretpostavljaju česte promjene načina rada “sleep” i “wake”, za razliku od x86. U Android aplikacijama komunicira sa sustavom za upravljanje napajanjem putem PowerManagera, ali što je s Linux klijentskim aplikacijama?

Programeri Androida nisu niti pokušali pronaći neko opće rješenje “za budućnost”, koje bi se zatim bez problema integriralo u glavni kernel, a nisu konzultirali zajednicu kernela Linuxa o ovom problemu. Možete li ih kriviti za ovo? Unatoč svim problemima i raspravama, kao što je gore spomenuto, u jezgri se pojavio API s identičnom funkcionalnošću kao autosleep.

Programeri Android aplikacija rijetko se moraju nositi s wakelockovima, budući da platforma i upravljački programi obrađuju obveze koje su im dodijeljene uzimajući u obzir način "mirovanja". Međutim, poznati PowerManager će vam pomoći da intervenirate u ovom procesu. Inače, autoru pada na pamet samo jedan scenarij: spriječiti da telefon zaspi prilikom pokretanja usluge iz BroadcastReceivera, što rješava pomoćna klasa iz Android Support Library WakefulBroadcastReceiver.

Low Memory Killer

Standardna jezgra Linuxa ima Out of Memory Killer, koji na temelju parametra badness određuje koji proces treba ugasiti:

Badness_for_task = total_vm_for_task / (sqrt(cpu_vrijeme_u_sekundama) *
sqrt(sqrt(cpu_vrijeme_u_minutama)))

Dakle, što više memorije proces troši i što kraće živi, ​​to će imati manje sreće.

Dijagram prikazuje opći Android sustav zapisivanja. Upravljački program za bilježenje omogućuje pristup svakom međuspremniku putem /dev/log/*. Aplikacije im ne pristupaju izravno, već putem knjižnice liblog. Klase Log, Slog i EventLog komuniciraju s bibliotekom liblog. Naredba adb logcat prikazuje sadržaj “glavnog” međuspremnika.

Zaključak

U ovom smo članku ukratko ispitali neke značajke Androida kao Linux sustava. Izostavljeni su neki drugi dijelovi (pmem, RAM konzola, itd.), kao i tako važni aspekti platforme u cjelini, kao što je System Service, proces pokretanja sustava i drugi. Ako je ova tema od interesa, razmotrit ćemo ih u sljedećim člancima.

U nedjelju navečer, Linus Torvalds, roditelj Linuxa i developer kernela operativnog sustava, najavio je izlazak nove verzije Linux kernela 3.10 nakon dva mjeseca rada.

Prema samom programeru, ova jezgra najveća je u smislu inovacija u posljednjih nekoliko godina.

Linus je priznao da je isprva namjeravao objaviti još jedno izdanje kandidata, ali nakon razmišljanja bio je sklon odmah objaviti konačno izdanje pod brojem 3.10. Torvalds je također u svojoj poruci istaknuo da je novi kernel, kao i verzija 3.9, potpuno spreman za svakodnevnu upotrebu.

Osim toga, Linus Torvalds je u najavi RC verzije kernela napisao da je prije uvijek uključivao popis imena ljudi koji su slali određene dijelove koda, ali ovaj put će taj popis biti toliko velik da se ne može dati u cijelosti u jednom listu pošiljke.

Popis glavnih promjena napravljenih na kernelu 3.10:

  • Sada možete spriječiti izvođenje skripti kao programa - funkcionalnost za pokretanje skripti koje sadrže put do tumača u zaglavlju “#!” sada se mogu kompajlirati kao kernel modul;
  • Sustav Bcache koji je razvio i koristi Google je integriran. Bcache vam omogućuje organiziranje predmemoriranja pristupa sporim tvrdim diskovima na brzim SSD diskovima; predmemorija se provodi na razini blok uređaja - i to vam omogućuje ubrzanje pristupa pogonu, bez obzira na datotečne sustave koji se koriste na uređaju;
  • Kernel se može kompajlirati korištenjem Clang prevoditelja zahvaljujući zakrpama koje je pripremio LLVMLinux projekt;
  • Pojavio se dinamički sustav za upravljanje generiranjem prekida vremena. Sada, ovisno o trenutnom stanju, možete mijenjati prekide u rasponu od tisuća otkucaja u sekundi do jednog prekida u sekundi - to vam omogućuje da smanjite opterećenje CPU-a prilikom obrade prekida kada je sustav neaktivan. Trenutno se ova funkcija koristi za sustave u stvarnom vremenu i HPC (računalstvo visokih performansi), ali u sljedećim izdanjima kernela koristit će se i za desktop sustave;
  • Sada je moguće generirati događaj za obavještavanje aplikacije da se približava iscrpljenosti memorije dostupne procesu/sustavu (u cgroups);
  • Profiliranje pristupa memoriji sada je dostupno za perf naredbu;
  • Dodana podrška za RDMA (iSER) protokol u iSCSI podsustav;
  • Postoji novi upravljački program "sinkronizacija" (eksperimentalno). Razvijen je unutar Android platforme i koristi se za sinkronizaciju između drugih upravljačkih programa;
  • Integriran je upravljački program QXL virtualne grafičke kartice (koristi se u virtualizacijskim sustavima za ubrzani grafički izlaz koristeći SPICE protokol);
  • Nove značajke upravljanja napajanjem predstavljene u AMD-ovoj obitelji procesora 16h (Jaguar) sada su podržane;
  • Podrška za ubrzanje video dekodiranja pomoću hardverskog UVD dekodera ugrađenog u moderne AMD GPU-ove dodana je Radeon DRM-u;
  • Pojavio se upravljački program za virtualne video adaptere Microsoft Hyper-V (također postoje poboljšanja u radu Hyper-V općenito);
  • Izvršenje kriptografskih funkcija (sha256, sha512, blowfish, twofish, serpent i camellia) optimizirano je korištenjem AVX/AVX2 i SSE uputa.

Nedavno su nove verzije kernela izdane prilično često. Stabilno izdanje izlazi svakih nekoliko mjeseci. Pa, nestabilni kandidati za izdanja pojavljuju se još češće. Linus Torvalds i mnogi programeri diljem svijeta neprestano rade na poboljšanju novih kernela i dodavanju im sve više i više funkcionalnosti.

Sa svakom novom verzijom, Linux kernel dodaje podršku za nekoliko novih uređaja, kao što su novi procesori, video kartice ili čak zasloni osjetljivi na dodir. Nedavno je podrška za novu opremu znatno poboljšana. Također, novi datotečni sustavi uključeni su u kernel, rad mrežnog stoga je poboljšan, a greške i bugovi su ispravljeni.

Ako želite detaljnije informacije o promjenama na određenoj verziji kernela, pogledajte njen Changelog na kernel.org, au ovom ćemo članku pogledati ažuriranje Linux kernela na najnoviju verziju. Nastojat ću ne vezati upute za određenu verziju kernela; novi kerneli se izdaju prilično često i bit će relevantni za svaki od njih.

Pogledajmo nadogradnju Ubuntu i CentOS kernela. Prvo, pogledajmo kako ažurirati kernel u Ubuntu 16.04.

Prvo da vidimo koji ste kernel instalirali. Da biste to učinili, otvorite terminal i pokrenite:

Na primjer, trenutno koristim verziju 4.3 i mogu ažurirati na najnoviju verziju. Programeri Ubuntua već su se pobrinuli da njihovi korisnici ne kompajliraju kernel ručno i kreirali su deb pakete za novu verziju kernela. Mogu se preuzeti sa službene Canonical web stranice.

Ovdje bih mogao dati wget naredbe za preuzimanje da je verzija kernela poznata, ali u našem slučaju bilo bi bolje koristiti preglednik. Otvorite web stranicu http://kernel.ubuntu.com/~kernel-ppa/mainline/. Ovdje su svi kerneli koje je sastavio Ubuntu tim. Kerneli se kompajliraju i za specifične distribucije, s kodnim nazivom distribucije, i za općenite. Štoviše, kerneli iz Ubuntu 16.10 najvjerojatnije će raditi u 16.04, ali ne biste trebali instalirati kernel iz 9.04 u Ubuntu 16.04.

Pomaknite se do dna, ovdje se nalaze novije verzije kernela:

Osim toga, na samom vrhu nalazi se dnevna/trenutna mapa, koja sadrži najnovije, noćne verzije kernela. Odaberite željenu verziju kernela i preuzmite dvije datoteke linux-headers i linux-image za svoju arhitekturu:

Nakon što je preuzimanje završeno, možete nastaviti s instalacijom. Da biste to učinili, učinite sljedeće u terminalu:

Idite u mapu s instalacijskim paketima, na primjer ~/Downloads:

Pokrenite instalaciju:

Ako ova naredba ne radi, možete krenuti drugim putem. Instalirajte uslužni program gdjebi:

sudo apt-get install gdebi

Zatim ga upotrijebite za instalaciju kernela:

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

Kernel je instaliran, sve što preostaje je ažurirati bootloader:

sudo update-grub

Sada možete ponovno pokrenuti računalo i vidjeti što se dogodilo. Nakon ponovnog pokretanja, pobrinut ćemo se da je ažuriranje Linux kernela na najnoviju verziju bilo uspješno:

Kao što vidite, kernel je uspješno instaliran i radi. Ali nemojte žuriti s uklanjanjem stare verzije kernela; preporučuje se imati nekoliko verzija kernela na sustavu, tako da se u slučaju problema možete podići sa stare radne verzije.

Automatsko ažuriranje kernela Linuxa na Ubuntuu

Gore smo pogledali kako ručno instalirati potrebnu verziju kernela. Ubuntu je prije imao PPA za svakodnevne nadogradnje kernela, ali sada je zatvoren. Stoga možete ažurirati kernel samo preuzimanjem deb paketa i njegovim instaliranjem. Ali sve se to može pojednostaviti pomoću posebne skripte.

Instalirajte skriptu:

cd /tmp
$ git klon git://github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ bash Ubuntu-Mainline-Kernel-Updater/install

Provjera ažuriranja:

KernelUpdateChecker -r jakkety

Opcija -r omogućuje vam da odredite granu distribucije za koju želite tražiti kernele. Kerneli za xenial više nisu izgrađeni, ali kerneli iz sljedeće verzije ovdje će dobro raditi. Dodatno, opcija -no-rc može reći uslužnom programu da ne koristi kandidate za izdanje, a opcija -v navodi točnu verziju kernela koju treba instalirati. Ako vas nije briga za koju distribuciju je kernel, sve dok je najnoviji, koristite opciju --any-release. Skripta će dati sljedeći rezultat:

Prije instaliranja kernela, možete vidjeti detalje otvaranjem datoteke /tmp/kernel-update:

Ovdje možemo vidjeti da je tražen yakkety i da je verzija kernela trenutno 4.7-rc6. Možemo ugraditi:

sudo /tmp/kernel-update

Skripta će nam pokazati verziju trenutnog kernela, kao i verziju kernela koja će biti instalirana, njegov datum izgradnje i druge detalje. Također ćete biti upitani trebate li voditi dnevnik promjena. Slijedi instalacija:

Stare kernele, za svaki slučaj, nemojte brisati (n):

Gotovo, nadogradnja kernela na najnoviju verziju je završena, sada ponovno pokrenite računalo (y):

Provjerimo je li ažuriranje Ubuntu kernela stvarno radilo:

Štoviše, skripta je dodana u pokretanje i sada će automatski provjeravati ažuriranja 60 sekundi nakon prijave. Prečac za automatsko učitavanje nalazi se u datoteci:

vi ~/.config/autostart/KernelUpdate.desktop

Možete ga promijeniti po potrebi ili izbrisati. Ako želite potpuno ukloniti skriptu iz sustava, pokrenite:

rm ~/.config/autostart/KernelUpdate.desktop
$ sudo rm /usr/local/bin/KernelUpdate(Checker,ScriptGenerator)

Ne preuzima se

Ako je došlo do bilo kakvih pogrešaka tijekom instalacije ili jezgra nije ispravno ažurirana i sada se sustav ne pokreće s novom jezgrom, možete koristiti stari kernel. Također, sustav se možda neće pokrenuti ako koristite vlasnički upravljački program za NVIDIA video karticu; u tom slučaju nemojte žuriti s preuzimanjem najnovije verzije kernela; u pravilu postoji podrška za ovaj modul već im je dodano.

A za vraćanje sustava odaberite Napredne opcije za Ubuntu u izborniku Grub:

I pokrenite prethodni pokrenuti kernel:

Nakon preuzimanja ostaje samo ukloniti neispravno instalirani kernel i ponovno ažurirati Grub, zamijeniti željenu verziju kernela umjesto 4.7:

sudo apt uklanjanje linux-header-4.7* linux-image-4.7*

sudo update-grub

Vaš sustav sada se vratio u svoje prethodno stanje. Možete pokušati instalirati stariju verziju kernela ili pokušati ponovno.

Nadogradnja Linux kernela na 4.4 na CentOS-u

Sada pogledajmo kako ažurirati najnoviju verziju Linux kernela u CentOS-u. Upute su testirane na CentOS 7, ali najvjerojatnije će raditi na RedHat 7, Fedora i drugim sličnim distribucijama.

U pravilu, novi kerneli nisu uključeni u službena repozitorija CentOS-a, pa ćemo za dobivanje najnovije stabilne verzije morati dodati ERLepo repozitorij. Ovo je repozitorij komercijalnih paketa (Enterprise Linux Packages), a također ga podržavaju RedHat i Fedora.

Da biste dodali spremište, slijedite ove korake:

Prvo morate uvesti ključ:

rpm --uvoz https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Dodajte repozitorij i potrebne komponente u RHEL/Scientific Linux/CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum instalirajte yum-plugin-fastestmirror

Na Fedori 22 i novijoj verziji:

Više smo puta pisali o prilagođenom firmware-u, root aplikacijama i alternativnim izbornicima za pokretanje. Sve su to standardne teme u Android hakerskoj zajednici, međutim, uz sve navedeno, postoji i nešto poput "prilagođenog kernela", koji može pružiti gotovo neograničene mogućnosti za upravljanje pametnim telefonom i njegovim hardverom na najniža razina. U ovom članku ću vam reći što je to, zašto je potrebno i kako odabrati pravi prilagođeni kernel.

Prilagođeni kernel?

Što je prilagođeni kernel? Kao što svi znamo, Android je kolač koji se sastoji od tri osnovna sloja: jezgre Linuxa, skupa biblioteka i usluga niske razine i virtualnog stroja Dalvik, na čijem se vrhu pokreće grafička ljuska, alati visoke razine i usluge , kao i gotovo sve aplikacije instalirane s marketa. Kreatori većine alternativnih prilagođenih firmvera obično rade samo s gornja dva sloja, dodajući funkcije grafičkoj ljusci (na primjer, gumbe u zastoru), mijenjajući je (motor teme u CyanogenMod), kao i dodajući nove usluge sustava (ekvilajzer u CyanogenMod) i optimiziranje postojećih.

Autori popularnog firmware-a također mijenjaju Linux kernel kad god je to moguće: optimiziraju (izrađuju s agresivnijim oznakama optimizacije prevoditelja), uključuju nove funkcije (na primjer, podršku za Windows ball), a također čine druge promjene, poput mogućnosti podići frekvenciju procesora iznad one koju je dao proizvođač. Često sve to ostaje iza kulisa, a mnogi korisnici prilagođenog firmware-a nisu ni svjesni tih mogućnosti, pogotovo jer isti CyanogenMod dolazi s prilagođenim kernelom samo za ograničen raspon uređaja, za koje i izvorni kod izvornog kernela i mogućnost zamjene su dostupni. Na primjer, gotovo svi CyanogenMod firmware za Motorola pametne telefone koriste standardni kernel - nemoguće ga je zamijeniti vlastitim zbog neprobojne zaštite bootloadera.

Međutim, kernel u pametnim telefonima s otključanim bootloaderom može se zamijeniti odvojeno od glavnog firmvera. I ne samo zamijeniti, već instalirati kernel s ogromnim brojem različitih funkcija koje zahtijevaju određeno tehničko znanje za upravljanje, te stoga obično nisu ugrađene u kernele popularnih firmwarea kao što su CyanogenMod, AOKP i MIUI. Među tim funkcijama možete pronaći podršku za visoke frekvencije procesora, kontrolu gama zaslona, ​​načine rada za uštedu energije, visoko učinkovite upravitelje napajanja i ogroman broj drugih značajki.

U ovom ćemo članku govoriti o tome što nam kreatori prilagođenih kernela mogu ponuditi, razmotriti glavne prilagođene kernele za različite uređaje, a također ćemo pokušati instalirati kernel neovisno o glavnom firmveru i provjeriti sve na vlastitoj koži. Dakle, što programeri alternativnih kernela obično nude?

Pametni kontroler prometa

OMAP35XX SoC-ovi, koji se koriste, primjerice, u Galaxy S II i Galaxy Nexusu, imaju funkciju SmartReflex, koja djeluje kao pametni sustav za podešavanje napona kada se promijeni opterećenje procesora. U osnovi, eliminira potrebu za finim podešavanjem napona od strane korisnika.


Optimizacije

Često je glavni cilj izgradnje prilagođenog kernela optimizacija performansi. Tipično, dobavljač mobilnih uređaja pokušava održati ravnotežu između performansi i stabilnosti, tako da čak i dobre tehnike optimizacije koje mogu značajno povećati brzinu uređaja proizvođač može odbiti samo na temelju toga što su se neke aplikacije nakon njihove uporabe počele rušiti svako deseto lansiranje. Naravno, entuzijastima takve sitnice ne smetaju, a mnogi od njih spremni su primijeniti bilo koje opcije prevoditelja, algoritme za uštedu energije na kernel vlastitog sklopa i podići frekvenciju procesora onoliko koliko uređaj može podnijeti. Među svim tehnikama optimizacije, četiri su najčešće:



Druga vrsta optimizacije: promjena zadanog I/O planera. Situacija na ovom polju je još zanimljivija, jer umjesto da razumiju principe rada planera, neki graditelji kernela jednostavno čitaju dokumente na Internetu o I/O planerima za Linux i izvlače zaključke. Među korisnicima je ovaj pristup još rašireniji. Zapravo, gotovo svi najmoćniji i najinteligentniji planeri za Linux potpuno su neprikladni za Android: dizajnirani su za korištenje s mehaničkim pohranama podataka, u kojima brzina pristupa podacima varira ovisno o položaju glave. Planer koristi različite sheme agregacije zahtjeva ovisno o fizičkoj lokaciji podataka, tako da će zahtjevi za podacima koji su blizu trenutnog položaja glave dobiti veći prioritet. To je potpuno nelogično u slučaju solid-state memorije koja jamči istu brzinu pristupa svim ćelijama. Napredni planeri napravit će više štete nego koristi pametnom telefonu, a oni najspretniji i najprimitivniji pokazat će najbolje rezultate. Linux ima tri slična planera:

  • Noop (bez operacije)- tzv.neplaner. Jednostavan red čekanja FIFO zahtjeva, prvi zahtjev će biti obrađen prvi, drugi drugi, i tako dalje. Dobro prilagođen za solid-state memoriju i omogućuje vam pravednu raspodjelu prioriteta aplikacija za pristup pogonu. Dodatni plus: malo opterećenje procesora zbog vrlo jednostavnog principa rada. Nedostatak: ne uzimaju se u obzir specifičnosti rada uređaja, što može dovesti do kvarova u radu.
  • SIO (jednostavan I/O)- analog planera roka bez uzimanja u obzir blizine sektora jedan drugom, odnosno dizajniran posebno za memoriju u čvrstom stanju. Dvije glavne značajke: prioritet operacija čitanja u odnosu na operacije pisanja i grupiranje operacija po procesu, dodjeljivanje vremenskog odsječka svakom procesu za izvođenje operacija. U pametnim telefonima gdje je važna brzina trenutne aplikacije i prevlast operacija čitanja nad operacijama pisanja, pokazuje vrlo dobre performanse. Dostupno u Leankernelu, Matr1x kernelu za Nexus 4 i SiyahKernel.
  • RED (PROČITAJ PREPIŠI)- planer posebno dizajniran za mobilne uređaje i dodan u kernel prije samo nekoliko mjeseci. Glavni cilj je najprije obraditi zahtjeve za čitanje, ali i podijeliti dovoljno vremena za pisanje zahtjeva. Trenutačno se smatra najboljim planerom za NAND memoriju; koristi se prema zadanim postavkama u Leankernelu i Matr1x.

Vrijedno je reći da gotovo sav standardni firmware i polovica prilagođenih i dalje koriste kernel sa standardnim Linux CFQ planerom, što, međutim, i nije tako loše, jer može ispravno raditi sa SSD diskovima. S druge strane, prekompliciran je, stvara veće opterećenje procesora (a time i baterije) i ne uvažava specifičnosti mobilnog OS-a. Još jedan popularan izbor je Deadline Scheduler, koji je jednako dobar kao SIO, ali je suvišan. Popis dostupnih planera možete pogledati pomoću sljedeće naredbe:

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

Za promjenu se koristi sljedeće (gdje je red naziv planera):

# za i u /sys/block/*/queue/scheduler; do echo row > $1; učinjeno

Neki graditelji kernela također koriste drugu vrstu optimizacije koja se odnosi na I/O. Time se onemogućuje sistemski poziv fsync koji se koristi za prisilno brisanje promijenjenog sadržaja otvorenih datoteka na disk. Postoji mišljenje da će bez fsync-a sustav rjeđe pristupati pogonu i tako uštedjeti vrijeme procesora i bateriju. Prilično kontroverzna izjava: fsync se ne koristi često u aplikacijama i to samo za spremanje stvarno važnih informacija, ali njegovo isključivanje može dovesti do gubitka istih informacija u slučaju pada operativnog sustava ili drugih problema. Mogućnost onemogućavanja fsync-a dostupna je u jezgrama franco.Kernel i GLaDOS, a kontrolira se datotekom /sys/module/sync/parameters/fsync_enabled, u koju trebate napisati 0 da biste onemogućili ili 1 da biste omogućili. Opet, ne preporučuje se korištenje ove značajke.

Dodavanje novih funkcija jezgri

Naravno, uz optimizacije, podešavanja i razne napredne sustave upravljanja hardverom, u prilagođenim jezgrama možete pronaći i potpuno nove funkcionalnosti koje nema u standardnim jezgrama, ali koje mogu biti korisne korisnicima.

To su uglavnom razni upravljački programi i datotečni sustavi. Na primjer, neki kerneli uključuju podršku za CIFS modul, koji vam omogućuje montiranje Windows dijeljenja. Takav modul nalazi se u jezgri Matr1x za Nexus S, faux123 za Nexus 7, SiyahKernel i GLaDOS. Sam po sebi je beskoristan, ali na tržištu postoji nekoliko aplikacija koje vam omogućuju korištenje njegovih mogućnosti.

Još jedna korisna značajka je uključivanje ntfs-3g drajvera u kernel (točnije, u paketu s kernelom; sam drajver radi kao Linux aplikacija), koji je neophodan za montiranje flash diskova formatiranih u NTFS datotečni sustav. Ovaj upravljački program nalazi se u kernelima faux123 i SiyahKernel. Obično se automatski aktivira, ali ako se to ne dogodi, možete koristiti aplikaciju StickMount s tržišta.

Mnoge jezgre također uključuju podršku za takozvanu zram tehnologiju, koja vam omogućuje da rezervirate malu količinu RAM-a (obično 10%) i koristite ga kao komprimirano swap područje. Rezultat je svojevrsno proširenje količine memorije, bez ozbiljnijih posljedica na performanse. Dostupno u Leankernelu, omogućeno korištenjem Trickster MOD-a ili zram enable naredbe.

Posljednje dvije zanimljive značajke su brzo USB punjenje i Sweep2wake. Prvi nije ništa više od prisilne aktivacije načina "brzog punjenja", čak i ako je pametni telefon spojen na USB priključak računala. Način brzog punjenja dostupan je u svim više-manje novim pametnim telefonima, no zbog tehničkih ograničenja ne može se omogućiti istovremeno s pristupom memorijskoj kartici. Funkcija brzog USB punjenja omogućuje vam da uvijek omogućite ovaj način rada, dok onemogućujete pristup pogonu.

Sweep2wake je novi način za buđenje uređaja, koji je izumio autor Breaked-kernela. Njegova poanta je uključivanje pametnog telefona klizanjem prsta preko navigacijskih tipki koje se nalaze ispod ekrana, ili preko samog ekrana. Ovo je stvarno zgodna značajka, ali uključivanjem će senzor ostati aktivan čak i dok uređaj spava, što može značajno isprazniti bateriju.

Overclocking, ušteda napona i energije

Overclocking je popularan ne samo među vlasnicima stolnih i prijenosnih računala, već i među entuzijastima mobilne tehnologije. Poput kamenja x86 arhitekture, procesori i grafičke jezgre mobilnih uređaja su izvrsni. Međutim, sama metoda overclockinga i koraci koji se poduzimaju za njezinu implementaciju su nešto drugačiji. Činjenica je da su standardni upravljački programi za SoC, koji su odgovorni za uštedu energije i promjenu frekvencije procesora, obično zaključani na standardnim frekvencijama, tako da za fino podešavanje morate instalirati ili alternativni upravljački program ili prilagođeni kernel.

Gotovo svi više ili manje kvalitetni i popularni prilagođeni kerneli već uključuju otključane upravljačke programe, tako da se nakon njihove instalacije mogućnost kontrole "snage" procesora značajno proširuje. Obično prilagođeni graditelji kernela rade dvije stvari koje utječu na izbor učestalosti. Ovo je proširenje frekvencijskog raspona izvan inicijalno navedenih - možete postaviti ili višu frekvenciju procesora ili vrlo nisku, što vam omogućuje uštedu baterije i povećanje gradacije frekvencija, na primjer, umjesto tri moguće frekvencije , postoji šest na izbor. Drugi je dodatak mogućnosti podešavanja napona procesora, tako da možete smanjiti napon procesora na niskim frekvencijama kako biste sačuvali napunjenost baterije i povećati ga na visokim frekvencijama kako biste povećali stabilnost.

Sve se to može kontrolirati pomoću dobro poznatog plaćenog uslužnog programa SetCPU ili besplatnog Trickster MOD-a. Preporuke za upravljanje iste su kao i za desktop sustave. Bolje je postaviti donju frekvenciju procesora na minimum, ali ne nižu od 200 MHz (kako bi se izbjegla kašnjenja), gornji prag se postupno povećava dok se testira stabilnost rada, ako padne, preporuča se malo povećati napon za ovu frekvenciju. Ne postoje preporuke za napon, jer je svaki procesor jedinstven i vrijednosti će biti različite za svakoga.

Osim mijenjanja frekvencija, graditelji često dodaju nove algoritme kontrole uštede energije (automatska kontrola frekvencije procesora) u kernel, koji, po njihovom mišljenju, mogu pokazati bolje rezultate u usporedbi sa standardnim. Gotovo svi se temelje na interaktivnom algoritmu koji se standardno koristi u novim verzijama Androida, čija je bit naglo povećati frekvenciju procesora do maksimuma kada se opterećenje poveća, a zatim ga postupno smanjiti na minimum. Zamjenjuje prethodno korišteni OnDemand algoritam, koji je glatko prilagođavao frekvenciju u oba smjera proporcionalno opterećenju, i čini sustav osjetljivijim. Sakupljači alternativnih kernela nude sljedeće algoritme za zamjenu Interactive:

  • SmartAssV2- preispitivanje interaktivnog algoritma s fokusom na uštedu baterije. Glavna razlika je ne povlačiti procesor na visoke frekvencije u slučaju kratkotrajnih naleta opterećenja, za što su dovoljne niske performanse procesora. Zadana vrijednost se koristi u jezgri Matr1x.
  • InteractiveX- podešeni Interaktivni algoritam, čija je glavna značajka zaključavanje procesora na minimalnoj frekvenciji koju odredi korisnik i isključivanje druge jezgre procesora kada se zaslon isključi. Default se koristi u Leankernelu.
  • LulzactiveV2- u biti ponovno izumljen OnDemand. Kada opterećenje procesora premaši navedeno (60% prema zadanim postavkama), algoritam podiže frekvenciju za određeni broj podjela (1 po zadanim postavkama), a smanjuje je kada se opterećenje smanji. Posebno je zanimljiv jer vam omogućuje samostalno postavljanje radnih parametara, stoga je pogodan za okorjele geekove.

Općenito, graditelji kernela jako vole smišljati nove algoritme za uštedu energije zbog jednostavnosti njihove implementacije, tako da možete pronaći desetak drugih. Većina njih je potpuno smeće, a pri odabiru planera trebali biste se voditi pravilom: ili jedan od tri gore opisana ili standardni Interactive, koji je, usput rečeno, vrlo dobar. Možete napraviti izbor koristeći isti Trickster MOD.

Upravljačka sučelja

Najpopularniji prilagođeni kerneli uključuju nekoliko mehanizama za finu kontrolu različitih parametara upravljačkog programa, od kojih su najčešći ColorControl, GammaControl, SoundControl i TempControl.

Prva dva sučelja dostupna su gotovo posvuda, uključujući CyanogenMod kernele, druga dva su dostupna u Leankernelu i možda u drugima. Na ovaj ili onaj način, svi se mogu kontrolirati pomoću Trickster MOD-a.

Jezgre

Koju jezgru odabrati? Na ovo pitanje nema jasnog odgovora, i to ne zato što “svakome svoje”, već zato što na svijetu postoji ogroman broj Android uređaja i gotovo isto toliko različitih kernela. Međutim, postoji nekoliko popularnih kernela koji se razvijaju za nekoliko uređaja odjednom. Ovako ili onako, mnoge sam od njih spomenuo u cijeloj priči, a ovdje ću ih ukratko opisati.

  • Leankernel je jezgra za Galaxy Nexus, Nexus 7 i Galaxy S III. Glavni naglasak pri razvoju je na jednostavnosti i brzini rada. Algoritam za uštedu energije: InteractiveX V2, I/O planer: ROW, sva gore navedena kontrolna sučelja, podrška za brzo USB punjenje, Swap i zram, fleksibilne opcije overclockinga za CPU i GPU. Jedna od najboljih jezgri. Prilagodljivo korištenjem Trickster MOD-a.
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - kernel za Nexus S i Nexus 4. Jednostavan i neopterećen kernel. Podrška za CPU i GPU overclocking, GammaControl, Fast USB Charge, Sweep2wake, I/O planere: SIO, ROW i FIOPS. Podešavanje performansi. Prilagodljivo korištenjem Trickster MOD-a.
  • Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) - jednostavna i neopterećena jezgra za Nexus 4 i HTC One X. Optimizacije za Snapdragon S4 i NVIDIA Tegra 3, redizajnirani način rada za uštedu energije za Tegra 3 , mogućnost overclockinga, algoritam za uštedu energije: podešen OnDemand (također dostupan Interactive).
  • SiyahKernel - kernel za Galaxy S II i S III. Fleksibilne mogućnosti overclockinga, automatska kalibracija baterije, poboljšani upravljački program za zaslon osjetljiv na dodir, algoritmi za uštedu energije: smartassV2 i lulzactiveV2, I/O planeri: noop, rok, CFQ, BFQV3r2 (zadano), V(R), SIO. CIFS i NTFS upravljački programi (s automatskim montiranjem). Može se konfigurirati pomoću ExTweaksa.
  • franco.Kernel - kernel za Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One i One X.

Mogućnosti kernela uvelike se razlikuju od uređaja do uređaja, tako da ćete morati provjeriti detalje na web mjestu. Međutim, fleširanjem ove jezgre dobit ćete mogućnost overkloka, podešavanja drajvera, izvrsne performanse, kao i podršku za razne algoritme za uštedu energije i planere. Zapravo, kernel uključuje gotovo sva podešavanja opisana u članku. Smatra se jednim od najboljih dostupnih kernela. Postoji aplikacija za automatsko ažuriranje franko.Kernel Updater. Možete ga konfigurirati koristeći Trickster MOD.

Kako instalirati?

Sve jezgre distribuiraju se u standardnim Android ZIP arhivama, koje bi se trebale flashati kroz konzolu za oporavak na isti način kao i alternativni firmware. Obično su kerneli kompatibilni s bilo kojim firmwareom, tako da kada odaberete pravi kernel, možete ga sigurno instalirati. Jedina stvar na koju biste trebali obratiti pozornost je verzija Androida s kojom je kernel kompatibilan. Može biti prikladan za sve verzije Androida dostupne za uređaj ili raditi samo s jednom (programer obično izričito govori o tome). Prije flashanja firmvera, svakako napravite sigurnosnu kopiju trenutnog firmvera pomoću iste konzole za oporavak. Ako nešto pođe po zlu, uvijek se možete vratiti.

zaključke

Kao što vidite, prilagođeni kerneli imaju mnoge prednosti u odnosu na kernele koji se koriste u standardnom firmware-u ili firmware-u treće strane. A što je još važnije je da ne morate znati sve zamršenosti Androida da biste ih koristili; samo preuzmite i instalirajte ZIP arhivu.

Korisnici mobilnih uređaja nisu uvijek zadovoljni radom i mogućnostima svojih gadgeta. Iz tog razloga korisnici traže najbolji način flashanja jezgre operativnog sustava Android. S jedne strane, ovu radnju možete jednostavno izvesti sa svojim tabletom ili pametnim telefonom. Tisuće korisnika uspješno je flashalo kernel bez ikakvih poteškoća ili problema. No, s druge strane, svaka pogreška tijekom ovog procesa može dovesti do problema, uključujući kvar gadgeta i potrebu za skupim servisom. U različitim fazama postoji rizik od odabira pogrešne verzije firmvera kernela, koju su izradili nekvalificirani programeri ili nije prikladna za vaš mobilni uređaj. Preporučujemo da budete krajnje oprezni pri izvođenju bilo kakvih radnji koje unose promjene u softverski dio uređaja na niskoj razini. Nakon uspješnog flashanja kernela, mnogi se ljudi osjećaju kao da u rukama drže potpuno novi uređaj. Napredni korisnici tako mogu prilagoditi gadget svojim potrebama i preferencijama, a pritom stječu nova znanja i iskustva o modernim mobilnim tehnologijama.

Jezgra operativnog sustava Android i njegov firmware

Što je srž mobilnog uređaja?

Jezgra operativnog sustava osnova je softvera koji kontrolira hardver uređaja. Osnovni parametri bilo kojeg gadgeta ovise o tome. Valja napomenuti da se sastoji od tri međusobno povezane komponente - Linux kernela, Dalvik vertikalnog stroja i raznih usluga i biblioteka niske razine. Ako govorimo o prilagođenom firmveru, tada su pogođene samo dvije komponente koje vam omogućuju dodavanje novih usluga sustava, optimizaciju postojećih parametara i promjenu grafičke ljuske.

Oni koji žele instalirati kernel na Android trebali bi razumjeti da postoji razlika između pojmova prilagođenog kernela i prilagođenog firmvera. Potonji je neslužbena verzija softvera. Prilagođeni firmver razvio je tim stručnjaka za određene uređaje. Prilagođena jezgra temelji se na jezgri Linuxa, predstavljajući njegovu neslužbenu verziju. Često prilagođeni kernel dolazi u paketu s firmwareom. Ali može se instalirati zasebno nakon promjene firmvera. U biti, ne zamjenjuje nativnu jezgru mobilnog uređaja, što je krajnji cilj takvog rada.

Firmver jezgre Android uglavnom se radi kako bi se povećalo vrijeme rada uređaja za nekoliko sati podešavanjem parametara potrošnje energije. Možda je to glavni razlog zašto korisnici provode složene pretvorbe softvera svojih gadgeta. Firmware će vam omogućiti promjenu video čipa bez posljedica za vaš pametni telefon ili tablet. Napredni korisnici na taj način prilagođavaju zaslon, mijenjajući njegov prikaz boja i osjetljivost. Kernel firmware omogućuje vam poboljšanje zvuka uređaja, ažuriranje upravljačkih programa i uvođenje podrške za nestandardne vanjske gadgete.

Prije fleširanja kernela preporučujemo da provjerite jeste li odabrali dobru verziju koju su izradili iskusni programeri. Osim toga, važno je provjeriti je li prikladan za vašu verziju firmvera za Android. Preporučljivo je pročitati recenzije ljudi koji su uspjeli instalirati odgovarajuću verziju kernela na svoj mobilni telefon. Recenzije mogu sadržavati važne informacije o problemima koji se mogu pojaviti u fazi firmvera ili daljnjeg rada uređaja.

Treperi gadget putem Fastboota

Svoj Android uređaj možete ponovno flashirati pomoću Fastboota. Ali prvo morate instalirati uslužni program na svoj gadget. Postoje dvije verzije ovog programa. Prvi uključuje preuzimanje Fastboota u kombinaciji sa službenim Android SDK programom. Druga verzija uključuje zasebno preuzimanje uslužnog programa.

Preporučujemo da provjerite vidi li vaš mobilni uređaj prijenosno ili računalo. Da biste to učinili morate učiniti . Nakon preuzimanja i instaliranja uslužnog programa Fastboot na računalu ili prijenosnom računalu s operativnim sustavom Windows i povezivanja pametnog telefona, morate otvoriti naredbeni redak. Da biste to učinili, otvorite Pretraživanje. U sustavu Windows 8, da biste to učinili, samo pomaknite pokazivač miša na desnu stranu zaslona i odaberite odgovarajući odjeljak. U Search morate unijeti "cmd", nakon čega će se ispred vas pojaviti naredbeni redak. Uređaj treba prebaciti u način rada firmvera. Zatim trebate unijeti naredbu koja će testirati interakciju između vašeg računala i mobilnog uređaja:

uređaji za brzo pokretanje

Ako sve radi, trebate preuzeti ispravnu verziju boot.img firmvera kernela. Ne preporučujemo bljeskanje kernela izvornog firmvera jer to može dovesti do problema s radom pametnog telefona. Datoteku treba spremiti na prethodno stvorenu particiju na pogonu C pod nazivom "Android". Nakon toga morate pokrenuti mobilni uređaj u Fastboot i spojiti ga na računalo. Na zaslonu će se pojaviti poruka “Fastboot USB”.

  • cd C:\Android.
  • brzo pokretanje flash boot boot.img.
  • brzo pokretanje brisanje predmemorije.
  • brzo pokretanje ponovno pokretanje.

Vrlo je važno sve riječi unijeti ispravno, uzimajući u obzir velika i mala slova i razmake. Naredba cd otvara traženu mapu koja sadrži potrebne datoteke. Nakon toga dolazi do bljeskanja. Fastboot erase cache naredba briše particiju Cache. Posljednja naredba - fastboot reboot ponovno pokreće uređaj iz načina firmvera u normalan. Ako ste sve gore navedene korake izvršili ispravno, proces će biti uspješan.

Firmware pomoću ClockworkMod Recovery

ClockworkMod Recovery (ili skraćeno CWM) je sustav za oporavak koji se koristi umjesto originalnog tvorničkog Recoveryja. CWM vam omogućuje instaliranje novog firmvera na mobilni uređaj, bljeskanje kernela, sigurnosne kopije datoteka i vraćanje ljuske. Takav sustav može raditi s datotekama ažuriranja firmvera u zip formatu. Instaliran je ClockworkMod koji zamjenjuje tvornički Recovery. Da biste pokrenuli CWM, morate znati kombinaciju tipki koja je prikladna za vaš gadget. U većini slučajeva ovo je kombinacija gumba za smanjivanje glasnoće i gumba za napajanje koje treba pritisnuti dok se uređaj pokreće.

Za flash firmware kernela preuzmite arhivu s zip ekstenzijom. Mora sadržavati mapu META-INF. Zatim postoje dvije mogućnosti. U prvom slučaju morate navesti datoteku firmvera. Druga opcija uključuje postavljanje datoteke firmvera u mapu /sdcard. Nakon toga trebate aktivirati ClockworkMod Recovery, tamo pronaći funkciju Apply update from sdcard i navesti potrebnu datoteku.

Valja napomenuti da je izbornik ClockworkMod Recovery prikladan i razumljiv većini korisnika. Uz ovaj sustav oporavka za firmware, možete koristiti TWRP Recovery. Ovaj je alat prikladan i popularan među korisnicima Androida. Glavna stvar je odabrati ispravnu datoteku firmvera.

Treptanje jezgre Androida postupak je kojem ne preporučujemo pribjegavanje ako ste u potpunosti zadovoljni radom gadgeta. Takve radnje potaknute su željom za poboljšanjem performansi mobilnog telefona ili tableta. Napredni korisnici imaju mogućnost podešavanja parametara na nižoj razini. Ali bez određenih znanja i objektivnih razloga, bolje je ne mijenjati softverski dio mobilnog uređaja, jer je to povezano s rizikom i kvarovima u njegovom radu.