Prezentare generală a caracteristicilor nucleului Android. Actualizarea nucleului Linux la noua versiune 3.10 65 versiune a nucleului

02.05.2020 Interesant

„Și eu... spăl carburatorul!”
Glumă

Introducere

La grădiniță, eu și prietenii mei cu gânduri asemănătoare am disecat lăcustele în speranța de a înțelege structura lor. La școală au lipit radioul „Rusia”. La institut a venit vremea mașinilor ale căror nuci fuseseră rearanjate de multe ori. Interesele s-au schimbat, dar dorința de „dezasamblare” se trezește uneori, iar astăzi este destinată Android-ului.

De câte ori ai fost ajutat de a avea surse Android? nu mai pot fi numărat. Android este un proiect open source, dar din păcate avem doar capacitatea de a citi; Este aproape imposibil să editezi codul Android fără a fi angajat Google. Să plângem acest moment și să descarcăm depozitul. Cum se face acest lucru este descris perfect pe site-ul oficial.


Arhitectura generala

Arhitectura Android poate fi descrisă schematic după cum urmează:

Calculatoarele desktop și laptopurile au un sistem stabilit de moduri de energie (procesoarele x86 au mai multe dintre ele): computerul rulează „la viteză maximă” când se face ceva și intră în modul eficient din punct de vedere energetic când sistemul este inactiv. Intrarea în modul „sleep” are loc fie după o perioadă destul de lungă de inactivitate, fie manual, de exemplu, la închiderea capacului laptopului.

Pe telefoane, era necesar un mecanism diferit: starea principală a sistemului este „hibernarea”, ieșirea din acesta se efectuează numai atunci când este necesar. Astfel, sistemul poate dormi chiar dacă o aplicație este activă. Android a implementat un mecanism de wakelock: dacă o aplicație (sau un driver) face ceva important care trebuie să ajungă la concluzia sa logică, acesta „prinde” wakelock-ul, împiedicând dispozitivul să adoarmă.

Încercările de a porta mecanismul wakelock în nucleu au cauzat rezistență din partea multor dezvoltatori. Programatorii Android au rezolvat o problemă specifică, soluția căreia a fost un anumit mecanism. Condițiile sarcinii au fost foarte înguste. Platforma țintă este ARM, așa că au fost folosite caracteristicile sale: procesoarele ARM presupun inițial schimbări frecvente în modurile de operare „sleep” și „wake”, spre deosebire de x86. În aplicațiile Android, comunicați cu sistemul de gestionare a energiei prin PowerManager, dar cum rămâne cu aplicațiile client Linux?

Dezvoltatorii Android nici măcar nu au încercat să găsească decizie comună„pentru viitor”, care urma să fie apoi fuzionat în nucleul principal fără probleme, comunitatea de kernel Linux nu a fost consultată cu privire la această problemă. Îi poți învinovăți pentru asta? În ciuda tuturor problemelor și discuțiilor, așa cum am menționat mai sus, în nucleu a apărut un API cu funcționalitate identică cu cea a autosleep-ului.

Programatorii aplicațiilor Android au rareori de a face cu wakelock-urile, deoarece platforma și șoferii procesează obligațiile care le sunt atribuite ținând cont de modul „sleep”. Cu toate acestea, familiarul PowerManager vă va ajuta să interveniți în acest proces. Apropo, autorul nu se poate gândi decât la un singur scenariu: să împiedice telefonul să adoarmă la pornirea serviciului de la BroadcastReceiver, care este rezolvat de clasa auxiliară din Biblioteca de suport Android WakefulBroadcastReceiver.

Low Memory Killer

Nucleul standard Linux are Out of Memory Killer, care, pe baza parametrului de răutate, determină procesul care trebuie oprit:

Badness_for_task = total_vm_for_task / (sqrt(cpu_time_in_seconds) *
sqrt(sqrt(cpu_time_in_minutes)))

Astfel, cu cât un proces consumă mai multă memorie și cu cât are o viață mai scurtă, cu atât va avea mai puțin noroc.

