Vdelana programska oprema na jedru 3.10 65 w3psit3-dns.com Posodabljanje jedra Linuxa na novo različico. Utripanje pripomočka prek Fastboot

V zadnjem času so bile precej pogosto izdane nove različice jeder. Stabilna izdaja izide vsakih nekaj mesecev. No, nestabilni kandidati za izdaje se pojavljajo še pogosteje. Linus Torvalds in številni razvijalci po vsem svetu si nenehno prizadevajo izboljšati nova jedra in jim dodati vedno več funkcionalnosti.

Z vsako novo različico jedro Linuxa doda podporo za več novih naprav, kot so novi procesorji, video kartice ali celo zasloni na dotik. Nedavno se je podpora za novo opremo močno izboljšala. Prav tako so v jedro vključeni novi datotečni sistemi, izboljšano je delovanje omrežnega sklada ter odpravljene napake in napake.

Če želite podrobnejše informacije o spremembah določene različice jedra, si oglejte njen dnevnik sprememb na kernel.org, v tem članku pa si bomo ogledali posodobitev jedra Linuxa na najnovejšo različico. Poskušal bom navodila ne vezati na določeno različico jedra; nova jedra se izdajajo precej pogosto in bodo pomembna za vsako od njih.

Oglejmo si nadgradnjo jedra Ubuntu in CentOS. Najprej si poglejmo, kako posodobiti jedro v Ubuntu 16.04.

Najprej poglejmo, katero jedro imate nameščeno. Če želite to narediti, odprite terminal in zaženite:

Na primer, trenutno uporabljam različico 4.3 in lahko posodobim na najnovejšo različico. Razvijalci Ubuntuja so že poskrbeli, da njihovi uporabniki jedra ne prevajajo ročno in so ustvarili deb pakete za novo različico jedra. Prenesete jih lahko z uradne spletne strani Canonical.

Tukaj bi lahko zagotovil ukaze wget za prenos, če bi bila znana različica jedra, vendar bi bilo v našem primeru bolje uporabiti brskalnik. Odprite spletno mesto http://kernel.ubuntu.com/~kernel-ppa/mainline/. Tukaj so vsa jedra, ki jih je sestavila ekipa Ubuntu. Jedra so sestavljena tako za posebne distribucije, s kodnim imenom distribucije, kot za splošne. Poleg tega bodo jedra iz Ubuntu 16.10 najverjetneje delovala v 16.04, vendar ne smete namestiti jedra iz 9.04 v Ubuntu 16.04.

Pomaknite se na dno, kjer se nahajajo novejše različice jeder:

Poleg tega je čisto na vrhu dnevna/trenutna mapa, ki vsebuje najnovejše, nočne gradnje jedra. Izberite želeno različico jedra in prenesite dve datoteki linux-headers in linux-image za vašo arhitekturo:

Ko je prenos končan, lahko nadaljujete z namestitvijo. Če želite to narediti, v terminalu naredite naslednje:

Pojdite v mapo z namestitvenimi paketi, na primer ~/Downloads:

Zaženite namestitev:

Če ta ukaz ne deluje, lahko greste drugače. Namestite pripomoček gdebi:

sudo apt-get install gdebi

Nato ga uporabite za namestitev jedra:

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

Jedro je nameščeno, vse kar ostane je posodobitev zagonskega nalagalnika:

sudo update-grub

Zdaj lahko znova zaženete računalnik in vidite, kaj se je zgodilo. Po ponovnem zagonu bomo poskrbeli, da je bila posodobitev jedra Linuxa na najnovejšo različico uspešna:

Kot lahko vidite, je bilo jedro uspešno nameščeno in deluje. Vendar ne hitite z odstranitvijo stare različice jedra; priporočljivo je, da imate v sistemu več različic jedra, tako da se lahko v primeru težav zaženete iz stare delujoče različice.

Samodejna posodobitev jedra Linuxa na Ubuntu

Zgoraj smo pogledali, kako ročno namestiti zahtevano različico jedra. Ubuntu je prej imel PPA za dnevne gradnje jedra, vendar je zdaj zaprt. Zato lahko posodobite jedro samo tako, da prenesete paket deb in ga namestite. Toda vse to je mogoče poenostaviti s posebnim skriptom.

Namestite skript:

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

Preverjanje posodobitev:

KernelUpdateChecker -r yakkety

Možnost -r vam omogoča, da določite distribucijsko vejo, za katero želite iskati jedra. Jedra za xenial niso več zgrajena, vendar bodo jedra iz naslednje različice tukaj dobro delovala. Poleg tega lahko z možnostjo -no-rc naročite pripomočku, naj ne uporablja kandidatov za izdajo, možnost -v pa poda točno različico jedra, ki bo nameščena. Če vam ni vseeno, za katero distribucijo je jedro, če je najnovejše, uporabite možnost --any-release. Skript bo ustvaril naslednji rezultat:

Pred namestitvijo jedra si lahko ogledate podrobnosti tako, da odprete datoteko /tmp/kernel-update:

Tukaj lahko vidimo, da je bil preiskan yakkety in da je različica jedra trenutno 4.7-rc6. Namestimo lahko:

sudo /tmp/kernel-update

Skript nam bo pokazal različico trenutnega jedra, pa tudi različico jedra, ki bo nameščeno, datum gradnje in druge podrobnosti. Vprašani boste tudi, ali morate voditi dnevnik sprememb. Sledi namestitev:

Stara jedra, za vsak slučaj, ne izbrišite (n):

Končano, nadgradnja jedra na najnovejšo različico je končana, zdaj znova zaženite računalnik (y):

