3.10 65 kjerneversjon. Oppgraderer Linux-kjernen til en ny versjon

"Og jeg ... vasker forgasseren!"
Vits

Introduksjon

I barnehagen dissekerte jeg og likesinnede gresshopper i håp om å forstå strukturen deres. Radiomottakeren "Russland" ble loddet på skolen. På instituttet var det bilens tur, hvis mutter gjentatte ganger ble omorganisert. Interessene har endret seg, men ønsket om å "demontere" våkner noen ganger, og i dag er det rettet mot Android.

Hvor mange ganger har du blitt reddet av tilstedeværelsen av Android-kilder? Jeg kan ikke lenger telles. Android - åpent prosjekt, men vi har dessverre kun mulighet til å lese; å redigere Android-koden uten å være Google-ansatt er nesten umulig. La oss sørge over dette øyeblikket og laste ned depotet. Hvordan du gjør dette er perfekt beskrevet på den offisielle .


Generell arkitektur

Arkitekturen til Android kan skjematisk avbildes som følger:

Stasjonære datamaskiner og bærbare datamaskiner har et veletablert system med strømmoduser (x86-prosessorer har flere av dem): datamaskinen kjører «på full hastighet» når noe blir gjort, og går inn i en strømeffektiv modus når systemet er inaktivt. Å gå i "dvale"-modus skjer enten etter en ganske lang periode med inaktivitet, eller manuelt, for eksempel når du lukker lokket på den bærbare datamaskinen.

På telefoner var det nødvendig med en annen mekanisme: hovedtilstanden til systemet er "dvale", utgangen fra den utføres bare i behov. Dermed kan systemet gå i dvale selv om en applikasjon er aktiv. Android implementerte wakelock-mekanismen: hvis en applikasjon (eller driver) gjør noe viktig som skulle nå sin logiske konklusjon, "fanger" den wakelock-en, og forhindrer enheten i å sovne.

Forsøk på å portere wakelock-mekanismen til kjernen forårsaket motstand fra mange utviklere. Android-programmerere løste et spesifikt problem, hvis løsning var en viss mekanisme. Betingelsene for oppgaven var svært trange. Målplattformen er ARM, så funksjonene ble brukt: ARM-prosessorer antar i utgangspunktet hyppige endringer i dvale- og våknemodus, i motsetning til x86. I Android kommuniserer applikasjoner med strømstyringssystemet gjennom PowerManager, men hva med Linux-klientapplikasjoner?

Android-utviklere prøvde ikke engang å finne felles vedtak"for fremtiden", som da ville strømme inn i hovedkjernen uten problemer, konsulterte ikke Linux-kjernefellesskapet om dette problemet. Kan de klandres for dette? Til tross for alle problemene og diskusjonene, som nevnt ovenfor, dukket det opp et API i kjernen med identisk autosleep-funksjonalitet.

Android-applikasjonsprogrammerere trenger sjelden å forholde seg til wakelocks, siden plattformen og sjåførene håndterer forpliktelsene som er tildelt dem, under hensyntagen til "hvilemodus". Imidlertid vil den kjente PowerManageren hjelpe til med å gripe inn i denne prosessen. Forfatteren kommer forresten med bare ett scenario: å forhindre at telefonen sovner når tjenesten startes fra BroadcastReceiver, som løses av hjelpeklassen fra Android Support Library WakefulBroadcastReceiver .

Killer med lavt minne

Standard Linux-kjernen har Out of Memory Killer , som, basert på badness-parameteren, bestemmer prosessen som skal drepes:

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

Jo mer minne prosessen bruker og jo mindre den lever, jo mindre heldig vil den være.