Diagrama arată sistem generalÎnregistrare Android. Driverul de înregistrare oferă acces la fiecare buffer prin /dev/log/*. Aplicațiile nu le accesează direct, ci prin biblioteca liblog. Clasele Log, Slog și EventLog comunică cu biblioteca liblog. Comanda adb logcat arată conținutul buffer-ului „principal”.

Concluzie

În acest articol, am examinat pe scurt câteva dintre caracteristicile Android ca sistem Linux. Au fost lăsate afară și alte părți (pmem, consola RAM etc.), precum și aspecte atât de importante ale platformei în ansamblu, cum ar fi System Service, procesul de pornire a sistemului și altele. Dacă acest subiect este de interes, le vom lua în considerare în articolele următoare.

Duminică seara, Linus Torvalds, părintele Linux și dezvoltatorul nucleului sistemului de operare, a anunțat lansarea după două luni de muncă. versiune noua Nucleul Linux 3.10.

Potrivit dezvoltatorului însuși, acest nucleu este cel mai mare în ceea ce privește inovația din ultimii câțiva ani.

Linus a recunoscut că la început a intenționat să lanseze un alt candidat pentru lansare, dar după reflecție a fost înclinat să lanseze imediat versiunea finală cu numărul 3.10. De asemenea, Torvalds a notat în mesajul său că noul nucleu, ca și versiunea 3.9, este complet gata pentru utilizarea de zi cu zi.

În plus, în anunțul versiunii RC a nucleului, Linus Torvalds a scris că anterior a inclus întotdeauna o listă cu numele persoanelor care au trimis anumite părți ale codului, dar de această dată această listă ar fi atât de mare încât nu ar putea fi dat în întregime într-o singură foaie de corespondență.

Lista modificărilor majore aduse nucleului 3.10:

  • Acum puteți împiedica executarea scripturilor ca programe - funcționalitatea de lansare a scripturilor care conțin calea către interpret în antetul „#!” poate fi acum compilată ca modul de nucleu;
  • Integrat dezvoltat și utilizat în sistemul Google Bcache. Bcache vă permite să organizați stocarea în cache a accesului la slow hard disk-uri pe unități SSD rapide; memorarea în cache se efectuează la nivel de dispozitiv bloc - iar acest lucru vă permite să accelerați accesul la unitate, indiferent de sistemele de fișiere utilizate pe dispozitiv;
  • Nucleul poate fi compilat folosind compilatorul Clang datorită patch-urilor pregătite de proiectul LLVMLinux;
  • A apărut un sistem dinamic de control al generării de întreruperi ale temporizatorului. Acum, în funcție de starea curentă, puteți modifica întreruperile în intervalul de la mii de tick-uri pe secundă la o întrerupere pe secundă - acest lucru vă permite să minimizați încărcarea CPU atunci când procesați întreruperi atunci când sistemul este inactiv. În prezent, această funcție este utilizată pentru sisteme în timp real și HPC (calculatură de înaltă performanță), dar în următoarele versiuni de kernel va fi folosită și pentru sisteme desktop;
  • Acum este posibil să se genereze un eveniment pentru a anunța aplicația că se apropie de epuizarea memoriei disponibile procesului/sistemului (în cgroups);
  • Profilarea accesului la memorie este acum disponibilă pentru comanda perf;
  • S-a adăugat suport pentru protocolul RDMA (iSER) la subsistemul iSCSI;
  • Există un nou driver „sincronizare” (experimental). A fost dezvoltat în interiorul Platforme Androidși este utilizat pentru sincronizarea între alți drivere;
  • Driverul de placă grafică virtuală QXL a fost integrat (utilizat în sistemele de virtualizare pentru ieșirea grafică accelerată folosind protocolul SPICE);
  • Noi instrumente de management al energiei introduse în procesoare AMD familie 16h („Jaguar”);
  • Suport pentru accelerarea decodării video folosind decodorul hardware UVD integrat în GPU-urile AMD moderne a fost adăugat la Radeon DRM;
  • A apărut un driver pentru adaptoarele video virtuale Microsoft Hyper-V (există și îmbunătățiri în funcționarea Hyper-V în general);
  • Execuția funcțiilor criptografice (sha256, sha512, blowfish, twofish, șarpe și camelia) este optimizată folosind instrucțiunile AVX/AVX2 și SSE.

Am scris deja de mai multe ori despre firmware personalizat, aplicații root și alternative meniuri de boot. Toate acestea teme standardîn comunitatea de hackeri Android, totuși, pe lângă toate cele de mai sus, există și un „nucleu personalizat”, care poate oferi posibilități aproape nelimitate de gestionare a unui smartphone și a hardware-ului său la cel mai de jos nivel. În acest articol vă voi spune ce este, de ce este necesar și cum să alegeți nucleul personalizat potrivit.

Kernel personalizat?

Ce este un nucleu personalizat? După cum știm cu toții, Android este o plăcintă formată din trei straturi de bază: nucleul Linux, un set de biblioteci și servicii de nivel scăzut și mașină virtuală Dalvik, deasupra căruia rulează un shell grafic, instrumente și servicii de nivel înalt, precum și aproape toate aplicațiile instalate de pe piață. Creatorii majorității firmware-ului personalizat alternativ lucrează de obicei numai cu primele două straturi, adăugând funcții la shell-ul grafic (de exemplu, butoane în perdea), schimbându-l (motor de temă în CyanogenMod), precum și adăugând noi servicii de sistem (egalizator). în CyanogenMod) și optimizarea celor existente.

Autorii firmware-ului popular fac, de asemenea, modificări la kernel-ul Linux ori de câte ori este posibil: ei optimizează (construiesc cu steaguri de optimizare a compilatorului mai agresive), includ funcționalități noi (de exemplu, suport pentru Windows ball) și fac și alte modificări, cum ar fi capacitatea pentru a ridica frecvența procesorului peste cea furnizată de producător . De multe ori toate acestea rămân în culise, iar mulți utilizatori de firmware personalizat nici măcar nu sunt conștienți de aceste posibilități, mai ales că același CyanogenMod vine cu un nucleu personalizat doar pentru o gamă limitată de dispozitive, pentru care atât codul sursă al nucleului nativ. și capacitatea de a-l înlocui sunt disponibile. De exemplu, aproape totul Firmware CyanogenMod Pentru smartphone-uri Motorola Ei folosesc un nucleu standard - este imposibil să-l înlocuiți cu al dvs. datorită protecției impenetrabile a bootloader-ului.

Cu toate acestea, nucleul smartphone-urilor cu un bootloader deblocat poate fi înlocuit separat de firmware-ul principal. Și nu doar înlocuiți, ci instalați un nucleu cu un număr mare de funcții diferite care necesită anumite cunoștințe tehnice pentru a fi gestionate și, prin urmare, nu sunt de obicei încorporate în nucleele firmware-ului popular, cum ar fi CyanogenMod, AOKP și MIUI. Printre aceste funcții puteți găsi suport pentru frecvențe înalte ale procesorului, controlul gama ecranului, moduri de economisire a energiei, manageri de energie extrem de eficiente și un număr mare de alte caracteristici.

În acest articol vom vorbi despre ceea ce ne pot oferi creatorii de kernel-uri personalizate, ne vom uita la principalele kernel-uri personalizate pentru diverse dispozitive, și vom încerca, de asemenea, să instalăm nucleul independent de firmware-ul principal și să verificăm totul la greu. Deci, ce oferă de obicei dezvoltatorii de nuclee alternative?

Controlor inteligent de trafic

SoC-urile OMAP35XX, folosite, de exemplu, în Galaxy S II și Galaxy Nexus, au o funcție SmartReflex, care acționează ca un sistem inteligent de reglare a tensiunii atunci când sarcina procesorului se modifică. În esență, elimină nevoia de reglare fină a tensiunii de către utilizator.


Optimizări

Adesea, scopul principal al construirii unui nucleu personalizat este optimizarea performanței. De obicei, un furnizor de dispozitive mobile încearcă să mențină un echilibru între performanță și stabilitate, astfel încât chiar și tehnicile bune de optimizare care pot crește semnificativ viteza unui dispozitiv pot fi respinse de producător doar pe baza faptului că, după folosirea lor, unele aplicații au început să se blocheze. la fiecare a zecea lansare. Desigur, pasionații nu sunt deranjați de astfel de lucruri mărunte și mulți dintre ei sunt gata să aplice orice opțiune de compilator, algoritmi de economisire a energiei la nucleul propriului ansamblu și să ridice frecvența procesorului cât de mare poate suporta dispozitivul. Dintre toate tehnicile de optimizare, patru sunt cele mai comune:



Un alt tip de optimizare: modificarea programatorului I/O implicit. Situația în acest domeniu este cu atât mai interesantă, deoarece în loc să înțeleagă principiile de funcționare a planificatorilor, unii constructori de kernel pur și simplu citesc documente de pe Internet despre programatoarele I/O pentru Linux și trag concluzii. În rândul utilizatorilor, această abordare este și mai răspândită. De fapt, aproape toate cele mai puternice și inteligente programatoare Linux sunt complet nepotrivite pentru Android: sunt concepute pentru a fi utilizate cu depozite de date mecanice, în care viteza de acces la date variază în funcție de poziția capului. Planificatorul utilizează diferite scheme de agregare a cererilor în funcție de locația fizică a datelor, astfel încât cererile de date care sunt apropiate de poziția actuală a șefului vor primi o prioritate mai mare. Acest lucru este complet ilogic în cazul memoriei cu stare solidă, care garantează aceeași viteză de acces la toate celulele. Programatorii avansați vor face mai mult rău decât bine pe un smartphone, iar cei mai stângaci și primitivi vor arăta cele mai bune rezultate. Linux are trei programatoare similare:

  • Noop (Fără operație)- așa-numitul non-scheduler. O simplă coadă de cereri FIFO, prima cerere va fi procesată prima, a doua a doua și așa mai departe. Potrivit pentru memoria SSD și vă permite să distribuiți corect prioritățile aplicațiilor pentru accesul la unitate. Un plus suplimentar: încărcare redusă a procesorului datorită unui principiu de funcționare foarte simplu. Dezavantaj: nu se ține cont de specificul funcționării dispozitivului, ceea ce poate duce la defecțiuni ale performanței.
  • SIO (I/O simplă)- un analog al programatorului Deadline fără a lua în considerare proximitatea sectoarelor unul față de celălalt, adică proiectat special pentru memoria cu stare solidă. Două caracteristici principale: prioritatea operațiunilor de citire față de operațiunile de scriere și gruparea operațiunilor pe proces, alocarea unui interval de timp fiecărui proces pentru a efectua operațiuni. În smartphone-uri, unde viteza aplicației curente și predominanța operațiunilor de citire asupra operațiunilor de scriere sunt importante, arată foarte performanță bună. Disponibil în Leankernel, Matr1x kernel pentru Nexus 4 și SiyahKernel.
  • RÂND (CITIȚI PENTRU SCRIERE)- un planificator special conceput pentru dispozitive mobile și adăugat la kernel cu doar câteva luni în urmă. Scopul principal este de a procesa mai întâi cererile de citire, dar să distribuiți timp corect și pentru cererile de scriere. Considerat cel mai bun acest moment planificator pentru memoria NAND, utilizat implicit în Leankernel și Matr1x.

Merită spus că aproape toate firmware-urile standard și jumătate dintre cele personalizate încă folosesc nucleul cu programatorul standard Linux CFQ, care, totuși, nu este atât de rău, deoarece poate funcționa corect cu unități cu stare solidă. Pe de altă parte, este prea complicat, creează o sarcină mai mare asupra procesorului (și deci a bateriei) și nu ține cont de specificul sistemului de operare mobil. O altă alegere populară este programatorul Deadline, care este la fel de bun ca SIO, dar este redundant. Puteți vizualiza lista de programatori disponibili folosind următoarea comandă:

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

Pentru a modifica se folosesc următoarele (unde rând este numele programatorului):

# pentru i în /sys/block/*/queue/scheduler; do echo row > $1; Terminat