Preverimo, ali je posodobitev jedra Ubuntu dejansko delovala:

Poleg tega je bil skript dodan v zagon in bo zdaj samodejno preverjal posodobitve 60 sekund po prijavi. Bližnjica za samodejno nalaganje je v datoteki:

vi ~/.config/autostart/KernelUpdate.desktop

Po potrebi ga lahko spremenite ali izbrišete. Če želite skript popolnoma odstraniti iz sistema, zaženite:

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

Ne prenaša

Če je med namestitvijo prišlo do napak ali jedro ni bilo pravilno posodobljeno in se zdaj sistem ne zažene z novim jedrom, lahko uporabite staro jedro. Poleg tega se sistem morda ne bo zagnal, če uporabljate lastniški gonilnik za video kartico NVIDIA; v tem primeru ne hitite s prenosom najnovejše različice jedra; praviloma je podpora za ta modul jim je že dodal.

Če želite obnoviti sistem, izberite Napredne možnosti za Ubuntu v meniju Grub:

In zaženite prejšnje delujoče jedro:

Po prenosu ostane le, da odstranite nepravilno nameščeno jedro in znova posodobite Grub, zamenjajte želeno različico jedra namesto 4.7:

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

sudo update-grub

Vaš sistem je zdaj nazaj v prejšnje stanje. Lahko poskusite namestiti starejšo različico jedra ali poskusite znova.

Nadgradnja jedra Linuxa na 4.4 na CentOS

Zdaj pa poglejmo, kako posodobiti najnovejšo različico jedra Linuxa v CentOS. Navodila so bila testirana na CentOS 7, vendar bodo najverjetneje delovala na RedHat 7, Fedora in drugih podobnih distribucijah.

Nova jedra praviloma niso vključena v uradne repozitorije CentOS, zato bomo morali za pridobitev najnovejše stabilne različice dodati repozitorij ERLepo. To je repozitorij komercialnih paketov (Enterprise Linux Packages) in ga podpirata tudi RedHat in Fedora.

Če želite dodati repozitorij, sledite tem korakom:

Najprej morate uvoziti ključ:

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

Dodajte repozitorij in potrebne komponente v RHEL/Scientific Linux/CentOS-7:

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

yum namestite yum-plugin-fastestmirror

Na Fedori 22 in novejših:

"Jaz pa ... operem uplinjač!"
Šala

Uvod

V vrtcu smo s somišljeniki secirali kobilice v upanju, da bomo razumeli njihovo zgradbo. V šoli so spajkali radio "Rusija". Na inštitutu je bil čas za avtomobile, ki so jim večkrat prepravljali matice. Zanimanja so se spremenila, vendar se včasih prebudi želja po "razstavljanju", ki je danes usmerjena v Android.

Kolikokrat so vam že pomagali viri za Android? Ne morem se več šteti. Android je odprtokodni projekt, vendar imamo na žalost samo možnost branja; Skoraj nemogoče je urejati kodo Android, ne da bi bili zaposleni pri Googlu. Žalujmo za tem trenutkom in prenesimo repozitorij. Kako to storiti, je natančno opisano na uradni spletni strani.


Splošna arhitektura

Arhitekturo Androida lahko shematično prikažemo na naslednji način:

Namizni in prenosni računalniki imajo vzpostavljen sistem energijskih načinov (procesorji x86 jih imajo več): računalnik teče »na polno«, ko se nekaj dela, in preklopi v energijsko varčen način, ko sistem miruje. Prehod v način "mirovanja" se pojavi po precej dolgem obdobju nedejavnosti ali ročno, na primer pri zapiranju pokrova prenosnika.

Na telefonih je bil potreben drugačen mehanizem: glavno stanje sistema je "hibernacija", izhod iz njega se izvede le, ko je to potrebno. Tako lahko sistem spi tudi, če je neka aplikacija aktivna. Android ima implementiran mehanizem wakelock: če aplikacija (ali gonilnik) počne nekaj pomembnega, kar mora doseči svoj logični zaključek, "zaseže" wakelock in prepreči, da bi naprava zaspala.

Poskusi prenosa mehanizma wakelock v jedro so povzročili odpor številnih razvijalcev. Programerji za Android so rešili določen problem, katerega rešitev je bil določen mehanizem. Pogoji naloge so bili zelo ozki. Ciljna platforma je ARM, zato so bile uporabljene njene lastnosti: procesorji ARM na začetku predvidevajo pogoste spremembe v načinih delovanja »sleep« in »wake«, za razliko od x86. V aplikacijah Android komunicirajo s sistemom za upravljanje porabe prek PowerManagerja, kaj pa odjemalske aplikacije Linux?

Razvijalci Androida sploh niso poskušali najti splošne rešitve »za prihodnost«, ki bi bila potem brezhibno integrirana v glavno jedro, in se o tem problemu niso posvetovali s skupnostjo jedra Linuxa. Jim lahko zamerite to? Kljub vsem težavam in razpravam, kot je navedeno zgoraj, se je v jedru pojavil API z enako funkcionalnostjo kot autosleep.

Programerjem aplikacij za Android se redko ukvarjajo z wakelocki, saj platforma in gonilniki obdelujejo obveznosti, ki so jim dodeljene, ob upoštevanju načina "mirovanja". Vendar pa vam bo znani PowerManager pomagal posredovati v tem procesu. Mimogrede, avtor lahko razmišlja le o enem scenariju: preprečiti, da bi telefon zaspal ob zagonu storitve iz BroadcastReceiverja, kar rešuje pomožni razred iz knjižnice Android Support WakefulBroadcastReceiver.

Low Memory Killer