Diagrammet viser generelt system android logging. Loggdriveren gir tilgang til hver buffer via /dev/log/*. Applikasjoner har tilgang til dem ikke direkte, men gjennom liblog-biblioteket. Liblog-biblioteket kommuniserer med Log-, Slog- og EventLog-klassene. Adb logcat-kommandoen viser innholdet i "hovedbufferen".

Konklusjon

I dette notatet har vi kort gjennomgått noen av funksjonene til Android som et Linux-system. Noen andre deler ble utelatt i parentes (pmem, RAM-konsoll, etc.), så vel som slike viktige aspekter av plattformen som helhet, for eksempel System Service, systemoppstartsprosessen og andre. Hvis dette emnet er av interesse, vil vi vurdere dem i de følgende artiklene.

Søndag kveld Linus Torvalds, Linux-forelder og kjerneutvikler operativsystem, kunngjorde etter to måneders arbeid utgivelsen av en ny versjon av Linux-kjernen 3.10.

I følge utvikleren selv viste denne kjernen seg å være den største når det gjelder innovasjoner de siste årene.

Linus innrømmet at han først hadde til hensikt å løslate en annen utgivelseskandidat, men etter litt omtanke, lente han seg mot å gi ut den endelige utgivelsen på nummer 3.10 med en gang. Torvalds bemerket også i sin melding at den nye kjernen, som versjon 3.9, er helt klar for daglig bruk.

I tillegg, i kunngjøringen av RC-versjonen av kjernen, skrev Linus Torvalds at han tidligere alltid inkluderte en liste over navn på personer som sendte visse deler av koden, men denne gangen ville denne listen være så stor at den ikke kunne være gitt helt i ett ark.

Liste over store endringer gjort i kjerne 3.10:

  • Nå er det mulig å forhindre at skript kjøres som programmer - funksjonaliteten for å kjøre skript som inneholder banen til tolken i "#!"-headeren kan nå kompileres som en kjernemodul;
  • Bcache-systemet utviklet og brukt av Google er integrert. Bcache lar deg cache tilgang til trege harddisker på raske SSD-stasjoner; caching utføres på blokkenhetsnivå - og dette lar deg øke hastigheten på tilgangen til stasjonen, uavhengig av filsystemene som brukes på enheten;
  • Kjernen kan kompileres med Clang-kompilatoren takket være oppdateringene utarbeidet av LLVMLinux-prosjektet;
  • Et dynamisk kontrollsystem for generering av timeravbrudd har dukket opp. Nå, avhengig av gjeldende tilstand, kan du endre avbrudd i området fra tusenvis av tikk per sekund til ett avbrudd per sekund - dette lar deg minimere belastningen på CPU når du behandler avbrudd i tilfelle systeminaktivitet. For øyeblikket brukes denne funksjonen for sanntidssystemer og HPC (high-performance computing), men i fremtidige kjerneutgivelser vil den også være aktivert for skrivebordssystemer;
  • Nå er det mulig å generere en hendelse som varsler applikasjonen om at det nærmer seg utmatting av tilgjengelig minne for prosessen/systemet (i cgroups);
  • Minnetilgangsprofilering har blitt tilgjengelig for perf-kommandoen;
  • Lagt til støtte for RDMA (iSER)-protokollen til iSCSI-undersystemet;
  • Det er en ny "synkroniserings"-driver (eksperimentell). Den ble utviklet innenfor rammen Android-plattformer og brukes for synkronisering mellom andre drivere;
  • QXL virtuelle grafikkortdriver er integrert (brukt i virtualiseringssystemer for raskt uttak grafer som bruker SPICE-protokollen);
  • Nye strømstyringsfunksjoner introdusert med AMD 16h ("Jaguar"-familien)-prosessorer støttes nå;
  • Støtte for akselerert videodekoding ved hjelp av maskinvare UVD-dekoderen innebygd i moderne AMD GPUer er lagt til Radeon DRM;
  • En driver for Microsoft Hyper-V virtuelle skjermkort har dukket opp (det er også forbedringer i driften av Hyper-V som helhet);
  • Utførelse av kryptografiske funksjoner (sha256, sha512, blowfish, twofish, slange og camellia) er optimert ved hjelp av AVX/AVX2 og SSE-instruksjoner.

Brukere mobile enheter ikke alltid fornøyd med arbeidet og egenskapene til gadgetene deres. Av denne grunn leter brukerne etter beste måten hvordan flashe kjernen til Android-operativsystemet. På den ene siden kan en slik handling enkelt utføres med nettbrettet eller smarttelefonen. Tusenvis av brukere har flashet kjernen uten problemer eller problemer. Men på den annen side kan enhver feil under denne prosessen føre til, blant annet svikt i dingsen og behovet for en dyr kundeservice. På ulike stadier er det en risiko for å velge ikke riktig versjon kjernefastvare som er laget av ufaglærte utviklere eller som ikke passer til din mobile enhet. Vi anbefaler at du er ekstremt forsiktig når du utfører handlinger som gjør endringer i programvaredelen av enheten på et lavt nivå. Etter vellykket flashing av kjernen har mange følelsen av at de holder en helt ny enhet i hendene. Avanserte brukere kan dermed tilpasse dingsen til å passe deres behov og preferanser, samtidig som de får ny kunnskap og erfaring om moderne mobilteknologier.

Kjernen til Android-operativsystemet og dets fastvare

Hva er kjernen i en mobil enhet?

Operativsystemkjernen er grunnlaget programvare, som styrer maskinvaren til enheten. Hovedparametrene til enhver gadget avhenger av den. Det skal bemerkes at den består av tre sammenkoblede komponenter - Linux-kjernen, den vertikale Dalvik-maskinen og ulike lavnivåtjenester og biblioteker. Hvis vi snakker om tilpasset firmware, er bare to komponenter berørt, som lar deg legge til nye systemtjenester, optimalisere eksisterende parametere og endre det grafiske skallet.

De som ønsker å installere kjernen på Android bør forstå at det er en forskjell mellom konseptene for en tilpasset kjerne og tilpasset firmware. Sistnevnte er en uoffisiell versjon av programvaren. Tilpasset firmware utviklet av et team med spesialister under spesifikke enheter. Den tilpassede kjernen er basert på Linux-kjernen, som representerer dens uoffisielle versjon. Ofte følger en tilpasset kjerne med fastvaren. Men det kan installeres separat etter å ha endret fastvaren. Faktisk erstatter den ikke den opprinnelige kjernen til den mobile enheten, som er det endelige målet for en slik operasjon.

Å blinke Android-kjernen gjøres hovedsakelig for å øke driftstiden til enheten med flere timer ved å justere strømforbruksparameterne. Kanskje dette er hovedårsaken til at brukere utfører komplekse transformasjoner av programvaren til gadgetene deres. Fastvaren vil også tillate deg å endre videobrikken uten konsekvenser for smarttelefonen eller nettbrettet. Avanserte brukere justerer dermed skjermen, endrer fargegjengivelse, følsomhet. Kernel-fastvare lar deg forbedre lyden til enheten, oppdatere drivere og implementere støtte for ikke-standard eksterne gadgets.

Før du flasher kjernen, anbefaler vi at du forsikrer deg om at du har valgt riktig versjon, som ble laget av erfarne utviklere. I tillegg er det viktig å sørge for at den passer til din Android-firmwareversjon. Det anbefales å lese anmeldelser av folk som klarte å installere den riktige versjonen av kjernen på mobiltelefonen. Anmeldelser kan inneholde viktig informasjon om problemer som kan oppstå under fastvaren eller videre drift av enheten.

Gadget-fastvare via Fastboot

Du kan flashe Android-enheten din ved å bruke Fastboot. Men først må du installere verktøyet på gadgeten din. Det er to versjoner av dette programmet. Den første innebærer å laste ned Fastboot i kombinasjon med den offisielle Android-program SDK. Den andre versjonen innebærer å laste ned verktøyet separat.

Vi anbefaler å sjekke om mobilenheten din ser en bærbar datamaskin eller datamaskin. For å gjøre dette, må du utføre. Etter nedlasting og installasjon på en datamaskin, kjører en bærbar datamaskin på en operativsystem Windows-system, fastboot-verktøy og koble til en smarttelefon, må du åpne kommandolinjen. For å gjøre dette, åpne Søk. I Windows 8 er alt du trenger å gjøre å peke musepekeren til høyre side av skjermen og velge den aktuelle delen. I søket må du skrive inn "cmd", hvoretter kommandolinjen vises foran deg. Enheten bør settes i fastvaremodus. Deretter skriver du inn en kommando som vil teste samhandlingen mellom datamaskinen og den mobile enheten:

fastboot-enheter

Hvis alt fungerer, må du laste inn riktig versjon av boot.img-kjernens fastvare. Vi anbefaler ikke å flashe kjernen original firmware, da dette kan forårsake problemer med driften av smarttelefonen. Filen skal lagres på en forhåndsopprettet partisjon på stasjon C kalt "Android". Etter det må du starte opp mobilenheten din i Fastboot og koble den til datamaskinen. Meldingen "Fastboot USB" vises på skjermen.

  • cd C:\Android.
  • fastboot flash boot boot.img.
  • fastboot slett cache.
  • fastboot omstart.

Det er veldig viktig å skrive inn alle ord riktig, med tanke på store og små bokstaver og mellomrom. cd-kommandoen åpner den nødvendige mappen, som inneholder de nødvendige filene. Etter det oppstår en blinking. Fastboot erase cache-kommandoen sletter cache-partisjonen. Den siste kommandoen - fastboot reboot starter enheten på nytt fra fastvaremodus til normal. Hvis du har utført alle disse trinnene riktig, vil prosessen være vellykket.

Firmware som bruker ClockworkMod Recovery

ClockworkMod Recovery (eller CWM for kort) er et gjenopprettingssystem som brukes i stedet for den originale gjenopprettingen fra fabrikken. CWM lar deg installere ny fastvare på en mobil enhet, flashe kjernen, lage backup filer og gjenopprett skallet. Et slikt system kan fungere med fastvareoppdateringsfiler som har zip-format. ClockworkMod er installert i , og erstatter fabrikkgjenoppretting. For å starte CWM må du vite hvilken tastekombinasjon som passer for dingsen din. I de fleste tilfeller er dette en kombinasjon av volum ned og strøm på-knappene, som bør trykkes inn under oppstart av enheten.

For å flashe kjernen, last ned arkivet med zip-utvidelsen. Den må inneholde META-INF-mappen. Deretter er det to alternativer. I det første tilfellet må du spesifisere fastvarefilen. Det andre alternativet innebærer å plassere fastvarefilen i / sdcard-mappen. Etter det bør du aktivere ClockworkMod Recovery, finne Apply update from sdcard-funksjonen der og spesifisere den nødvendige filen.

Det skal bemerkes at ClockworkMod Recovery-menyen er praktisk og forståelig for de fleste brukere. I tillegg til et slikt gjenopprettingssystem for fastvare, kan du bruke TWRP Recovery. Dette verktøyet er praktisk og populært blant Android-brukere. Det viktigste er å velge riktig firmwarefil.

Å blinke Android-kjernen er en prosedyre som vi ikke anbefaler å ty til hvis du er helt fornøyd med driften av gadgeten. Slike handlinger er drevet av ønsket om å forbedre ytelsen til en mobiltelefon eller nettbrett. Avanserte brukere får muligheten til å sette parametere på et lavere nivå. Men uten viss kunnskap og objektive grunner er det bedre å ikke endre programvaredelen av den mobile enheten, siden dette er forbundet med risiko og funksjonsfeil i driften.

Vi har allerede skrevet om tilpasset fastvare, rotapplikasjoner og alternative oppstartsmenyer mer enn én gang. Alle disse er standardemner i Android-hacker-fellesskapet, men i tillegg til alt det ovennevnte, er det også noe som en "tilpasset kjerne", som kan gi nesten ubegrensede muligheter for å administrere en smarttelefon og dens maskinvare på det laveste nivå. I denne artikkelen vil jeg fortelle deg hva det er, hvorfor du trenger det og hvordan du velger riktig tilpasset kjerne.

tilpasset kjerne?

Hva er en tilpasset kjerne? Som vi alle vet, er Android en kake som består av tre basislag: Linux-kjernen, et sett med biblioteker og tjenester på lavt nivå, og virtuell maskin Dalvik, på toppen av det kjører et grafisk skall, verktøy og tjenester på høyt nivå, samt nesten alle applikasjoner installert fra markedet. Skaperne av de fleste alternative tilpassede firmwares jobber vanligvis bare med de to øverste lagene, legger til funksjoner til det grafiske skallet (som knapper i gardinen), endrer det (temamotoren i CyanogenMod), samt legger til nye systemtjenester (equalizer i CyanogenMod) og optimalisere eksisterende.

Forfatterne av populær firmware gjør også endringer i Linux-kjernen så langt det er mulig: de optimerer (bygger med mer aggressive kompilatoroptimaliseringsflagg), inkluderer ny funksjonalitet (for eksempel Windows-delingsstøtte), og gjør også andre endringer, som f.eks. muligheten til å heve prosessorfrekvensen over produsentens . Ofte forblir alt dette bak kulissene, og mange brukere av tilpasset firmware er ikke engang klar over disse funksjonene, spesielt siden den samme CyanogenMod kommer med en tilpasset kjerne kun for et begrenset utvalg enheter som både kildekoden til den opprinnelige kjernen har. og muligheten for å erstatte den er tilgjengelig. For eksempel bruker nesten all CyanogenMod-firmware for Motorola-smarttelefoner en standardkjerne - det er umulig å erstatte den med din egen på grunn av bootloaderens ugjennomtrengelige beskyttelse.

Imidlertid kan kjernen i smarttelefoner med en ulåst bootloader erstattes separat fra hovedfastvaren. Og ikke bare erstatte, men installer en kjerne med et stort antall forskjellige funksjoner som krever viss teknisk kunnskap for å administrere, og derfor vanligvis ikke er innebygd i kjernene til populær firmware som CyanogenMod, AOKP og MIUI. Blant disse funksjonene kan du finne støtte for høye prosessorfrekvenser, skjermgammakontroll, strømsparingsmoduser, svært effektive strømforvaltere og et stort antall andre funksjoner.

I denne artikkelen vil vi snakke om hva skaperne av tilpassede kjerner kan tilby oss, vurdere de viktigste tilpassede kjernene for ulike enheter, og også prøve å installere kjernen uavhengig av hovedfastvaren og sjekke alt på vår egen hud. Så hva tilbyr utviklere av alternative kjerner vanligvis?

smart trafikkleder

OMAP35XX SoC-ene som brukes for eksempel i Galaxy S II og Galaxy Nexus, har en SmartReflex-funksjon som fungerer som smart system justering av spenningen når belastningen på prosessoren endres. Faktisk eliminerer det behovet for finjustering av spenningen av brukeren.


Optimaliseringer

Ofte er hovedformålet med å bygge en tilpasset kjerne å optimalisere ytelsen. Vanligvis prøver en leverandør av mobilteknologi å opprettholde en balanse mellom ytelse og stabilitet, så selv gode optimaliseringsteknikker som kan øke hastigheten på enheten betydelig kan avvises av produsenten bare på grunnlag av at noen applikasjoner begynte å krasje etter søknaden. hver tiende lansering. Selvfølgelig plager ikke slike bagateller entusiaster, og mange av dem er klare til å bruke alle kompilatoralternativer, strømsparende algoritmer til kjernen av sin egen sammenstilling og øke prosessorfrekvensen så høyt som enheten tåler. Blant alle optimaliseringsteknikkene er fire de vanligste:



En annen type optimalisering: endring av standard I/O-planlegger. Situasjonen i dette feltet er enda mer interessant, fordi i stedet for å forstå hvordan planleggere fungerer, leser noen kjernebyggere ganske enkelt dokumenter på Linux I/O-planleggere på nettet og trekker konklusjoner. Blant brukere er denne tilnærmingen enda mer vanlig. Faktisk er nesten alle de kraftigste og smarteste Linux-planleggerne helt uegnet for Android: de er designet for bruk med mekaniske datalagre, der datatilgangshastigheten varierer avhengig av hodets posisjon. Planleggeren bruker ulike ordninger gruppere forespørsler basert på den fysiske posisjonen til dataene, slik at forespørsler om data som er nær gjeldende sjefsposisjon vil få høyere prioritet. Dette er fullstendig ulogisk i tilfellet med solid-state-minne, som garanterer samme tilgangshastighet til alle celler. Avanserte planleggere vil gjøre mer skade enn nytte på en smarttelefon, og de mest klønete og primitive vil vise de beste resultatene. Linux har tre slike planleggere:

  • Noop (ingen operasjon)- den såkalte ikke-planleggeren. En enkel FIFO-forespørselskø, den første forespørselen vil bli behandlet først, den andre andre og så videre. Godt egnet for solid-state-minne og lar deg rettferdig prioritere applikasjoner for tilgang til stasjonen. Ekstra pluss: lav belastning på prosessoren på grunn av den svært enkelt prinsipp arbeid. Minus: ingen hensyn til spesifikasjonene til enheten, noe som kan forårsake ytelsesfeil.
  • SIO (Enkel I/O)- en analog av Deadline-planleggeren uten å ta hensyn til nærhet av sektorer til hverandre, det vil si designet spesielt for solid-state-minne. To hovedhøydepunkter: prioriteringen av leseoperasjoner over skriveoperasjoner og gruppering av operasjoner etter prosesser med tildeling av en tidsdel for hver prosess for å utføre operasjoner. I smarttelefoner, hvor hastigheten til gjeldende applikasjon og overvekt av lesing over skriving er viktig, viser den veldig god ytelse. Tilgjengelig i Leankernel, Matr1x-kjerne for Nexus 4 og SiyahKernel.
  • RAD (LES Over SKRIV) er en planlegger spesielt utviklet for mobile enheter og lagt til kjernen for bare noen måneder siden. Hovedutfordringen: prioritert behandling av leseforespørsler, men rettferdig fordeling av tid for skriveforespørsler. Regnes som den beste NAND-planleggeren som er tilgjengelig for øyeblikket, standard på Leankernel og Matr1x.

Det er verdt å si at nesten all standard firmware og halvparten av egendefinerte fortsatt bruker kjernen med standard Linux CFQ-planleggeren, noe som imidlertid ikke er så ille, siden det kan fungere korrekt med solid state-stasjoner. På den annen side er det for komplekst, skaper en større belastning på prosessoren (og dermed batteriet) og tar ikke hensyn til spesifikasjonene til det mobile operativsystemet. Et annet populært valg er Deadline-planleggeren, som er like god som SIO, men er overkill. Du kan se listen over tilgjengelige planleggere med følgende kommando:

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

For å endre, bruk dette (der rad er navnet på planleggeren):

# for i i /sys/block/*/queue/scheduler; gjør ekko rad > $1; ferdig