Unii constructori de kernel folosesc și un alt tip de optimizare legat de I/O. Aceasta este pentru a dezactiva apelul de sistem fsync folosit pentru a forța o spălare a conținutului modificat deschide fișiere pe disc. Există o părere că fără fsync sistemul va accesa unitatea mai rar și, astfel, va economisi timpul procesorului și energia bateriei. O afirmație destul de controversată: fsync nu este folosit foarte des în aplicații și doar pentru a salva informații cu adevărat importante, dar dezactivarea acesteia poate duce la pierderea acelorași informații în cazul unui blocaj al sistemului de operare sau al altor probleme. Posibilitatea de a dezactiva fsync este disponibilă în nucleele franco.Kernel și GLaDOS și este controlată de fișierul /sys/module/sync/parameters/fsync_enabled, în care ar trebui să scrieți 0 pentru a dezactiva sau 1 pentru a activa. Din nou, nu este recomandat să utilizați această funcție.

Adăugarea de noi funcții la kernel

Desigur, pe lângă optimizări, tweak-uri și sisteme diferite management hardware avansat, în nucleele personalizate puteți găsi și funcționalități complet noi care nu sunt în nucleele standard, dar care pot fi utile utilizatorilor.

Practic, acestea sunt diverși drivere și sisteme de fișiere. De exemplu, unele nuclee includ suport pentru modulul CIFS, care vă permite să montați partajări Windows. Un astfel de modul se află în nucleul Matr1x pentru Nexus S, faux123 pentru Nexus 7, SiyahKernel și GLaDOS. În sine, este inutil, dar există mai multe aplicații pe piață care vă permit să folosiți capacitățile sale.