Standardno jedro Linuxa ima Out of Memory Killer, ki na podlagi parametra slabosti določi proces, ki ga je treba uničiti:

Badness_for_task = total_vm_for_task / (sqrt(cpu_time_in_seconds) *
sqrt(sqrt(cpu_čas_v_ minutah)))

Tako več pomnilnika proces porabi in krajši kot je življenjska doba, manj sreče bo imel.

Diagram prikazuje splošni sistem beleženja Android. Gonilnik beleženja omogoča dostop do vsakega medpomnilnika prek /dev/log/*. Aplikacije do njih ne dostopajo neposredno, ampak prek knjižnice liblog. Razredi Log, Slog in EventLog komunicirajo s knjižnico liblog. Ukaz adb logcat prikazuje vsebino »glavnega« medpomnilnika.

Zaključek

V tem članku smo na kratko preučili nekatere funkcije Androida kot sistema Linux. Izpuščeni so nekateri drugi deli (pmem, konzola RAM itd.), pa tudi tako pomembni vidiki platforme kot celote, kot so sistemske storitve, postopek zagona sistema in drugi. Če vas ta tema zanima, jih bomo obravnavali v naslednjih člankih.

V nedeljo zvečer je Linus Torvalds, starš Linuxa in razvijalec jedra operacijskega sistema, po dveh mesecih dela napovedal izdajo nove različice jedra Linuxa 3.10.

Po mnenju samega razvijalca je to jedro največje v smislu inovacij v zadnjih nekaj letih.

Linus je priznal, da je sprva nameraval izdati drugega kandidata za izdajo, vendar je bil po premisleku nagnjen k takojšnji izdaji končne izdaje s številko 3.10. Torvalds je v svojem sporočilu tudi zapisal, da je novo jedro, tako kot različica 3.9, popolnoma pripravljeno za vsakodnevno uporabo.

Poleg tega je Linus Torvalds v napovedi RC različice jedra zapisal, da je prej vedno vključil seznam imen ljudi, ki so poslali določene dele kode, tokrat pa bo ta seznam tako velik, da ga ni bilo mogoče dano v celoti v pošiljkah na enem listu.

Seznam večjih sprememb jedra 3.10:

  • Zdaj lahko preprečite, da bi se skripti izvajali kot programi - funkcionalnost za zagon skriptov, ki vsebujejo pot do tolmača v glavi “#!”, je zdaj mogoče prevesti kot modul jedra;
  • Integriran je sistem Bcache, ki ga je razvil in uporablja Google. Bcache vam omogoča organiziranje predpomnjenja dostopa do počasnih trdih diskov na hitrih pogonih SSD; predpomnjenje se izvaja na ravni blokovne naprave - in to vam omogoča, da pospešite dostop do pogona, ne glede na datotečne sisteme, ki se uporabljajo v napravi;
  • Jedro je mogoče prevesti s prevajalnikom Clang zahvaljujoč popravkom, ki jih je pripravil projekt LLVMLinux;
  • Pojavil se je dinamični sistem za nadzor generiranja časovnih prekinitev. Zdaj lahko, odvisno od trenutnega stanja, spremenite prekinitve v razponu od tisoč taktov na sekundo do ene prekinitve na sekundo - to vam omogoča, da zmanjšate obremenitev CPU pri obdelavi prekinitev, ko je sistem neaktiven. Trenutno se ta funkcija uporablja za sisteme v realnem času in HPC (visoko zmogljivo računalništvo), vendar bo v naslednjih izdajah jedra uporabljena tudi za namizne sisteme;
  • Zdaj je mogoče ustvariti dogodek za obvestilo aplikaciji, da se bliža izčrpanosti pomnilnika, ki je na voljo procesu/sistemu (v cgroups);
  • Profiliranje dostopa do pomnilnika je zdaj na voljo za ukaz perf;
  • Dodana podpora za protokol RDMA (iSER) v podsistem iSCSI;
  • Obstaja nov gonilnik "Sync" (poskusno). Razvit je bil v okviru platforme Android in se uporablja za sinhronizacijo med drugimi gonilniki;
  • Integriran je gonilnik virtualne grafične kartice QXL (uporablja se v virtualizacijskih sistemih za pospešen grafični izhod z uporabo protokola SPICE);
  • Nove funkcije za upravljanje porabe energije, uvedene v AMD-jevi družini procesorjev 16h (Jaguar), so zdaj podprte;
  • Podpora za pospeševanje video dekodiranja z uporabo strojnega dekoderja UVD, vgrajenega v sodobne grafične procesorje AMD, je bila dodana v Radeon DRM;
  • Pojavil se je gonilnik za virtualne video kartice Microsoft Hyper-V (obstajajo tudi izboljšave v delovanju Hyper-V na splošno);
  • Izvajanje kriptografskih funkcij (sha256, sha512, blowfish, twofish, serpent in camellia) je optimizirano z uporabo navodil AVX/AVX2 in SSE.

Več kot enkrat smo pisali o vdelani programski opremi po meri, korenskih aplikacijah in alternativnih zagonskih menijih. Vse to so standardne teme v hekerski skupnosti Android, vendar poleg vsega naštetega obstaja tudi nekaj, kot je "jedro po meri", ki lahko nudi skoraj neomejene možnosti za upravljanje pametnega telefona in njegove strojne opreme na najnižja raven. V tem članku vam bom povedal, kaj je to, zakaj je potrebno in kako izbrati pravo jedro po meri.

Jedro po meri?

Kaj je jedro po meri? Kot vsi vemo, je Android kolač, sestavljen iz treh osnovnih plasti: jedra Linuxa, nabora nizkonivojskih knjižnic in storitev ter navideznega stroja Dalvik, na vrhu katerega tečejo grafična lupina, orodja in storitve na visoki ravni. , kot tudi skoraj vse aplikacije, nameščene s trga. Ustvarjalci večine alternativne vdelane programske opreme po meri običajno delajo samo z zgornjima dvema slojema, dodajajo funkcije grafični lupini (na primer gumbe v zavesi), jo spreminjajo (tematski mehanizem v CyanogenMod), pa tudi dodajajo nove sistemske storitve (izenačevalnik v CyanogenMod) in optimizacijo obstoječih.

Avtorji priljubljene vdelane programske opreme spreminjajo tudi jedro Linuxa, kadar koli je to mogoče: optimizirajo (zgradijo z agresivnejšimi zastavicami za optimizacijo prevajalnika), vključijo nove funkcije (na primer podporo za Windows ball) in naredijo tudi druge spremembe, kot je možnost dvigniti frekvenco procesorja nad frekvenco, ki jo zagotavlja proizvajalec. Pogosto vse to ostane v zakulisju in mnogi uporabniki vdelane programske opreme po meri se teh možnosti niti ne zavedajo, še posebej, ker isti CyanogenMod prihaja z jedrom po meri le za omejen nabor naprav, za katere je izvorna koda izvorne jedro in možnost njegove zamenjave sta na voljo. Na primer, skoraj vsa vdelana programska oprema CyanogenMod za pametne telefone Motorola uporablja standardno jedro - zaradi neprepustne zaščite zagonskega nalagalnika ga ni mogoče zamenjati s svojim.

Jedro v pametnih telefonih z odklenjenim zagonskim nalagalnikom pa je mogoče zamenjati ločeno od glavne vdelane programske opreme. In ne samo zamenjati, ampak namestiti jedro z ogromno različnimi funkcijami, ki za upravljanje zahtevajo določeno tehnično znanje in zato običajno niso vgrajene v jedra popularne strojne programske opreme, kot so CyanogenMod, AOKP in MIUI. Med temi funkcijami najdete podporo za visoke frekvence procesorja, nadzor gama zaslona, ​​načine varčevanja z energijo, visoko učinkovite upravljalnike porabe energije in ogromno drugih funkcij.

V tem članku bomo govorili o tem, kaj nam lahko ponudijo ustvarjalci jeder po meri, razmislili o glavnih jedrih po meri za različne naprave in tudi poskusili namestiti jedro neodvisno od glavne programske opreme in preveriti vse na lastni koži. Torej, kaj običajno ponujajo razvijalci alternativnih jeder?

Pametni krmilnik prometa

SoC-ji OMAP35XX, ki se uporabljajo na primer v Galaxy S II in Galaxy Nexus, imajo funkcijo SmartReflex, ki deluje kot pametni sistem za prilagajanje napetosti, ko se spremeni obremenitev procesorja. V bistvu odpravlja potrebo po natančnem nastavljanju napetosti s strani uporabnika.


Optimizacije

Pogosto je glavni cilj gradnje jedra po meri optimizacija delovanja. Običajno prodajalec mobilnih naprav poskuša ohraniti ravnovesje med zmogljivostjo in stabilnostjo, zato lahko tudi dobre optimizacijske tehnike, ki lahko znatno povečajo hitrost naprave, proizvajalec zavrne le na podlagi tega, da so se nekatere aplikacije po uporabi začele sesuvati. vsak deseti izstrelitev. Seveda navdušencev ne motijo ​​​​takšne malenkosti in mnogi od njih so pripravljeni uporabiti vse možnosti prevajalnika, algoritme za varčevanje z energijo v jedru lastnega sklopa in dvigniti frekvenco procesorja tako visoko, kot jo naprava zmore. Med vsemi optimizacijskimi tehnikami so najpogostejše štiri:



Druga vrsta optimizacije: spreminjanje privzetega načrtovalnika V/I. Situacija na tem področju je še toliko bolj zanimiva, saj namesto da bi razumeli principe delovanja razporejevalcev, nekateri izdelovalci jeder preprosto preberejo dokumente na internetu o V/I razporejevalnikih za Linux in naredijo zaključke. Med uporabniki je ta pristop še bolj razširjen. Pravzaprav so skoraj vsi najmočnejši in najpametnejši razporejevalniki Linux popolnoma neprimerni za Android: zasnovani so za uporabo z mehanskimi shrambami podatkov, v katerih se hitrost dostopa do podatkov spreminja glede na položaj glave. Razporejevalnik uporablja različne sheme združevanja zahtev glede na fizično lokacijo podatkov, zato bodo zahteve za podatke, ki so blizu trenutnega glavnega položaja, dobile višjo prednost. To je povsem nelogično pri polprevodniškem pomnilniku, ki zagotavlja enako hitrost dostopa do vseh celic. Napredni razporejevalniki bodo na pametnem telefonu naredili več škode kot koristi, najbolj okorni in primitivni pa bodo pokazali najboljše rezultate. Linux ima tri podobne razporejevalnike:

  • Noop (brez operacije)- tako imenovani nerazporednik. Preprosta čakalna vrsta zahtev FIFO, prva zahteva bo obdelana prva, druga druga in tako naprej. Zelo primeren za polprevodniški pomnilnik in vam omogoča pravično porazdelitev prioritet aplikacij za dostop do pogona. Dodaten plus: majhna obremenitev procesorja zaradi zelo preprostega principa delovanja. Slabost: neupoštevanje posebnosti delovanja naprave, kar lahko povzroči motnje delovanja.
  • SIO (preprost V/I)- analog razporejevalnika rokov brez upoštevanja bližine sektorjev drug drugemu, torej zasnovan posebej za polprevodniški pomnilnik. Dve glavni značilnosti: prednost operacij branja pred operacijami pisanja in združevanje operacij po procesu, pri čemer se vsakemu procesu dodeli časovna rezina za izvajanje operacij. Pri pametnih telefonih, kjer sta pomembni hitrost trenutne aplikacije in prevlada bralnih operacij nad zapisovalnimi, kaže zelo dobro zmogljivost. Na voljo v jedru Leankernel, jedru Matr1x za Nexus 4 in SiyahKernel.
  • VRSTICA (PREBERI PREPIŠI)- razporejevalnik, posebej zasnovan za mobilne naprave in dodan jedru pred nekaj meseci. Glavni cilj je najprej obdelati zahteve za branje, vendar je treba pošteno razdeliti čas tudi za zahteve za pisanje. Trenutno velja za najboljši razporejevalnik za pomnilnik NAND; privzeto se uporablja v Leankernel in Matr1x.

Vredno je povedati, da skoraj vsa standardna vdelana programska oprema in polovica prilagojenih še vedno uporablja jedro s standardnim razporejevalnikom Linux CFQ, kar pa ni tako slabo, saj lahko pravilno deluje s pogoni SSD. Po drugi strani pa je preveč zapleten, povzroča večjo obremenitev procesorja (in s tem baterije) in ne upošteva posebnosti mobilnega OS. Druga priljubljena izbira je razporejevalnik rokov, ki je enako dober kot SIO, vendar je odveč. Seznam razpoložljivih razporejevalcev si lahko ogledate z naslednjim ukazom:

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

Za spremembo se uporablja naslednje (kjer je vrstica ime razporejevalnika):

# za i v /sys/block/*/queue/scheduler; do echo row > $1; Končano