Noen kjernebyggere bruker også en annen type I/O-relatert optimalisering. Dette er en deaktivering av fsync-systemanropet som brukes til å tvinge en flush av endret innhold. åpne filer til disk. Det er en oppfatning at uten fsync vil systemet få tilgang til stasjonen sjeldnere og dermed spare prosessortid og batteristrøm. En ganske kontroversiell uttalelse: fsync brukes ikke så ofte i applikasjoner og kun for å lagre virkelig viktig informasjon, men å deaktivere den kan føre til tap av den samme informasjonen i tilfelle operativsystemkrasj eller andre problemer. Muligheten til å deaktivere fsync er tilgjengelig i franco.Kernel- og GLaDOS-kjernene, og kontrolleres ved hjelp av filen /sys/module/sync/parameters/fsync_enabled, som skal skrives 0 for å deaktivere eller 1 for å aktivere. Igjen, denne funksjonen anbefales ikke.

Legger til nye funksjoner til kjernen

I tillegg til optimaliseringer, tweaks og ulike avanserte maskinvarestyringssystemer, inneholder tilpassede kjerner selvfølgelig også helt ny funksjonalitet som ikke er tilgjengelig i standardkjerner, men som kan være nyttig for brukerne.

I utgangspunktet er dette ulike drivere og filsystemer. For eksempel inkluderer noen kjerner støtte for CIFS-modulen, som lar deg montere Windows-aksjer. En slik modul er i Matr1x-kjernen for Nexus S, faux123 for Nexus 7, SiyahKernel og GLaDOS. I seg selv er det ubrukelig, men det er flere applikasjoner på markedet som lar deg bruke egenskapene.