O altă caracteristică utilă este includerea driverului ntfs-3g în kernel (mai precis, în pachetul cu nucleul; driverul în sine funcționează ca o aplicație Linux), care este necesar pentru montarea unităților flash formatate ca fișier sistem NTFS. Acest driver se găsește în nucleele faux123 și SiyahKernel. De obicei se activează automat, dar dacă acest lucru nu se întâmplă, poți folosi aplicația StickMount de pe piață.

Multe nuclee includ și suport pentru așa-numita tehnologie zram, care vă permite să rezervați o cantitate mică de spațiu memorie cu acces aleator(de obicei 10%) și folosiți-l ca zonă de schimb comprimată. Rezultatul este un fel de extindere a cantității de memorie, fără consecințe grave asupra performanței. Disponibil în Leankernel, activat folosind Trickster MOD sau comanda zram enable.

Ultimele două caracteristici interesante sunt Fast USB Charge și Sweep2wake. Prima nu este altceva decât activarea forțată a „ încărcare rapidă„, chiar dacă smartphone-ul este conectat la portul USB al computerului. Modul de încărcare rapidă este disponibil pe toate smartphone-urile mai mult sau mai puțin noi, însă, din cauza limitărilor tehnice, nu poate fi activat simultan cu accesul la cardul de memorie. Funcția de încărcare rapidă USB vă permite să activați întotdeauna acest mod, în timp ce dezactivați accesul la unitate.

Sweep2wake este Metoda noua treziți dispozitivul, inventat de autorul cărții Breaked-kernel. Scopul său este să pornești smartphone-ul glisând degetul peste tastele de navigare situate sub ecran sau peste ecranul însuși. Aceasta este o caracteristică cu adevărat convenabilă, dar pornirea acesteia va face ca senzorul să rămână activ chiar și în timp ce dispozitivul este în stare de somn, ceea ce poate consuma în mod semnificativ bateria.

Overclocking, tensiune și economisire de energie

Overclocking-ul este popular nu numai printre proprietarii de computere desktop și laptop-uri, ci și printre pasionații de tehnologie mobilă. La fel ca pietrele de arhitectură x86, procesoarele și nucleele grafice ale dispozitivelor mobile sunt excelente. Cu toate acestea, metoda de overclocking în sine și pașii luați pentru a o implementa sunt oarecum diferite. Faptul este că driverele standard pentru SoC, care sunt responsabile pentru economisirea energiei și schimbarea frecvenței procesorului, sunt de obicei blocate la frecvențe standard, așa că pentru reglare fină trebuie să instalați fie un driver alternativ, fie un nucleu personalizat.

Aproape toate nucleele personalizate mai mult sau mai puțin de înaltă calitate și populare includ deja drivere deblocate, astfel încât, după instalarea acestora, capacitatea de a controla „puterea” procesorului este extinsă semnificativ. De obicei, constructorii de kernel personalizat fac două lucruri care influențează alegerea frecvenței. Aceasta este o extindere a intervalului de frecvență dincolo de cele specificate inițial - puteți seta fie o frecvență mai mare a procesorului, fie una foarte scăzută, ceea ce vă permite să economisiți bateria și să creșteți gradația frecvențelor, de exemplu, în loc de trei frecvențe posibile. , există șase dintre care să alegeți. Al doilea este adăugarea capacității de a regla tensiunea procesorului, astfel încât să puteți reduce tensiunea procesorului cu frecvente joase pentru a economisi încărcarea bateriei și pentru a crește la maxim pentru a crește stabilitatea.

Toate acestea pot fi controlate folosind binecunoscutul utilitar plătit SetCPU sau gratuit Trickster MOD. Recomandările de management sunt aceleași ca și pentru sistemele desktop. Frecventa joasa Este mai bine să setați procesorul la minim, dar nu mai mic de 200 MHz (pentru a evita întârzierile), pragul superior este crescut treptat în timp ce se testează stabilitatea funcționării, dacă scade, se recomandă să creșteți ușor tensiunea pentru aceasta. frecvență. Nu există recomandări pentru tensiune, deoarece fiecare procesor este unic și valorile vor fi diferite pentru fiecare.