Nekateri graditelji jedra uporabljajo tudi drugo vrsto optimizacije, povezane z V/I. To onemogoči sistemski klic fsync, ki se uporablja za prisilno izpiranje spremenjene vsebine odprtih datotek na disk. Obstaja mnenje, da bo brez fsync sistem manj pogosto dostopal do pogona in s tem prihranil čas procesorja in energijo baterije. Precej kontroverzna izjava: fsync se v aplikacijah ne uporablja prav pogosto in samo za shranjevanje res pomembnih informacij, vendar lahko onemogočanje povzroči izgubo istih informacij v primeru zrušitve operacijskega sistema ali drugih težav. Možnost onemogočanja fsync je na voljo v jedrih franco.Kernel in GLaDOS in je nadzorovana z datoteko /sys/module/sync/parameters/fsync_enabled, v katero morate napisati 0, da onemogočite, ali 1, da omogočite. Še enkrat, uporaba te funkcije ni priporočljiva.

Dodajanje novih funkcij v jedro

Seveda lahko v jedrih po meri poleg optimizacij, popravkov in raznih naprednih sistemov za upravljanje strojne opreme najdete tudi popolnoma nove funkcionalnosti, ki jih v standardnih jedrih ni, a so uporabnikom lahko uporabne.

To so predvsem različni gonilniki in datotečni sistemi. Nekatera jedra na primer vključujejo podporo za modul CIFS, ki vam omogoča pripenjanje skupnih rab Windows. Takšen modul je v jedru Matr1x za Nexus S, faux123 za Nexus 7, SiyahKernel in GLaDOS. Sama po sebi je neuporabna, vendar je na trgu več aplikacij, ki omogočajo uporabo njenih zmogljivosti.