En annen nyttig ting er inkluderingen av ntfs-3g-driveren i kjernen (mer presist, i pakken med kjernen fungerer selve driveren som en Linux-applikasjon), som er nødvendig for å montere flash-stasjoner formatert i NTFS-filsystemet. Denne driveren er tilgjengelig i kjernene faux123 og SiyahKernel. Vanligvis aktiveres den automatisk, men hvis dette ikke skjer, kan du bruke applikasjonen StickMount fra markedet.

Mange kjerner inkluderer også støtte for den såkalte zram-teknologien, som lar deg reservere en liten mengde RAM (vanligvis 10%) og bruke det som et komprimert bytteområde. Som et resultat blir det en slags utvidelse av minnemengden, uten noen alvorlige konsekvenser for ytelsen. Tilgjengelig i Leankernel, aktivert med Trickster MOD eller zram enable-kommando.

De to siste interessante funksjonene er rask USB-lading og Sweep2wake. Den første er ikke noe mer enn å tvinge inkluderingen av "hurtiglading"-modus, selv om smarttelefonen er koblet til datamaskinens USB-port. Hurtiglademodus er tilgjengelig i alle mer eller mindre nye smarttelefoner, men på grunn av tekniske begrensninger kan den ikke aktiveres samtidig med tilgang til minnekortet. Funksjonen for rask USB-lading lar deg alltid aktivere denne modusen, samtidig som du deaktiverer tilgangen til stasjonen.