Pe lângă schimbarea frecvențelor, constructorii adaugă adesea noi algoritmi de control pentru economisirea energiei (controlul automat al frecvenței procesorului) la nucleu, care, în opinia lor, pot da rezultate mai bune în comparație cu cele standard. Aproape toate se bazează pe algoritmul interactiv utilizat în mod implicit în noile versiuni de Android, a cărui esență este de a crește brusc frecvența procesorului la maxim atunci când sarcina crește, apoi de a o reduce treptat la minim. Acesta înlocuiește algoritmul OnDemand utilizat anterior, care a ajustat fără probleme frecvența în ambele direcții proporțional cu sarcina și face sistemul mai receptiv. Colectorii de nuclee alternative oferă următorii algoritmi pentru a înlocui Interactive:

  • SmartAssV2- regândirea algoritmului interactiv cu accent pe economisirea bateriei. Principala diferență este că nu trebuie să smulgi procesorul frecvente inalteîn cazul unor explozii scurte de încărcare, pentru care performanța scăzută a procesorului este suficientă. Valoarea implicită este utilizată în nucleul Matr1x.
  • InteractiveX- un algoritm interactiv reglat, a cărui caracteristică principală este de a bloca procesorul la frecvența minimă specificată de utilizator și de a dezactiva al doilea nucleu de procesor atunci când ecranul este oprit. Implicit este folosit în Leankernel.
  • LulzactiveV2- în esență, un OnDemand reinventat. Când sarcina procesorului o depășește pe cea specificată (60% implicit), algoritmul crește frecvența cu un anumit număr de diviziuni (1 în mod implicit) și o coboară când sarcina scade. Este deosebit de interesant, deoarece vă permite să setați independent parametrii de funcționare, prin urmare este potrivit pentru tocilarii înrăitați.

În general, constructorilor de kernel le place foarte mult să vină cu noi algoritmi de economisire a energiei din cauza ușurinței implementării lor, așa că puteți găsi alții o duzină. Cele mai multe dintre ele sunt un gunoi complet, iar atunci când alegeți un planificator ar trebui să vă ghidați după regula: fie unul dintre cele trei descrise mai sus, fie standardul Interactiv, care, apropo, este foarte bun. Puteți face o alegere folosind același Trickster MOD.

Interfete de control

Cele mai populare nuclee personalizate includ mai multe mecanisme pentru controlul fin al diferiților parametri ai driverului, dintre care cei mai obișnuiți sunt ColorControl, GammaControl, SoundControl și TempControl.

Primele două interfețe sunt disponibile aproape peste tot, inclusiv nucleele CyanogenMod, celelalte două sunt disponibile în Leankernel și poate în altele. Într-un fel sau altul, toate pot fi controlate folosind Trickster MOD.

Miezuri

Ce nucleu ar trebui să alegi? Nu există un răspuns clar la această întrebare și nu pentru că „fiecare a lui”, ci pentru că există un număr mare de dispozitive Android în lume și aproape la fel de multe nuclee diferite. Cu toate acestea, există mai multe nuclee populare care sunt dezvoltate pentru mai multe dispozitive simultan. Într-un fel sau altul, multe dintre ele le-am menționat de-a lungul poveștii și aici voi face o scurtă descriere a acestora.

  • Leankernel este nucleul pentru Galaxy Nexus, Nexus 7 și Galaxy S III. Accentul principal în timpul dezvoltării este pe simplitate și viteza de lucru. Algoritm de economisire a energiei: InteractiveX V2, programator I/O: ROW, toate interfețele de control de mai sus, suport pentru încărcare rapidă USB, Swap și zram, opțiuni flexibile de overclocking pentru CPU și GPU. Unul dintre cele mai bune nuclee. Personalizat folosind Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - nucleu pentru Nexus S și Nexus 4. Nucleu simplu și nesupraîncărcat. Suport pentru overclocking CPU și GPU, GammaControl, Fast USB Charge, Sweep2wake, programatoare I/O: SIO, ROW și FIOPS. Ajustări de performanță. Personalizat folosind Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) - un nucleu simplu și nesupraîncărcat pentru Nexus 4 și HTC One X. Optimizări pentru Snapdragon S4 și NVIDIA Tegra 3, mod reproiectat de economisire a energiei pentru Tegra 3, capacitate de overclocking, algoritm de economisire a energiei: reglat OnDemand (disponibil și Interactiv).
  • SiyahKernel - nucleu pentru Galaxy S II și S III. Opțiuni flexibile de overclocking, calibrare automată a bateriei, driver îmbunătățit pentru ecranul tactil, algoritmi de economisire a energiei: smartassV2 și lulzactiveV2, programatoare I/O: noop, termen limită, CFQ, BFQV3r2 (implicit), V(R), SIO. Drivere CIFS și NTFS (cu montare automată). Configurabil folosind ExTweaks.
  • franco.Kernel - nucleu pentru Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One și One X.

Capacitățile kernelului variază foarte mult de la dispozitiv la dispozitiv, așa că va trebui să verificați detaliile pe site. Cu toate acestea, prin intermiterea acestui nucleu, veți obține capacitatea de a overclock, reglarea driverului, performanță excelentă, precum și suport pentru diverși algoritmi și programatori de economisire a energiei. De fapt, nucleul include aproape toate modificările descrise în articol. Considerat unul dintre cele mai bune nuclee disponibile. Există o cerere pentru actualizare automata franko.Kernel Updater. Îl puteți configura folosind Trickster MOD.

Cum să instalați?

Toate nucleele sunt distribuite în arhive standard Android ZIP, care ar trebui să fie flash prin consola de recuperare în același mod ca firmware alternativ. De obicei, nucleele sunt compatibile cu orice firmware, așa că odată ce ați selectat nucleul potrivit, îl puteți instala în siguranță. Singurul lucru la care ar trebui să acordați atenție este versiunea de Android cu care este compatibil kernel-ul. Se poate potrivi fie cu toate cele disponibile pentru dispozitiv versiuni Android, și lucrează doar cu unul (dezvoltatorul vorbește de obicei în mod explicit despre asta). Înainte de a instala firmware-ul, asigurați-vă că ați făcut o copie de rezervă firmware-ul curent folosind aceeași consolă de recuperare. Dacă ceva nu merge bine, puteți oricând să reveniți.