Druga uporabna funkcija je vključitev gonilnika ntfs-3g v jedro (natančneje v paket z jedrom; sam gonilnik deluje kot aplikacija za Linux), ki je potreben za namestitev bliskovnih pogonov, formatiranih v datotečnem sistemu NTFS. Ta gonilnik je v jedrih faux123 in SiyahKernel. Običajno se aktivira samodejno, če pa se to ne zgodi, lahko uporabite aplikacijo StickMount s trga.

Številna jedra vključujejo tudi podporo za tako imenovano tehnologijo zram, ki vam omogoča, da rezervirate majhno količino RAM-a (običajno 10 %) in ga uporabite kot stisnjeno območje za izmenjavo. Rezultat je nekakšna razširitev količine pomnilnika, brez hujših posledic za delovanje. Na voljo v Leankernelu, omogočeno z ukazom Trickster MOD ali zram enable.

Zadnji dve zanimivi funkciji sta Fast USB charge in Sweep2wake. Prvi ni nič drugega kot prisilna aktivacija načina "hitrega polnjenja", tudi če je pametni telefon priključen na vrata USB računalnika. Način hitrega polnjenja je na voljo v vseh bolj ali manj novih pametnih telefonih, vendar ga zaradi tehničnih omejitev ni mogoče omogočiti hkrati z dostopom do pomnilniške kartice. Funkcija hitrega polnjenja USB vam omogoča, da ta način vedno omogočite, hkrati pa onemogočite dostop do pogona.

Sweep2wake je nov način za prebujanje naprave, ki ga je izumil avtor Breaked-kernel. Njegov namen je vklop pametnega telefona z drsenjem prsta po navigacijskih tipkah, ki se nahajajo pod zaslonom, ali po samem zaslonu. To je res priročna funkcija, a če jo vklopite, bo senzor ostal aktiven tudi, ko naprava spi, kar lahko močno izprazni baterijo.

Overclocking, napetost in varčevanje z energijo