Sweep2wake er ny måte vekkeenhet oppfunnet av forfatteren av Breaked-kernel. Dens betydning er å slå på smarttelefonen ved å sveipe navigasjonstastene under skjermen, eller over selve skjermen. Dette er en veldig hendig funksjon, men å slå den på vil holde sensoren aktiv selv når enheten sover, noe som kan tappe batteriet merkbart.

Overklokking, spenning og strømsparing

Overklokking er populær ikke bare blant eiere av stasjonære datamaskiner og bærbare datamaskiner, men også blant entusiaster av mobilteknologi. I likhet med steinene i x86-arkitekturen fungerer prosessorene og grafikkkjernene til mobilteknologi utmerket. Imidlertid er selve overklokkingsmetoden og trinnene som er tatt for å implementere den noe annerledes her. Faktum er at standarddriverne for SoC-er som er ansvarlige for energisparing og endring av prosessorfrekvensen vanligvis er låst ved standardfrekvenser, så for finjustering må du installere enten en alternativ driver eller en tilpasset kjerne.

Nesten alle mer eller mindre høykvalitets og populære tilpassede kjerner inkluderer allerede ulåste drivere, så etter å ha installert dem, er muligheten til å kontrollere "kraften" til prosessoren kraftig utvidet. Vanligvis gjør tilpassede kjernebyggere to ting som påvirker frekvensvalg. Dette er en utvidelse av frekvensområdet utover de opprinnelig innstilte - du kan stille inn både en høyere prosessorfrekvens og en veldig lav, som lar deg spare batteriet og øke frekvensgraderingen, for eksempel i stedet for tre mulige frekvenser, du tilbys et utvalg av seks. Det andre er tillegget av muligheten til å justere prosessorspenningen, takket være hvilken du kan redusere prosessorspenningen ved lave frekvenser for å spare batteristrøm og øke den ved høye frekvenser for å øke stabiliteten.