concluzii

După cum puteți vedea, nucleele personalizate au multe avantaje față de nucleele utilizate în standard sau firmware terță parte. Și ceea ce este și mai important este că nu trebuie să cunoașteți toate complexitățile Android pentru a le folosi; doar descărcați și instalați arhiva ZIP.

Recent, noi versiuni de nuclee au fost lansate destul de des. O versiune stabilă apare la fiecare câteva luni. Ei bine, candidații instabili pentru lansări apar și mai des. Linus Torvalds și mulți dezvoltatori din întreaga lume lucrează constant pentru a îmbunătăți noile nuclee și pentru a le adăuga din ce în ce mai multe funcționalități.

Cu fiecare versiune nouă, nucleul Linux adaugă suport pentru mai multe dispozitive noi, cum ar fi procesoare noi, plăci video sau chiar ecrane tactile. Recent, suportul pentru echipamente noi s-a îmbunătățit foarte mult. De asemenea, noi sisteme de fișiere sunt incluse în nucleu, funcționarea stivei de rețea este îmbunătățită și erorile și erorile sunt remediate.

Dacă ai nevoie de mai mult informatii detaliate Pentru modificări într-o anumită versiune de kernel, consultați Jurnalul de modificări pe kernel.org, iar în acest articol ne vom uita la actualizarea nucleului Linux la cea mai nouă versiune. Voi încerca să nu leg instrucțiunile de o anumită versiune a nucleului; nucleele noi sunt lansate destul de des și va fi relevant pentru fiecare dintre ele.

Să ne uităm la actualizarea nucleului Ubuntu și CentOS. În primul rând, să ne uităm la cum să actualizați nucleul în Ubuntu 16.04.

Să vedem mai întâi ce nucleu ai instalat. Pentru a face acest lucru, deschideți un terminal și rulați:

De exemplu, în prezent folosesc versiunea 4.3 și pot actualiza la cea mai nouă versiune. Dezvoltatorii Ubuntu s-au asigurat deja că utilizatorii lor nu compilează manual nucleul și au creat pachete deb pentru noua versiune a nucleului. Acestea pot fi descărcate de pe site-ul oficial Canonical.

Aș putea oferi aici comenzi wget pentru descărcare dacă versiunea kernel-ului era cunoscută, dar în cazul nostru ar fi mai bine să folosim browserul. Deschideți site-ul web http://kernel.ubuntu.com/~kernel-ppa/mainline/. Iată toate nucleele compilate de echipa Ubuntu. Kernel-urile sunt compilate atât pentru distribuții specifice, cu numele de cod al distribuției, cât și pentru cele generale. Mai mult, nucleele de la Ubuntu 16.10 vor funcționa cel mai probabil în 16.04, dar nu ar trebui să instalați un nucleu de la 9.04 în Ubuntu 16.04.

Derulați în jos, aici se află versiunile mai noi de nuclee:

În plus, în partea de sus există un folder zilnic/actual, care conține cele mai recente versiuni de kernel, de noapte. Selectați versiunea de kernel dorită și descărcați două fișiere linux-headers și linux-image pentru arhitectura dvs.:

Odată ce descărcarea este completă, puteți trece la instalare. Pentru a face acest lucru, faceți următoarele în terminal:

Accesați folderul cu pachete de instalare de ex. ~/Descărcări:

Rulați instalarea:

Dacă această comandă nu funcționează, puteți merge pe altă cale. Instalați utilitarul gdebi:

sudo apt-get install gdebi

Apoi folosiți-l pentru a instala nucleul:

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

Nucleul este instalat, tot ce rămâne este să actualizați bootloader-ul:

sudo update-grub

Acum puteți reporni computerul și vedeți ce s-a întâmplat. După repornire, ne vom asigura că actualizarea nucleului Linux la cea mai nouă versiune a avut succes:

După cum puteți vedea, nucleul a fost instalat cu succes și funcționează. Dar nu te grăbi să ștergi versiune veche kernel, se recomandă să aveți mai multe versiuni ale nucleului pe sistem, astfel încât în ​​caz de probleme să puteți porni din vechea versiune de lucru.

Actualizare automată a kernelului Linux pe Ubuntu

Mai sus, ne-am uitat la cum să instalați manual versiunea de kernel necesară. Ubuntu avea înainte un PPA pentru construirea zilnică a nucleului, dar acum este închis. Prin urmare, puteți actualiza nucleul doar descărcând pachetul deb și instalându-l. Dar toate acestea pot fi simplificate folosind un script special.

Instalați scriptul:

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

Verificarea actualizărilor:

KernelUpdateChecker -r yakkety

Opțiunea -r vă permite să specificați ramura de distribuție pentru care doriți să căutați nuclee. Nuezele pentru xenial nu mai sunt construite, dar nucleele din versiunea următoare vor funcționa bine aici. În plus, opțiunea -no-rc poate spune utilitarului să nu folosească candidați de lansare, iar opțiunea -v specifică versiunea exactă a nucleului de instalat. Dacă nu vă interesează pentru ce distribuție este nucleul, atâta timp cât este cel mai nou, utilizați opțiunea --any-release. Scriptul va produce următorul rezultat:

Înainte de a instala nucleul, puteți vizualiza detaliile deschizând fișierul /tmp/kernel-update:

Aici putem vedea că yakkety a fost căutat și versiunea de kernel este în prezent 4.7-rc6. Putem instala:

sudo /tmp/kernel-update

Scriptul ne va arăta versiunea kernel-ului curent, precum și versiunea kernel-ului care va fi instalat, data construirii acestuia și alte detalii. De asemenea, veți fi întrebat dacă trebuie să păstrați un jurnal de modificări. Urmează instalarea:

Nuezele vechi, pentru orice eventualitate, nu șterg (n):

Gata, actualizarea nucleului la cea mai nouă versiune este completă, acum reporniți computerul (y):

Să verificăm dacă actualizarea kernel-ului Ubuntu a funcționat cu adevărat:

Mai mult, scriptul a fost adăugat la pornire și acum va verifica automat actualizările la 60 de secunde după conectare. Comanda rapidă de încărcare automată se află în fișier:

vi ~/.config/autostart/KernelUpdate.desktop

Îl puteți schimba după cum doriți sau îl puteți șterge. Dacă doriți să eliminați complet scriptul din sistem, rulați:

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

Nu se descarcă

Dacă au apărut erori în timpul instalării sau kernel-ul nu a fost actualizat corect și acum sistemul nu pornește cu noul kernel, puteți utiliza vechiul nucleu. De asemenea, este posibil ca sistemul să nu pornească dacă utilizați un driver proprietar pentru placi video NVIDIAîn acest caz, nu vă grăbiți să descărcați cea mai nouă versiune a nucleului; utilizați numai nuclee stabile; de ​​regulă, acestea au deja suport pentru acest modul deja adăugat.

Și pentru a restabili sistemul, selectați Opțiuni avansate pentru Ubuntuîn meniul Grub:

Și porniți nucleul care rulează anterior:

După descărcare, tot ce rămâne este să eliminați nucleul instalat incorect și să actualizați Grub din nou, înlocuiți versiunea dorită de kernel în loc de 4.7:

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

sudo update-grub

Sistemul dvs. a revenit la starea anterioară. Puteți încerca să instalați o versiune mai veche a nucleului sau să încercați din nou.

Actualizarea kernelului Linux la 4.4 pe CentOS

Acum să vedem cum să actualizați cea mai recentă versiune a nucleului Linux în CentOS. Instrucțiunile au fost testate pe CentOS 7, dar cel mai probabil vor funcționa pe RedHat 7, Fedora și alte distribuții similare.

De regulă, noile nuclee nu sunt incluse în depozitele oficiale CentOS, așa că pentru a obține cea mai recentă versiune stabilă va trebui să adăugăm depozitul ELRepo. Acesta este un depozit de pachete comerciale (Enterprise Linux Packages) și este, de asemenea, suportat de RedHat și Fedora.

Pentru a adăuga un depozit, urmați acești pași:

Mai întâi trebuie să importați cheia:

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

Adăugați un depozit și componentele necesareîn RHEL/Scientific Linux/CentOS-7:

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

yum instalează yum-plugin-fastestmirror

Pe Fedora 22 și versiuni ulterioare:

Utilizatorii de dispozitive mobile nu sunt întotdeauna mulțumiți de funcționarea și capacitățile gadgeturilor lor. Din acest motiv, utilizatorii caută cea mai bună modalitate de a flash kernel-ul sistemului de operare Android. Pe de o parte, această acțiune poate fi efectuată cu ușurință cu tableta sau smartphone-ul dvs. Mii de utilizatori au actualizat cu succes nucleul fără dificultăți sau probleme. Dar, pe de altă parte, orice greșeală în timpul acestui proces poate duce la probleme, inclusiv defecțiunea gadgetului și nevoia de servicii costisitoare. În diferite etape, există riscul de a alege o versiune greșită a firmware-ului nucleului, care a fost creată de dezvoltatori necalificați sau nu este potrivită pentru dispozitivul dvs. mobil. Vă recomandăm să fiți extrem de atenți atunci când efectuați orice acțiune care aduce modificări parte software dispozitiv la nivel scăzut. După ce kernel-ul a fost interpus cu succes, mulți oameni simt că țin în mâini un dispozitiv complet nou. Utilizatorii avansați pot astfel personaliza gadgetul în funcție de nevoile și preferințele lor, dobândind în același timp noi cunoștințe și experiență despre tehnologiile mobile moderne.

Nucleul sistemului de operare Android și firmware-ul acestuia

Care este nucleul unui dispozitiv mobil?

Nucleul sistemului de operare este baza software, care controlează hardware-ul dispozitivului. Parametrii de bază ai oricărui gadget depind de el. Trebuie remarcat faptul că este format din trei componente interconectate - nucleul Linux, mașina verticală Dalvik și diverse servicii și biblioteci de nivel scăzut. Dacă vorbim de firmware personalizat, atunci sunt afectate doar două componente, care vă permit să adăugați noi servicii de sistem, să optimizați parametrii existenți și să schimbați shell-ul grafic.

Cei care doresc să instaleze nucleul pe Android ar trebui să înțeleagă că există o diferență între conceptele de kernel personalizat și firmware personalizat. Aceasta din urmă este o versiune neoficială a software-ului. Firmware personalizat dezvoltat de o echipă de specialişti sub dispozitive specifice. Nucleul personalizat se bazează pe nucleul Linux, reprezentând versiunea sa neoficială. Adesea, un nucleu personalizat vine la pachet cu firmware. Dar poate fi instalat separat după schimbarea firmware-ului. De fapt, nu înlocuiește nucleul nativ dispozitiv mobil, care este scopul final al unei astfel de operațiuni.

Firmware-ul nucleului Android este realizat în principal pentru a crește timpul de funcționare a dispozitivului cu câteva ore prin ajustarea parametrilor de consum de energie. Poate că acesta este motivul principal pentru care utilizatorii efectuează conversii complexe ale software-ului gadgeturilor lor. Firmware-ul vă va permite să schimbați cipul video fără consecințe pentru smartphone sau tabletă. Utilizatorii avansați personalizează ecranul în acest fel, schimbându-i redarea culorilor și sensibilitatea. Firmware-ul Kernel vă permite să îmbunătățiți sunetul dispozitivului, să actualizați driverele și să introduceți suport pentru gadgeturi externe non-standard.

Înainte de a flashiza nucleul, vă recomandăm să vă asigurați că ați ales o versiune bună care a fost creată de dezvoltatori experimentați. În plus, este important să vă asigurați că este potrivit pentru versiunea dvs. de firmware Android. Este recomandabil să citiți recenziile persoanelor care au reușit să instaleze versiunea corespunzătoare a nucleului pe telefonul lor mobil. Recenziile pot conține Informații importante despre problemele care pot apărea în stadiul de firmware sau de funcționare ulterioară a dispozitivului.

Afișarea gadgetului prin Fastboot

Puteți să vă actualizați dispozitivul Android folosind Fastboot. Dar mai întâi trebuie să instalați utilitarul pe gadgetul dvs. Există două versiuni ale acestui program. Prima presupune descărcarea Fastboot în combinație cu cea oficială program Android SDK. A doua versiune implică descărcarea separată a utilitarului.

Vă recomandăm să verificați dacă dispozitivul mobil vă poate vedea laptopul sau computerul. Pentru a face acest lucru trebuie să faceți. După descărcare și instalare pe computer, laptopul care rulează pe sistemul de operare sistem Windows, utilitarul Fastboot și conexiune la smartphone, trebuie să deschideți linia de comandă. Pentru a face acest lucru, deschideți Căutare. În Windows 8, pentru a face acest lucru, trebuie doar să mutați cursorul mouse-ului în partea dreaptă a ecranului și să selectați secțiunea corespunzătoare. În Căutare trebuie să introduceți „cmd”, după care veți vedea Linie de comanda. Dispozitivul ar trebui să fie comutat în modul firmware. Apoi, ar trebui să introduceți o comandă care va testa interacțiunea dintre computer și dispozitivul mobil:

dispozitive fastboot

Dacă totul funcționează, trebuie să descărcați versiunea corectă a firmware-ului kernelului boot.img. Nu vă recomandăm să flashați nucleul firmware-ului original, deoarece acest lucru poate duce la probleme cu funcționarea smartphone-ului. Fișierul ar trebui să fie salvat pe o partiție pre-creată pe unitatea C numită „Android”. După aceasta, trebuie să porniți dispozitivul mobil în Fastboot și să îl conectați la computer. Pe ecran va apărea mesajul „Fastboot USB”.

  • cd C:\Android.
  • fastboot flash boot boot.img.
  • fastboot șterge memoria cache.
  • repornire fastboot.

Este foarte important să introduceți corect toate cuvintele, ținând cont de majuscule și spații. Comanda cd deschide folderul necesar care conține fișierele necesare. După aceasta, apare intermitent. Comanda fastboot erase cache șterge partiția Cache. Ultima comandă - fastboot reboot repornește dispozitivul din modul firmware la normal. Dacă ați efectuat corect toți pașii de mai sus, procesul va avea succes.

Firmware care utilizează ClockworkMod Recovery

ClockworkMod Recovery (sau CWM pe scurt) este un sistem de recuperare care este utilizat în locul Recovery-ului original din fabrică. CWM vă permite să instalați firmware nou pe un dispozitiv mobil, flash kernel, face copie de rezervă fișiere și restaurați shell-ul. Un astfel de sistem poate funcționa cu fișiere de actualizare a firmware-ului în format zip. ClockworkMod este instalat în, înlocuind recuperarea din fabrică. Pentru a lansa CWM, trebuie să cunoașteți combinația de taste potrivită pentru gadgetul dvs. În cele mai multe cazuri, aceasta este o combinație a butoanelor de reducere a volumului și de pornire care ar trebui să fie apăsate în timp ce dispozitivul pornește.

Pentru a flash-ul firmware-ului kernelului, descărcați arhiva cu o extensie zip. Trebuie să conțină folderul META-INF. Apoi există două opțiuni. În primul caz, trebuie să specificați fișierul firmware. A doua opțiune implică plasarea fișierului firmware în folderul /sdcard. După aceasta, ar trebui să activați ClockworkMod Recovery, găsiți acolo funcția Aplicare actualizare de la sdcard și specificați fișierul necesar.

Trebuie remarcat faptul că meniul ClockworkMod Recovery este convenabil și de înțeles pentru majoritatea utilizatorilor. În plus față de acest sistem de recuperare pentru firmware, puteți utiliza Recuperare TWRP. Acest instrument este convenabil și popular printre utilizatorii de Android. Principalul lucru este să alegi fisierul corect firmware.

Flasharea nucleului Android este o procedură la care nu recomandăm să apelați dacă sunteți complet mulțumit de funcționarea gadgetului. Astfel de acțiuni sunt conduse de dorința de a crește productivitatea. telefon mobil sau tabletă. Utilizatorii avansați au posibilitatea de a seta parametrii la un nivel inferior. Dar fără anumite cunoștințe și motive obiective, este mai bine să nu schimbați partea software a dispozitivului mobil, deoarece acest lucru este asociat cu riscuri și defecțiuni în funcționarea acestuia.