Overclocking ni priljubljen le med lastniki namiznih računalnikov in prenosnikov, ampak tudi med navdušenci nad mobilno tehnologijo. Tako kot kamni arhitekture x86 so procesorji in grafična jedra mobilnih naprav odlični. Vendar pa se sama metoda overclockinga in koraki za njeno izvedbo nekoliko razlikujejo. Dejstvo je, da so standardni gonilniki za SoC, ki so odgovorni za varčevanje z energijo in spreminjanje frekvence procesorja, običajno zaklenjeni na standardnih frekvencah, zato morate za fino nastavitev namestiti alternativni gonilnik ali jedro po meri.

Skoraj vsa bolj ali manj kakovostna in priljubljena jedra po meri že vključujejo odklenjene gonilnike, tako da se po njihovi namestitvi možnost nadzora "moči" procesorja znatno razširi. Običajno graditelji jedra po meri naredijo dve stvari, ki vplivata na izbiro frekvence. To je razširitev frekvenčnega območja preko prvotno določenih - nastavite lahko višjo frekvenco procesorja ali zelo nizko, kar vam omogoča varčevanje z baterijo in povečanje gradacije frekvenc, na primer namesto treh možnih frekvenc , na izbiro je šest. Drugi je dodana možnost prilagajanja napetosti procesorja, tako da lahko zmanjšate napetost procesorja pri nizkih frekvencah, da ohranite napolnjenost baterije, in jo povečate pri visokih frekvencah, da povečate stabilnost.

Vse to je mogoče nadzorovati z znanim plačljivim pripomočkom SetCPU ali brezplačnim Trickster MOD. Priporočila za upravljanje so enaka kot za namizne sisteme. Bolje je, da spodnjo frekvenco procesorja nastavite na minimum, vendar ne nižjo od 200 MHz (da se izognete zamikom), zgornji prag postopoma povečujete med testiranjem stabilnosti delovanja, če pade, je priporočljivo nekoliko povečati napetost za to frekvenco. Za napetost ni priporočil, saj je vsak procesor edinstven in bodo vrednosti za vsakega drugačne.

Graditelji poleg spreminjanja frekvenc v jedro pogosto dodajo nove algoritme za nadzor varčevanja z energijo (samodejni nadzor frekvence procesorja), ki po njihovem mnenju lahko pokažejo boljše rezultate v primerjavi s standardnimi. Skoraj vsi temeljijo na interaktivnem algoritmu, ki se privzeto uporablja v novih različicah Androida, katerega bistvo je, da se frekvenca procesorja močno poveča do maksimuma, ko se obremenitev poveča, in jo nato postopoma zmanjša na minimum. Nadomešča predhodno uporabljen algoritem OnDemand, ki je gladko prilagajal frekvenco v obe smeri glede na obremenitev, in naredi sistem bolj odziven. Zbiralci alternativnih jeder ponujajo naslednje algoritme za zamenjavo Interactive:

  • SmartAssV2- ponoven razmislek o interaktivnem algoritmu s poudarkom na varčevanju z baterijo. Glavna razlika je v tem, da procesorja ob kratkotrajnih izbruhih obremenitve ne potegnemo na visoke frekvence, za kar zadostuje nizka zmogljivost procesorja. Privzeto je uporabljeno v jedru Matr1x.
  • InteractiveX- uglašen interaktivni algoritem, katerega glavna značilnost je zaklepanje procesorja pri najmanjši uporabniško določeni frekvenci in izklop drugega jedra procesorja, ko je zaslon izklopljen. Privzeto se uporablja v Leankernelu.
  • LulzactiveV2- v bistvu na novo izumljen OnDemand. Ko obremenitev procesorja preseže določeno (60% privzeto), algoritem zviša frekvenco za določeno število delitev (1 privzeto) in jo zniža, ko se obremenitev zmanjša. Zanimiva je predvsem zato, ker omogoča samostojno nastavitev parametrov delovanja, zato je primerna za prekaljene geeke.

Na splošno si izdelovalci jeder zelo radi omislijo nove algoritme za varčevanje z energijo zaradi enostavnosti njihove implementacije, tako da lahko najdete ducat drugih. Večina jih je popolna smeti in pri izbiri razporejevalnika se morate držati pravila: bodisi eden od treh zgoraj opisanih bodisi standardni Interactive, ki je, mimogrede, zelo dober. Lahko se odločite z uporabo istega Trickster MOD.

Nadzorni vmesniki

Najbolj priljubljena jedra po meri vključujejo več mehanizmov za natančen nadzor različnih parametrov gonilnika, med katerimi so najpogostejši ColorControl, GammaControl, SoundControl in TempControl.

Prva dva vmesnika sta na voljo skoraj povsod, vključno z jedri CyanogenMod, druga dva sta na voljo v Leankernelu in morda še v drugih. Tako ali drugače jih je mogoče vse nadzorovati s pomočjo Trickster MOD.

Jedra