Alt dette kan kontrolleres ved hjelp av det velkjente betalte verktøyet SetCPU eller gratis Trickster MOD. Administrasjonsanbefalinger er de samme som for stasjonære systemer. Det er bedre å sette den nedre prosessorfrekvensen til minimum, men ikke lavere enn 200 MHz (for å unngå forsinkelser), den øvre terskelen økes gradvis med stabilitetstesting, når den faller, anbefales det å øke spenningen litt for en gitt Frekvens. Det er ingen spenningsanbefalinger, siden hver prosessor er unik og verdiene vil være forskjellige for alle.

I tillegg til å endre frekvenser, legger montører ofte til nye strømsparende kontrollalgoritmer (automatisk prosessorfrekvenskontroll) til kjernen, som etter deres mening kan vise bedre resultater enn standard. Nesten alle av dem er basert på den interaktive algoritmen som brukes som standard i nye versjoner av Android, hvis essens er å øke prosessorfrekvensen kraftig til det maksimale i tilfelle en økning i belastningen, og deretter gradvis redusere den til et minimum. . Den erstattet den tidligere brukte OnDemand-algoritmen, som jevnt justerte frekvensen i begge retninger i forhold til belastningen, og lar deg gjøre systemet mer responsivt. Alternative kjernebyggere tilbyr følgende algoritmer for å erstatte Interactive:

  • SmartAssV2- Å tenke nytt om den interaktive algoritmen med fokus på å spare batteri. Hovedforskjellen er ikke å trekke prosessoren til høye frekvenser i tilfelle korte belastninger, som lav prosessorytelse er nok for. Standarden brukes i Matr1x-kjernen.
  • InteractiveX- innstilt interaktiv algoritme, hvor hovedfunksjonen er prosessorlåsen ved den minste brukerspesifiserte frekvensen og de-energi fra den andre prosessorkjernen når skjermen er slått av. Standarden brukes i Leankernel.
  • LulzactiveV2- i hovedsak en gjenoppfunnet OnDemand. Når prosessorbelastningen overstiger den spesifiserte (60 % som standard), øker algoritmen frekvensen med et visst antall divisjoner (1 som standard), og senker den når belastningen reduseres. Av spesiell interesse er at det lar deg selvstendig stille inn arbeidsparametrene, derfor er det egnet for herdede geeks.

Generelt sett er kjernebyggere veldig glade i å komme opp med nye strømsparende algoritmer på grunn av enkelheten i implementeringen, så du kan finne rundt et dusin andre. De fleste av dem er komplett slagg, og når du velger en planlegger, bør du bli veiledet av regelen: enten en av de tre beskrevet ovenfor, eller standard Interactive, som forresten er veldig bra. Du kan gjøre et valg ved å bruke samme Trickster MOD.

Administrasjonsgrensesnitt

De fleste av de populære tilpassede kjernene inkluderer flere mekanismer for finkornet kontroll av ulike driverparametere, hvorav de vanligste er ColorControl, GammaControl, SoundControl og TempControl.

De to første grensesnittene er tilgjengelige nesten overalt, inkludert CyanogenMod-kjernene, de to andre - i Leankernel og kanskje i andre. På en eller annen måte kan alle styres ved å bruke Trickster MOD.

Kjerner