Katero jedro izbrati? Na to vprašanje ni jasnega odgovora, pa ne zato, ker "vsakemu svoje", ampak zato, ker je na svetu ogromno naprav Android in skoraj toliko različnih jeder. Vendar pa obstaja več priljubljenih jeder, ki se razvijajo za več naprav hkrati. Tako ali drugače sem jih v zgodbi omenil veliko, tukaj pa jih bom na kratko opisal.

  • Leankernel je jedro za Galaxy Nexus, Nexus 7 in Galaxy S III. Glavni poudarek pri razvoju je na enostavnosti in hitrosti. Algoritem za varčevanje z energijo: InteractiveX V2, V/I razporejevalnik: ROW, vsi zgoraj navedeni nadzorni vmesniki, podpora za hitro polnjenje USB, Swap in zram, prilagodljive možnosti overclockinga za CPE in GPE. Eno najboljših jeder. Prilagodljivo z uporabo Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - jedro za Nexus S in Nexus 4. Preprosto in neobremenjeno jedro. Podpora za overclocking CPE in GPE, GammaControl, Fast USB Charge, Sweep2wake, I/O planerje: SIO, ROW in FIOPS. Prilagoditve zmogljivosti. Prilagodljivo z uporabo Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) - preprosto in neobremenjeno jedro za Nexus 4 in HTC One X. Optimizacije za Snapdragon S4 in NVIDIA Tegra 3, preoblikovan način varčevanja z energijo za Tegra 3 , možnost overclockinga, algoritem za varčevanje z energijo: nastavljen OnDemand (na voljo tudi Interactive).
  • SiyahKernel - jedro za Galaxy S II in S III. Prilagodljive možnosti overclockinga, samodejna kalibracija baterije, izboljšan gonilnik zaslona na dotik, algoritmi za varčevanje z energijo: smartassV2 in lulzactiveV2, I/O planerji: noop, deadline, CFQ, BFQV3r2 (privzeto), V(R), SIO. Gonilniki CIFS in NTFS (s samodejno namestitvijo). Nastavljiv z uporabo ExTweaks.
  • franco.Kernel - jedro za Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One in One X.

Zmogljivosti jedra se od naprave do naprave zelo razlikujejo, zato boste morali podrobnosti preveriti na spletnem mestu. Vendar pa boste z utripanjem tega jedra dobili možnost overkloka, nastavitev gonilnikov, odlično zmogljivost ter podporo za različne algoritme za varčevanje z energijo in načrtovalce. Pravzaprav jedro vključuje skoraj vse popravke, opisane v članku. Velja za eno najboljših razpoložljivih jeder. Obstaja aplikacija za samodejno posodabljanje franko.Kernel Updater. Konfigurirate ga lahko z uporabo Trickster MOD.

Kako namestiti?

Vsa jedra so razdeljena v standardnih arhivih ZIP za Android, ki jih je treba prenesti prek obnovitvene konzole na enak način kot alternativne vdelane programske opreme. Običajno so jedra združljiva s katero koli vdelano programsko opremo, tako da ko izberete pravo jedro, ga lahko varno namestite. Edina stvar, na katero morate biti pozorni, je različica Androida, s katero je združljivo jedro. Lahko je primeren za vse različice Androida, ki so na voljo za napravo, ali deluje samo z eno (razvijalec običajno izrecno govori o tem). Preden utripate vdelano programsko opremo, naredite varnostno kopijo trenutne vdelane programske opreme z isto obnovitveno konzolo. Če gre kaj narobe, se lahko vedno vrnete nazaj.

zaključki

Kot lahko vidite, imajo jedra po meri številne prednosti pred jedri, ki se uporabljajo v standardni vdelani programski opremi ali programski opremi tretjih oseb. In kar je še bolj pomembno, vam za njihovo uporabo ni treba poznati vseh podrobnosti Androida; samo prenesite in namestite arhiv ZIP.

Uporabniki mobilnih naprav niso vedno zadovoljni z delovanjem in zmogljivostmi svojih pripomočkov. Iz tega razloga uporabniki iščejo najboljši način za bliskavico jedra operacijskega sistema Android. Po eni strani lahko to dejanje enostavno izvedete s tablico ali pametnim telefonom. Na tisoče uporabnikov je uspešno namestilo jedro brez kakršnih koli težav ali težav. Toda po drugi strani lahko vsaka napaka med tem postopkom povzroči težave, vključno z okvaro pripomočka in potrebo po dragem servisu. Na različnih stopnjah obstaja tveganje, da izberete napačno različico vdelane programske opreme jedra, ki so jo ustvarili nekvalificirani razvijalci ali ni primerna za vašo mobilno napravo. Priporočamo, da ste zelo previdni pri izvajanju kakršnih koli dejanj, ki spreminjajo programski del naprave na nizki ravni. Po uspešnem utripanju jedra se marsikdo počuti, kot da drži v rokah popolnoma novo napravo. Napredni uporabniki lahko tako prilagodijo pripomoček svojim potrebam in željam, hkrati pa pridobijo nova znanja in izkušnje o sodobnih mobilnih tehnologijah.

Jedro operacijskega sistema Android in njegova vdelana programska oprema

Kaj je jedro mobilne naprave?

Jedro operacijskega sistema je osnova programske opreme, ki nadzoruje strojno opremo naprave. Od tega so odvisni osnovni parametri katerega koli pripomočka. Opozoriti je treba, da je sestavljen iz treh medsebojno povezanih komponent - jedra Linuxa, navpičnega stroja Dalvik ter različnih nizkonivojskih storitev in knjižnic. Če govorimo o vdelani programski opremi po meri, sta prizadeti samo dve komponenti, ki vam omogočata dodajanje novih sistemskih storitev, optimizacijo obstoječih parametrov in spreminjanje grafične lupine.

Tisti, ki želijo namestiti jedro v Android, morajo razumeti, da obstaja razlika med konceptoma jedra po meri in vdelane programske opreme po meri. Slednja je neuradna različica programske opreme. Vdelano programsko opremo po meri je razvila skupina strokovnjakov za določene naprave. Jedro po meri temelji na jedru Linuxa in predstavlja njegovo neuradno različico. Jedro po meri je pogosto priloženo vdelani programski opremi. Vendar ga je mogoče namestiti ločeno po spremembi vdelane programske opreme. V bistvu ne nadomešča izvornega jedra mobilne naprave, kar je končni cilj takšnega delovanja.

Vdelana programska oprema jedra Android se v glavnem izvaja za povečanje časa delovanja naprave za nekaj ur s prilagajanjem parametrov porabe energije. Morda je to glavni razlog, zakaj uporabniki izvajajo kompleksne pretvorbe programske opreme svojih pripomočkov. Vdelana programska oprema vam bo omogočila zamenjavo video čipa brez posledic za vaš pametni telefon ali tablico. Napredni uporabniki prilagodijo zaslon na ta način, spremenijo njegovo barvno upodabljanje in občutljivost. Vdelana programska oprema jedra vam omogoča izboljšanje zvoka naprave, posodobitev gonilnikov in uvedbo podpore za nestandardne zunanje pripomočke.

Pred utripanjem jedra priporočamo, da se prepričate, da ste izbrali dobro različico, ki so jo ustvarili izkušeni razvijalci. Poleg tega je pomembno zagotoviti, da je primeren za vašo različico vdelane programske opreme Android. Priporočljivo je prebrati ocene ljudi, ki jim je uspelo namestiti ustrezno različico jedra na svoj mobilni telefon. Mnenja lahko vsebujejo pomembne informacije o težavah, ki se lahko pojavijo v fazi vdelane programske opreme ali nadaljnjega delovanja naprave.

Utripanje pripomočka prek Fastboot

Napravo Android lahko znova zaženete s hitrim zagonom. Toda najprej morate namestiti pripomoček na svoj pripomoček. Obstajata dve različici tega programa. Prvi vključuje prenos Fastboota v povezavi z uradnim programom SDK za Android. Druga različica vključuje ločen prenos pripomočka.

Priporočamo, da preverite, ali vaša mobilna naprava vidi vaš prenosnik ali računalnik. Če želite to narediti, morate storiti. Ko prenesete in namestite pripomoček Fastboot v računalnik ali prenosni računalnik z operacijskim sistemom Windows in povežete svoj pametni telefon, morate odpreti ukazno vrstico. Če želite to narediti, odprite Iskanje. V sistemu Windows 8 to storite tako, da premaknete kazalec miške na desno stran zaslona in izberete ustrezen razdelek. V Iskanje morate vnesti "cmd", po katerem se bo ukazna vrstica prikazala pred vami. Napravo je treba preklopiti v način vdelane programske opreme. Nato morate vnesti ukaz, ki bo preizkusil interakcijo med vašim računalnikom in mobilno napravo:

naprave za hitri zagon

Če vse deluje, morate prenesti pravilno različico vdelane programske opreme jedra boot.img. Ne priporočamo utripanja jedra originalne vdelane programske opreme, saj lahko to povzroči težave pri delovanju pametnega telefona. Datoteko je treba shraniti na predhodno ustvarjeno particijo na pogonu C, imenovano »Android«. Po tem morate mobilno napravo zagnati v Fastboot in jo povezati z računalnikom. Na zaslonu se prikaže sporočilo »Fastboot USB«.

  • cd C:\Android.
  • fastboot flash boot boot.img.
  • hitri zagon brisanje predpomnilnika.
  • hitri zagon ponovni zagon.

Zelo pomembno je, da vse besede vnesete pravilno, upoštevajoč velike in male črke ter presledke. Ukaz cd odpre zahtevano mapo, ki vsebuje zahtevane datoteke. Po tem se pojavi utripanje. Ukaz fastboot erase cache izbriše particijo predpomnilnika. Zadnji ukaz - fastboot reboot znova zažene napravo iz načina vdelane programske opreme v običajni način. Če ste vse zgornje korake izvedli pravilno, bo postopek uspešen.

Vdelana programska oprema z uporabo ClockworkMod Recovery

ClockworkMod Recovery (ali kratko CWM) je obnovitveni sistem, ki se uporablja namesto prvotne tovarniške obnovitve. CWM vam omogoča namestitev nove vdelane programske opreme na mobilno napravo, flash jedra, varnostno kopiranje datotek in obnovitev lupine. Tak sistem lahko deluje z datotekami za posodobitev vdelane programske opreme v formatu zip. ClockworkMod je nameščen in nadomešča tovarniško obnovitev. Če želite zagnati CWM, morate poznati kombinacijo tipk, ki je primerna za vaš pripomoček. V večini primerov je to kombinacija gumbov za zmanjšanje glasnosti in gumba za vklop, ki ju je treba pritisniti med zagonom naprave.

Če želite utripati vdelano programsko opremo jedra, prenesite arhiv z razširitvijo zip. Vsebovati mora mapo META-INF. Potem sta dve možnosti. V prvem primeru morate določiti datoteko vdelane programske opreme. Druga možnost vključuje namestitev datoteke vdelane programske opreme v mapo /sdcard. Po tem morate aktivirati ClockworkMod Recovery, tam poiskati funkcijo Uporabi posodobitev s kartice SD in določiti zahtevano datoteko.

Treba je opozoriti, da je meni ClockworkMod Recovery priročen in razumljiv za večino uporabnikov. Poleg tega obnovitvenega sistema za vdelano programsko opremo lahko uporabite obnovitev TWRP. To orodje je priročno in priljubljeno med uporabniki Androida. Glavna stvar je izbrati pravo datoteko vdelane programske opreme.

Utripanje jedra Android je postopek, ki ga ne priporočamo, če ste popolnoma zadovoljni z delovanjem pripomočka. Takšna dejanja vodi želja po izboljšanju delovanja mobilnega telefona ali tablice. Napredni uporabniki imajo možnost nastaviti parametre na nižji ravni. Toda brez določenega znanja in objektivnih razlogov je bolje, da ne spremenite programskega dela mobilne naprave, saj je to povezano s tveganjem in motnjami v njenem delovanju.