Hvilken kjerne å velge? Det er ikke noe enkelt svar på dette spørsmålet, og ikke fordi "til hver sin egen", men fordi det er et stort antall Android-enheter i verden og nesten like mange forskjellige kjerner. Imidlertid er det flere populære kjerner som utvikles for flere enheter samtidig. På en eller annen måte nevnte jeg mange av dem i løpet av historien, men her vil jeg gi en kort beskrivelse av dem.

  • Leankernel er kjernen for Galaxy Nexus, Nexus 7 og Galaxy S III. Hovedvekten i utviklingen er på enkelhet og arbeidshastighet. Strømsparingsalgoritme: InteractiveX V2, I/O-planlegger: ROW, alle de ovennevnte kontrollgrensesnittene, støtte for rask USB-lading, Swap og zram, fleksibel CPU- og GPU-overklokking. En av beste kjerner. Kan tilpasses med Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI , goo.gl/ZcyvA) - Kjerne for Nexus S og Nexus 4. Enkel og oversiktlig kjerne. Støtte for CPU- og GPU-overklokking, GammaControl, Fast USB Charge, Sweep2wake, I/O-planleggere: SIO, ROW og FIOPS. Ytelsesjusteringer. Kan tilpasses med Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4 , goo.gl/eZkAV) er en enkel og ryddig kjerne for Nexus 4 og HTC One X. Optimaliseringer for Snapdragon S4 og NVIDIA Tegra 3, redesignet strømsparemodus for Tegra 3, overklokkingsevne, strømsparingsalgoritme: innstilt OnDemand (Interactive er også tilgjengelig).
  • SiyahKernel er kjernen for Galaxy S II og S III. Fleksible overklokkingsalternativer, automatisk batterikalibrering, forbedret berøringsskjermdriver, strømsparingsalgoritmer: smartassV2 og lulzactiveV2, I/O-planleggere: noop, deadline, CFQ, BFQV3r2 (standard), V(R), SIO. CIFS- og NTFS-drivere (med automontering). Konfigurerbar med ExTweaks.
  • franco.Kernel - kjerne for Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One og One X.

Mulighetene til kjernen varierer sterkt fra enhet til enhet, så detaljene må ses på på stedet. Ved å blinke denne kjernen vil du imidlertid få muligheten for overklokking, driverinnstilling, utmerket ytelse, samt støtte for ulike strømsparingsalgoritmer og planleggere. Faktisk inkluderer kjernen nesten alle justeringene som er beskrevet i artikkelen. Regnes som en av de beste kjernene som finnes. Det er søknad om automatisk oppdatering franko.kernel-oppdatering. Du kan konfigurere ved å bruke Trickster MOD.

Hvordan installere?

Alle kjerner er distribuert i standard Android ZIP-arkiver, som skal flashes gjennom gjenopprettingskonsollen på samme måte som alternativ fastvare. Vanligvis er kjernene kompatible med hvilken som helst fastvare, derfor kan du trygt installere den etter å ha valgt riktig kjerne. Det eneste du bør ta hensyn til er versjonen av Android som kjernen er kompatibel med. Den kan både nærme seg alle tilgjengelige enheter Android-versjoner, og arbeid med bare én (utvikleren sier vanligvis eksplisitt dette). Før du blinker, sørg for å sikkerhetskopiere gjeldende fastvare med samme gjenopprettingskonsoll. Hvis noe går galt, kan du alltid rulle tilbake.

konklusjoner

Som du kan se, har tilpassede kjerner mange fordeler i forhold til kjernene som brukes i standard eller tredjeparts fastvare. Og enda viktigere, du trenger ikke å kjenne alle detaljene til Android for å bruke dem, bare last ned og installer ZIP-arkivet.

i det siste nye versjoner av kjerner kommer ut ganske ofte. Med noen måneders mellomrom er det en stabil utgivelse. Vel, ustabile utgivelseskandidater kommer ut enda oftere. Linus Torvalds og mange utviklere rundt om i verden jobber hele tiden med å forbedre nye kjerner og legge til mer og mer funksjonalitet til dem.

Med hver nye versjon legger Linux-kjernen til støtte for flere nye enheter, for eksempel nye prosessorer, skjermkort eller til og med berøringsskjermer. I det siste har støtten for ny maskinvare blitt mye bedre. Dessuten er nye filsystemer inkludert i kjernen, nettverksstakken er forbedret, feil og feil er fikset.

Hvis du trenger mer informasjon om endringer i en bestemt kjerneversjon, se endringsloggen på kernel.org, og i denne artikkelen skal vi se på oppdatering av Linux-kjernen til den nyeste versjonen. Jeg vil prøve å ikke knytte instruksjonen til en spesifikk kjerneversjon, nye kjerner utgis ganske ofte, og det vil være relevant for hver av dem.

Vurder å oppdatere Ubuntu- og CentOS-kjernen. La oss først se på hvordan du oppdaterer kjernen i Ubuntu 16.04.

La oss først se hvilken kjerne du har installert. For å gjøre dette, åpne en terminal og kjør:

For eksempel bruker jeg for øyeblikket versjon 4.3 og kan oppgradere til den nyeste versjonen. Ubuntu-utviklerne har allerede sørget for at brukerne deres ikke bygger kjernen for hånd og lager deb-pakker av den nye kjerneversjonen. De kan lastes ned fra Canonicals offisielle nettsted.

Jeg kunne ha gitt wget-kommandoene for å laste ned her hvis kjerneversjonen var kjent, men i vårt tilfelle ville det vært bedre å bruke en nettleser. Gå til http://kernel.ubuntu.com/~kernel-ppa/mainline/. Alt kompilert av Ubuntu-kjerneteamet er her. Kjerner er bygget både for spesifikke distribusjoner, med kodenavnet til distribusjonen, og generelle. Dessuten vil kjerner fra Ubuntu 16.10 mest sannsynlig fungere i 16.04, men fra 9.04 på Ubuntu 16.04 bør du ikke installere kjernen.

Rull til bunnen, det er der de nyere versjonene av kjernene er plassert:

I tillegg er det helt øverst en daglig/gjeldende mappe, som inneholder de nyeste, nattlige kjernebyggene. Velg ønsket kjerneversjon og last ned de to filene linux-headers og linux-image for din arkitektur:

Etter at nedlastingen er fullført, kan du fortsette med installasjonen. For å gjøre dette, kjør følgende i terminalen:

Naviger til mappen med installasjonspakker, for eksempel ~/Nedlastinger:

Kjør installasjonen:

Hvis denne kommandoen ikke fungerte, kan du gå den andre veien. Installer gdebi-verktøyet:

sudo apt-get install gdebi

Bruk den deretter til å installere kjernen:

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

Kjernen er installert, det gjenstår å oppdatere bootloader:

sudo update-grub

Nå kan du starte datamaskinen på nytt og se hva som skjedde. Etter omstart, sørg for at Linux-kjerneoppdateringen til den nyeste versjonen var vellykket:

Som du kan se, er kjernen installert og kjører. Men ikke skynd deg å fjerne gammel versjon kjerne, anbefales det å ha flere versjoner av kjernen i systemet, slik at du i tilfelle problemer kan starte opp fra den gamle fungerende versjonen.

Automatisk Linux-kjerneoppdatering i Ubuntu

Ovenfor så vi på hvordan du installerer ønsket kjerneversjon manuelt. Ubuntu pleide å ha en PPA for daglige kjernebygginger, men den er stengt nå. Derfor kan du kun oppdatere kjernen ved å laste ned deb-pakken og installere den. Men alt dette kan forenkles med et spesielt skript.

Installere skriptet:

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

Ser etter oppdateringer:

KernelUpdateChecker -r yakkety

Alternativet -r lar deg spesifisere distribusjonsgrenen du skal søke etter kjerner for. For xenial bygges ikke kjernene lenger, men kjernene fra neste versjon vil fungere fint her. I tillegg kan -no-rc-alternativet fortelle verktøyet om ikke å bruke utgivelseskandidater, og -v-alternativet spesifiserer den eksakte kjerneversjonen som skal installeres. Hvis du ikke bryr deg om hvilken distribusjon kjernen er for, så lenge den er den nyeste, bruk --any-release-alternativet. Skriptet vil gi følgende utgang:

Før du installerer kjernen, kan du se detaljene ved å åpne filen /tmp/kernel-update:

Her kan vi se at søket etter yakkety ble utført, og kjerneversjon 4.7-rc6 er tilgjengelig for øyeblikket. Vi kan installere:

sudo /tmp/kernel-oppdatering

Skriptet vil vise oss versjonen av den gjeldende kjernen, samt versjonen av kjernen som vil bli installert, dens byggedato og andre detaljer. Du vil også bli spurt om du trenger å føre en endringslogg. Deretter kommer installasjonen:

Gamle kjerner, for sikkerhets skyld, ikke slett (n):

Ferdig, oppdatering av kjernen til den nyeste versjonen er fullført, start nå datamaskinen på nytt (y):

Sjekker om Ubuntu-kjerneoppdateringen faktisk fungerte:

Dessuten er skriptet lagt til autoload og vil nå automatisk se etter oppdateringer 60 sekunder etter pålogging. Autoload-snarveien er i filen:

vi ~/.config/autostart/KernelUpdate.desktop

Du kan endre det som du vil eller slette det. Hvis du vil fjerne skriptet helt fra systemet, kjør:

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

Laster ikke ned

Hvis det oppstod feil under installasjonen eller kjernen ble oppdatert feil og systemet nå ikke starter opp med den nye kjernen, kan du bruke den gamle kjernen. Det kan også hende at systemet ikke starter hvis du bruker en proprietær driver for et NVIDIA-skjermkort, i dette tilfellet, ikke skynd deg å laste ned den nyeste kjerneversjonen, bruk bare stabile kjerner, de legger vanligvis allerede til støtte for denne modulen.

Og for å gjenopprette systemet, velg elementet Avanserte alternativer for Ubuntu i Grub-menyen:

Og start den forrige kjørende kjernen:

Etter nedlasting gjenstår det å fjerne den feil installerte kjernen og oppdatere Grub igjen, bytt ut ønsket kjerneversjon i stedet for 4.7:

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

sudo update-grub

Systemet ditt er nå tilbake til sin forrige tilstand. Du kan prøve å installere en eldre kjerneversjon eller prøve på nytt.

Oppgradering av Linux-kjernen til 4.4 på CentOS

Og la oss nå se på hvordan du oppdaterer den nyeste versjonen av Linux-kjernen i CentOS. Instruksjonene har blitt testet på CentOS 7, men vil mest sannsynlig fungere på RedHat 7, Fedora og andre lignende distribusjoner.

Som regel er ikke nye kjerner inkludert i de offisielle CentOS-depotene, så for å få den siste stabile versjonen, må vi legge til ELRepo-depotet. Dette er et oppbevaringssted for kommersielle pakker (Enterprise Linux-pakker) og vedlikeholdes også på RedHat og Fedora.

Følg disse trinnene for å legge til et depot:

Først må du importere nøkkelen:

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

Legg til depotet og nødvendige komponenter til RHEL/Scientific Linux/CentOS-7:

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

yum installer yum-plugin-fastestmirror

På Fedora 22 og nyere: