itthon / Windows oktatóanyagok / Az Android kernel funkcióinak áttekintése. A Linux kernel frissítése egy új verzióra. Firmware a kernelen 3.10 65 w3bsit3-dns.com

Az Android kernel funkcióinak áttekintése. A Linux kernel frissítése egy új verzióra. Firmware a kernelen 3.10 65 w3bsit3-dns.com

Felhasználók mobil eszközök nem mindig elégedettek kütyük munkájával és képességeivel. Emiatt a felhasználók a legjobb módot keresik a kernel flash-re operációs rendszer Android. Egyrészt egy ilyen művelet könnyen végrehajtható táblagépével vagy okostelefonjával. Felhasználók ezrei sikeresen flashelték a kernelt minden nehézség és probléma nélkül. Másrészt azonban minden hiba a folyamat során vezethet, beleértve a modul meghibásodását és a drága szolgáltatás szükségességét. Különböző szakaszokban fennáll annak a veszélye, hogy nem megfelelő verziójú kernel firmware-t választanak, amelyet szakképzetlen fejlesztők hoztak létre, vagy amely nem illeszkedik a mobileszközhöz. Javasoljuk, hogy legyen rendkívül óvatos, amikor olyan műveletet hajt végre, amely alacsony szinten módosítja az eszköz szoftveres részét. A kernel sikeres felvillantása után sokaknak az az érzése, hogy egy teljesen új eszközt tartanak a kezükben. A haladó felhasználók így szükségleteiknek és preferenciáiknak megfelelően testreszabhatják a kütyüt, miközben új ismereteket és tapasztalatokat szerezhetnek a modern mobiltechnológiákról.

Az Android operációs rendszer kernelje és firmware-je

Mi a mobileszköz magja?

Az operációs rendszer kernelje az alap szoftver, amely az eszköz hardverét vezérli. Bármely modul fő paraméterei attól függenek. Meg kell jegyezni, hogy három egymással összefüggő komponensből áll - a Linux kernelből, függőleges gép Dalvik és különféle alacsony szintű szolgáltatások és könyvtárak. Ha egyéni firmware-ről beszélünk, akkor csak két olyan összetevőt érint, amelyek lehetővé teszik új hozzáadását rendszerszolgáltatások, optimalizálja a meglévő beállításokat és módosítsa a grafikus környezetet.

Azoknak, akik szeretnék telepíteni a kernelt Androidra, meg kell érteniük, hogy különbség van az egyéni kernel és az egyéni firmware között. Ez utóbbi a szoftver nem hivatalos verziója. Egyedi firmware, amelyet egy szakértői csapat fejlesztett ki konkrét eszközök. Az egyéni kernel a Linux kernelen alapul, ami annak nem hivatalos verzióját képviseli. A firmware-hez gyakran egyedi kernel is érkezik. De a firmware megváltoztatása után külön is telepíthető. Valójában nem helyettesíti a mobileszköz natív magját, ami egy ilyen művelet végső célja.

Az Android kernel villogtatása elsősorban azért történik, hogy az energiafogyasztási paraméterek beállításával több órával megnöveljék a készülék működési idejét. Talán ez a fő oka annak, hogy a felhasználók bonyolult átalakításokat hajtanak végre kütyük szoftverében. A firmware lehetővé teszi a videochip cseréjét is anélkül, hogy ez az okostelefonra vagy táblagépre nézve következményekkel járna. A haladó felhasználók így beállítják a képernyőt, megváltoztatva annak színvisszaadását, érzékenységét. A kernel firmware lehetővé teszi az eszköz hangjának javítását, az illesztőprogramok frissítését és a nem szabványos külső modulok támogatásának megvalósítását.

A kernel felvillantása előtt javasoljuk, hogy győződjön meg arról, hogy a megfelelő verziót választotta, amelyet tapasztalt fejlesztők készítettek. Ezenkívül fontos megbizonyosodni arról, hogy illeszkedik az Android firmware-verziójához. Célszerű elolvasni azoknak a véleményét, akiknek sikerült a kernel megfelelő verzióját telepíteni mobiltelefonjukra. Az áttekintések fontos információkat tartalmazhatnak a firmware vagy az eszköz további működése során felmerülő problémákról.

Gadget firmware a Fastboot segítségével

A Fastboot segítségével flashelheti Android-eszközét. De először telepítenie kell a segédprogramot a moduljára. Ennek a programnak két változata van. Az első a Fastboot letöltését jelenti a hivatalos programmal együtt Android program SDK. A második verzió magában foglalja a segédprogram külön letöltését.

Javasoljuk, hogy ellenőrizze, hogy mobileszköze lát-e laptopot vagy számítógépet. Ehhez végre kell hajtani. Letöltés és számítógépre telepítés után egy működő laptopon Windows rendszer, fastboot segédprogramokés okostelefon csatlakoztatásakor meg kell nyitnia a parancssort. Ehhez nyissa meg a Keresést. Windows 8 rendszerben mindössze annyit kell tennie, hogy az egérmutatót a képernyő jobb oldalára irányítja, és kiválasztja a megfelelő részt. A Keresésben be kell írnia a „cmd” parancsot, amely után látni fogja parancs sor. Az eszközt firmware módba kell helyezni. Ezután írjon be egy parancsot, amely teszteli a számítógép és a mobileszköz közötti interakciót:

fastboot eszközök

Ha minden működik, be kell töltenie a boot.img kernel firmware megfelelő verzióját. Nem javasoljuk a kernel flashelését eredeti firmware, mivel ez problémákat okozhat az okostelefon működésében. A fájlt a C meghajtón egy előre létrehozott "Android" nevű partícióra kell menteni. Ezt követően indítsa el mobileszközét a Fastboot alkalmazásba, és csatlakoztassa a számítógépéhez. A képernyőn megjelenik a „Fastboot USB” üzenet.

  • cd C:\Android.
  • fastboot flash boot boot.img.
  • gyorsindítás törli a gyorsítótárat.
  • fastboot újraindítás.

Nagyon fontos, hogy minden szót helyesen írjunk be, figyelembe véve a kis- és nagybetűket és a szóközöket. A cd parancs megnyitja a szükséges mappát, amely tartalmazza a szükséges fájlokat. Ezt követően villogás következik be. A gyorsindítás gyorsítótár törlése parancs törli a gyorsítótár-partíciót. Az utolsó parancs - fastboot reboot újraindítja az eszközt firmware módból normál módba. Ha ezeket a lépéseket helyesen hajtotta végre, akkor a folyamat sikeres lesz.

Firmware a ClockworkMod Recovery segítségével

A ClockworkMod Recovery (vagy röviden CWM) egy helyreállítási rendszer, amelyet a gyári eredeti Recovery helyett használnak. A CWM lehetővé teszi a telepítést új firmware mobileszközre, flash-elje meg a kernelt, készítse el biztonsági mentés fájlokat, és állítsa vissza a shellt. Egy ilyen rendszer képes működni a zip formátumú firmware-frissítési fájlokkal. A ClockworkMod a gyári helyreállítás helyére lett telepítve. A CWM elindításához ismernie kell a kütyüjének megfelelő billentyűkombinációt. A legtöbb esetben ez a hangerő csökkentő és a bekapcsoló gomb kombinációja, amelyeket az eszköz indításakor kell megnyomni.

A kernel flasheléséhez töltse le az archívumot a zip kiterjesztéssel. Tartalmaznia kell a META-INF mappát. Ezután két lehetőség van. Az első esetben meg kell adnia a firmware fájlt. A második lehetőség magában foglalja a firmware fájl elhelyezését a / sdcard mappában. Ezután aktiválja a ClockworkMod Recovery-t, keresse meg ott az Apply update from sdcard funkciót, és adja meg a szükséges fájlt.

Meg kell jegyezni, hogy a ClockworkMod Recovery menü kényelmes és érthető a legtöbb felhasználó számára. A firmware ilyen helyreállítási rendszerén kívül használhatja TWRP helyreállítás. Ez az eszköz kényelmes és népszerű az Android felhasználók körében. A fő dolog a választás helyes fájl firmware.

Az Android kernel felvillantása egy olyan eljárás, amelyet nem javasolunk, ha teljesen elégedett a kütyü működésével. Ezeket a tevékenységeket a teljesítmény javításának vágya vezérli. mobiltelefon vagy tabletta. A haladó felhasználók alacsonyabb szinten állíthatják be a paramétereket. De bizonyos ismeretek és objektív okok nélkül jobb, ha nem változtatja meg a mobileszköz szoftver részét, mivel ez kockázatokkal és működési hibákkal jár.

"És én... kimosom a karburátort!"
Tréfa

Bevezetés

Az óvodában hasonszőrűekkel boncolgattuk a szöcskét abban a reményben, hogy megértjük felépítésüket. Az "Oroszország" rádióvevőt az iskolában forrasztották. Az intézetben az autókon volt a sor, amelyek anyáit többször is átrendezték. Az érdeklődési körök megváltoztak, de néha felébred a „szétszerelés” vágya, és ma már az Androidra irányul.

Hányszor mentette meg Önt az Android-források jelenléte? Engem már nem lehet megszámolni. Az Android nyílt forráskódú projekt, de sajnos csak olvasási képességünk van; az Android kód szerkesztése anélkül, hogy a Google alkalmazottja lennél, szinte lehetetlen. Gyászoljuk el ezt a pillanatot, és töltsük le az adattárat. Ennek módja tökéletesen le van írva a hivatalos oldalon.


Általános építészet

Az Android architektúrája sematikusan a következőképpen ábrázolható:

Az asztali számítógépeken és laptopokon jól bevált energiamód-rendszer van (az x86-os processzoroknál több is van): a számítógép „teljes sebességgel” fut, ha valami éppen készül, és energiatakarékos üzemmódba lép, amikor a rendszer tétlen. Az „alvó” módba lépés vagy meglehetősen hosszú tétlenség után, vagy manuálisan történik, például a laptop fedelének lecsukásakor.

A telefonokon más mechanizmusra volt szükség: a rendszer fő állapota „hibernált”, a kilépés csak szükség esetén történik. Így a rendszer akkor is alvó állapotba léphet, ha valamilyen alkalmazás aktív. Az Androidban a wakelock mechanizmust implementálták: ha egy alkalmazás (vagy illesztőprogram) valami fontos dolgot csinál, aminek logikus végkifejletére kell jutnia, akkor „elfogja” a wakelockot, megakadályozva, hogy az eszköz elaludjon.

A wakelock mechanizmus kernelre történő portolására tett kísérlet sok fejlesztő ellenállását váltotta ki. Az Android programozók egy konkrét problémát oldottak meg, amelynek megoldása egy bizonyos mechanizmus volt. A feladat feltételei nagyon szűkek voltak. A célplatform az ARM, ezért annak funkcióit használták: Az ARM processzorok kezdetben gyakori változtatásokat feltételeznek az alvó és ébrenléti módokban, ellentétben az x86-tal. Androidban az alkalmazások a PowerManageren keresztül kommunikálnak az energiagazdálkodási rendszerrel, de mi a helyzet a Linux kliens alkalmazásokkal?

Az Android fejlesztői meg sem próbáltak közös megoldást találni a „jövőre”, amely aztán gond nélkül befolyik a fő kernelbe, nem egyeztettek a Linux kernel közösségével a problémáról. Lehet őket hibáztatni ezért? Az összes probléma és megbeszélés ellenére, amint azt fentebb említettük, egy API jelent meg a magban, azonos autosleep funkcióval.

Az Android alkalmazásprogramozóinak ritkán kell megküzdeniük a wakelockokkal, hiszen a platform és a meghajtók kezelik a rájuk ruházott kötelezettségeket, figyelembe véve az „alvó” módot. A jól ismert PowerManager azonban segít beavatkozni ebbe a folyamatba. A szerző egyébként egyetlen forgatókönyvvel áll elő: nehogy elaludjon a telefon, amikor a BroadcastReceiverről indul a szolgáltatás, amit az Android Support Library WakefulBroadcastReceiver segédosztálya old meg.

Alacsony memória gyilkos

A szabványos Linux kernel rendelkezik egy Out of Memory Killerrel, amely a badness paraméter alapján határozza meg a leállítandó folyamatot:

Badness_for_task = total_vm_for_task / (sqrt(cpu_time_in_seconds) *
sqrt(sqrt(cpu_idő_percekben)))

Így minél több memóriát fogyaszt a folyamat és minél kevesebbet él, annál kevésbé lesz szerencsés.

A diagram azt mutatja általános rendszer android naplózás. A naplózási illesztőprogram minden pufferhez hozzáférést biztosít a /dev/log/*-on keresztül. Az alkalmazások nem közvetlenül, hanem a liblog könyvtáron keresztül férhetnek hozzájuk. A liblog könyvtár kommunikál a Log , Slog és EventLog osztályokkal. Az adb logcat parancs megjeleníti a "fő" puffer tartalmát.

Következtetés

Ebben a megjegyzésben röviden áttekintettük az Android mint Linux rendszer néhány funkcióját. Néhány más rész kimaradt a zárójelekből (pmem, RAM-konzol stb.), valamint a platform egészének olyan fontos aspektusai, mint a rendszerszolgáltatás, a rendszerindítási folyamat és mások. Ha ez a téma érdekli, a következő cikkekben megvizsgáljuk őket.

Nem egyszer írtunk már egyedi firmware-ről, root alkalmazásokról és alternatívákról rendszerindító menük. Mindezek standard témák az Android hacker közösségében, azonban a fentieken kívül létezik még egy „egyéni kernel”, amely szinte korlátlan lehetőségeket biztosít az okostelefon és annak hardverének legalacsonyabb szintű kezelésére. szint. Ebben a cikkben elmondom, mi ez, miért van szüksége rá, és hogyan kell kiválasztani a megfelelő egyéni kernelt.

egyéni kernel?

Mi az az egyéni kernel? Mint mindannyian tudjuk, az Android egy torta, amely három alaprétegből áll: a Linux kernelből, alacsony szintű könyvtárak és szolgáltatások halmazából, és Virtuális gép A Dalvik, amelyen egy grafikus héj, magas szintű eszközök és szolgáltatások, valamint szinte az összes piacról telepített alkalmazás fut. A legtöbb alternatív egyedi firmware készítői általában csak a felső két réteggel dolgoznak, funkciókat adnak a grafikus héjhoz (például gombok a függönyön), megváltoztatják azt (a témamotor a CyanogenModban), valamint új rendszerszolgáltatásokat (ekvalizer) adnak hozzá. CyanogenMod-ban) és a meglévők optimalizálása.

A népszerű firmware-ek készítői a lehetőségekhez képest változtatnak a Linux kernelen is: optimalizálnak (agresszívebb fordítóoptimalizálási jelzőkkel építkezve), új funkciókat építenek be (például Windows megosztás támogatása), és egyéb változtatásokat is végrehajtanak, pl. mint a processzorfrekvencia a gyártó által biztosított érték fölé emelésének képessége. Gyakran mindez a színfalak mögött marad, és sok egyedi firmware-felhasználó nem is ismeri ezeket a funkciókat, különösen azért, mert ugyanaz a CyanogenMod egyedi kernellel csak korlátozott számú eszközhöz érkezik, amelyekhez mind a natív kernel forráskódja és cseréjének lehetősége is rendelkezésre áll. Például szinte az összes firmware CyanogenMod Mert Motorola okostelefonok szabványos kernelt használjon - a rendszerbetöltő áthatolhatatlan védelme miatt nem lehet saját magára cserélni.

A feloldatlan rendszerbetöltővel rendelkező okostelefonok kernelje azonban a fő firmware-től külön cserélhető. És nem csak cserélni, hanem hatalmas mennyiségben telepíteni is a kernelt különféle funkciókat, amelyek kezelése némi technikai tudást igényel, ezért általában nem épülnek be olyan népszerű firmware-ek kernelébe, mint a CyanogenMod, AOKP és MIUI. Ezen szolgáltatások között megtalálható a magas processzorfrekvenciák támogatása, a képernyő gammavezérlése, az energiatakarékos módok, a rendkívül hatékony energiamenedzserek és számos egyéb szolgáltatás.

Ebben a cikkben arról fogunk beszélni, hogy mit kínálhatnak nekünk az egyéni kernelek készítői, tekintsük át a főbb egyéni kerneleket különféle eszközök, és a fő firmware-től függetlenül próbáljuk meg telepíteni a kernelt és mindent a saját bőrünkön ellenőrizni. Szóval, mit kínálnak általában az alternatív kernelek fejlesztői?

intelligens forgalomirányító

A például a Galaxy S II-ben és a Galaxy Nexusban használt OMAP35XX SoC-ok SmartReflex funkcióval rendelkeznek, amely intelligens feszültségbeállító rendszerként működik, amikor a processzor terhelése megváltozik. Valójában szükségtelenné teszi a felhasználó finom feszültséghangolását.


Optimalizálások

Az egyéni kernel felépítésének fő célja gyakran a teljesítmény optimalizálása. Általában a mobiltechnológiai gyártó igyekszik fenntartani az egyensúlyt a teljesítmény és a stabilitás között, így a jó optimalizálási technikákat is, amelyek jelentősen növelhetik az eszköz sebességét, csak arra hivatkozva utasíthatja el a gyártó, hogy alkalmazásuk után egyes alkalmazások összeomlani kezdtek. minden tizedik indítás. Az ilyen apróságok persze nem zavarják a rajongókat, és sokan készek bármilyen fordítói lehetőséget, energiatakarékos algoritmust alkalmazni saját szerelvényük magjára, és olyan magasra emelni a processzorfrekvenciát, amennyire az eszköz elviseli. Az összes optimalizálási technika közül négy a leggyakoribb:



Az optimalizálás másik típusa: az alapértelmezett I/O ütemező módosítása. A helyzet ezen a területen még érdekesebb, mert ahelyett, hogy megértenék az ütemezők működését, egyes kernelkészítők egyszerűen elolvassák a weben található Linux I/O ütemezők dokumentumait, és következtetéseket vonnak le. A felhasználók körében ez a megközelítés még gyakoribb. Valójában a legerősebb és legokosabb Linux ütemezők szinte mindegyike teljesen alkalmatlan Androidra: mechanikus adattárolókkal való használatra készültek, amelyekben az adatelérési sebesség a fej helyzetétől függően változik. Az ütemező az adatok fizikai helyétől függően különböző lekérdezés-összesítési sémákat használ, így az aktuális fejhelyhez közeli adatokra vonatkozó kérések magasabb prioritást kapnak. Ez teljesen logikátlan a szilárdtest-memória esetében, amely minden cellához azonos hozzáférési sebességet garantál. A haladó tervezők többet ártanak, mint használnak egy okostelefonon, és a legügyetlenebbek és legprimitívebbek mutatják a legjobb eredményt. A Linuxnak három ilyen ütemezője van:

  • Noop (nincs művelet)- az úgynevezett nem ütemező. Egy egyszerű FIFO-kérési sor, az első kérést először, a másodikat a másodikat és így tovább. Jól használható szilárdtest-memóriákhoz, és lehetővé teszi az alkalmazások méltányos rangsorolását a meghajtóhoz való hozzáféréshez. További plusz: alacsony terhelés a processzoron a nagyon egyszerű működési elv miatt. Mínusz: nem veszik figyelembe az eszköz sajátosságait, ami teljesítményhibákat okozhat.
  • SIO (egyszerű I/O)- a Deadline ütemező analógja, anélkül, hogy figyelembe venné a szektorok egymáshoz való közelségét, vagyis kifejezetten szilárdtest-memóriához tervezték. Két fő kiemelés: az olvasási műveletek prioritása az írási műveletekkel szemben, és a műveletek csoportosítása folyamatok szerint úgy, hogy minden folyamathoz időszeletet rendelnek a műveletek végrehajtásához. Okostelefonokban, ahol fontos az aktuális alkalmazás sebessége és az olvasás túlsúlya az írással szemben, nagyon jól mutat jó teljesítmény. Elérhető Leankernelben, Matr1x kernelben Nexus 4-hez és SiyahKernelhez.
  • SOR (OLVASÁS, ÍRÁS) egy ütemező, amelyet kifejezetten mobileszközökhöz terveztek, és csak néhány hónappal ezelőtt került a magba. A fő kihívás: az olvasási kérések prioritásos feldolgozása, de az írási kérések időbeli igazságos elosztása. A legjobbnak tekinthető Ebben a pillanatbanütemező a NAND memóriához, alapértelmezés szerint a Leankernelben és a Matr1x-ben.

Érdemes elmondani, hogy szinte az összes szabványos firmware és az egyediek fele továbbra is a szabványos Linux CFQ ütemezővel használja a kernelt, ami azonban nem olyan rossz, mivel megfelelően működik szilárdtestalapú meghajtók. Másrészt túl bonyolult, nagyobb terhelést jelent a processzoron (és ezáltal az akkumulátoron), és nem veszi figyelembe a mobil operációs rendszer sajátosságait. Egy másik népszerű választás a Deadline ütemező, amely ugyanolyan jó, mint a SIO, de túlzás. Az elérhető ütemezők listáját a következő paranccsal tekintheti meg:

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

A módosításhoz alkalmazza ezt (ahol a sor az ütemező neve):

# for i in /sys/block/*/queue/scheduler; echo row > $1; Kész

Egyes kernelkészítők másfajta I/O-val kapcsolatos optimalizálást is használnak. Ez az fsync rendszerhívás letiltása, amellyel a megváltozott tartalom kiürítését kényszerítik ki. nyissa meg a fájlokat lemezre. Egyes vélemények szerint fsync nélkül a rendszer ritkábban fog hozzáférni a meghajtóhoz, és így a processzoridőt és az akkumulátor energiáját takaríthatja meg. Meglehetősen ellentmondásos kijelentés: az fsync-t nem túl gyakran használják alkalmazásokban, és valóban csak mentésre fontos információ, de letiltása ugyanazon információk elvesztéséhez vezethet az operációs rendszer összeomlása vagy egyéb problémák esetén. Az fsync letiltásának lehetősége a franco.Kernel és GLaDOS kernelekben érhető el, és a /sys/module/sync/parameters/fsync_enabled fájl vezérli, amelyet 0-val kell írni a letiltáshoz vagy 1-et az engedélyezéshez. Ismétlem, ez a funkció nem ajánlott.

Új funkciók hozzáadása a kernelhez

Természetesen az optimalizálásokon, finomításokon és különböző rendszerek fejlett hardverkezelés, az egyéni kernelek teljesen új funkciókat is tartalmaznak, amelyek nem elérhetőek a szabványos kernelekben, de hasznosak lehetnek a felhasználók számára.

Alapvetően ezek különféle illesztőprogramok és fájlrendszerek. Egyes kernelek például támogatják a CIFS modult, amely lehetővé teszi a Windows megosztások csatlakoztatását. Ilyen modul található a Matr1x kernelben a Nexus S-hez, a faux123-ban a Nexus 7-hez, a SiyahKernelhez és a GLaDOS-hoz. Önmagában haszontalan, de számos olyan alkalmazás van a piacon, amely lehetővé teszi a képességek kihasználását.

Egy másik hasznos dolog az ntfs-3g illesztőprogram beépítése a kernelbe (pontosabban a kernellel lévő csomagban maga az illesztőprogram Linux alkalmazásként működik), ami szükséges a fájlformátumba formázott flash meghajtók csatlakoztatásához. NTFS rendszer. Ez az illesztőprogram elérhető a faux123 és a SiyahKernel kernelekben. Általában automatikusan aktiválódik, de ha ez nem történik meg, használhatja a StickMount alkalmazást a piacon.

Sok kernel támogatja az úgynevezett zram technológiát is, amely lehetővé teszi egy kis összeg lefoglalását véletlen hozzáférésű memória(általában 10%), és használja tömörített csereterületként. Ennek eredményeként a memória mennyisége egyfajta bővülés következik be, anélkül, hogy a teljesítményre bármiféle komolyabb következménye lenne. Elérhető a Leankernelben, engedélyezve a Trickster MOD vagy a zram enable paranccsal.

Az utolsó két érdekes funkció a gyors USB-töltés és a Sweep2wake. Az első nem más, mint a " gyors töltés”, még akkor is, ha az okostelefon a számítógép USB-portjához csatlakozik. A gyorstöltési mód minden többé-kevésbé új okostelefonban elérhető, azonban technikai korlátok miatt nem lehet a memóriakártya elérésével egy időben bekapcsolni. A gyors USB-töltés funkció lehetővé teszi, hogy mindig engedélyezze ezt az üzemmódot, miközben letiltja a meghajtóhoz való hozzáférést.

A Sweep2wake egy új módja az eszköz felébresztésének, amelyet a Breaked-kernel szerzője talált ki. Jelentése az okostelefon bekapcsolása a képernyő alatt található navigációs billentyűk elhúzásával vagy magán a képernyőn. Valóban praktikus funkció, de bekapcsolásával az érzékelő akkor is aktív marad, amikor a készülék alvó állapotban van, ami észrevehetően lemerítheti az akkumulátort.

Túlhúzás, feszültség- és energiatakarékosság

A túlhajtás nemcsak a helyhez kötött számítógépek és laptopok tulajdonosai körében népszerű, hanem a mobiltechnológia rajongói körében is. Az x86 architektúrához hasonlóan a mobiltechnológia processzorai és grafikus magjai is remekül működnek. Maga a túlhajtási módszer és a megvalósítás lépései azonban itt némileg eltérnek. A helyzet az, hogy az energiatakarékosságért és a processzorfrekvencia változtatásáért felelős SoC-k szabványos illesztőprogramjai általában szabványos frekvenciákra vannak zárva, így a finomhangoláshoz vagy alternatív illesztőprogramot vagy egyedi kernelt kell telepíteni.

Szinte minden többé-kevésbé jó minőségű és népszerű egyedi kernel tartalmaz már feloldott illesztőprogramokat, így ezek telepítése után jelentősen kibővül a processzor "teljesítményének" szabályozásának lehetősége. Az egyéni kernelkészítők általában két olyan dolgot tesznek, amelyek befolyásolják a frekvenciaválasztást. Ez a frekvenciatartomány kiterjesztése az eredetileg beállítottakon túl - beállíthat magasabb processzorfrekvenciát és nagyon alacsonyat is, ami lehetővé teszi az akkumulátor kímélését és például a frekvencia gradáció növelését a három lehetséges frekvencia helyett, hat közül választhat. A második a processzorfeszültség beállításának lehetősége, amelynek köszönhetően csökkentheti a processzor feszültségét alacsony frekvenciákon az akkumulátor megtakarítása érdekében, és növelheti a magas frekvenciákon a stabilitás növelése érdekében.

Mindez a jól ismert fizetős SetCPU vagy az ingyenes Trickster MOD segítségével vezérelhető. A kezelési javaslatok ugyanazok, mint az asztali rendszerek esetében. Jobb, ha az alsó processzorfrekvenciát minimumra állítjuk, de nem 200 MHz-nél alacsonyabbra (a késések elkerülése érdekében), a felső küszöböt stabilitásvizsgálattal fokozatosan növeljük, ha leesik, akkor ajánlott az adott feszültséget kissé növelni. frekvencia. Nincsenek feszültségajánlatok, mivel minden processzor egyedi, és az értékek mindenki számára eltérőek lesznek.

A frekvenciák megváltoztatása mellett az assemblerek gyakran új energiatakarékos vezérlő algoritmusokat adnak a kernelhez ( automatikus vezérlés processzor frekvenciája), amelyekről úgy gondolják, hogy jobban teljesítenek, mint a szabványosak. Szinte mindegyik az Android új verzióiban alapértelmezés szerint használt Interaktív algoritmuson alapul, amelynek lényege, hogy a terhelés növekedése esetén a processzor frekvenciáját élesen a maximumra emelik, majd fokozatosan a minimumra csökkentik. . Leváltotta a korábban használt OnDemand algoritmust, amely mindkét irányban simán állította a frekvenciát a terhelés arányában, és lehetővé teszi a rendszer érzékenyebbé tételét. Az alternatív kernelkészítők a következő algoritmusokat kínálják az Interactive helyettesítésére:

  • SmartAssV2- Az interaktív algoritmus újragondolása az akkumulátor kímélésére összpontosítva. A fő különbség az, hogy rövid terhelés esetén nem kell magas frekvenciákra rázni a processzort, amihez elegendő a processzor alacsony teljesítménye. Az alapértelmezett a Matr1x kernel.
  • InteraktívX- hangolt algoritmus interaktív, fő jellemzője amely a processzorzárban van a felhasználó által megadott minimális frekvencián és a második processzormag feszültségmentes lesz a képernyő kikapcsolása közben. Az alapértelmezett a Leankernel.
  • LulzactiveV2- lényegében egy újra feltalált OnDemand. Ha a processzor terhelése meghaladja a megadott értéket (alapértelmezés szerint 60%), az algoritmus bizonyos számú osztással (alapértelmezés szerint 1) növeli a frekvenciát, és csökkenti, ha a terhelés csökken. Külön érdekesség, hogy lehetővé teszi a munkaparaméterek önálló beállítását, ezért alkalmas edzett strébereknek.

Általánosságban elmondható, hogy a kernelkészítők nagyon szeretnek új energiatakarékos algoritmusokat kitalálni a megvalósításuk egyszerűsége miatt, így körülbelül egy tucat másikat is találhatunk. Legtöbbjük komplett salak, és az ütemező kiválasztásánál a szabályt kell követni: vagy a fent leírt három közül valamelyik, vagy a szokásos Interactive, ami egyébként nagyon jó. Választhat ugyanazzal a Trickster MOD-dal.

Kezelési felületek

A legtöbb népszerű egyéni kernel számos mechanizmust tartalmaz a különféle illesztőprogram-paraméterek finom vezérlésére, amelyek közül a leggyakoribb a ColorControl, a GammaControl, a SoundControl és a TempControl.

Az első két interfész szinte mindenhol elérhető, beleértve a CyanogenMod kerneleket, a második kettő - a Leankernelben és talán másokban. Így vagy úgy, mindegyik vezérelhető a Trickster MOD segítségével.

Magok

Milyen magot válasszunk? Erre a kérdésre nincs egyetlen válasz, és nem azért, mert „mindenkinek a sajátja”, hanem azért, mert rengeteg Android-eszköz van a világon, és majdnem ugyanannyi különféle kernel. Vannak azonban olyan népszerű kernelek, amelyeket egyszerre több eszközre fejlesztenek. Így vagy úgy, sokat említettem belőlük a történet során, de itt röviden ismertetem őket.

  • A Leankernel a Galaxy Nexus, a Nexus 7 és a Galaxy S III rendszermagja. A fejlesztés során a fő hangsúly az egyszerűségen és a munka gyorsaságán van. Energiatakarékos algoritmus: InteractiveX V2, I/O ütemező: ROW, a fenti vezérlő interfészek mindegyike, gyors USB-töltés, Swap és zram támogatás, rugalmas CPU és GPU túlhajtás. Az egyik legjobb mag. Testreszabható a Trickster MOD segítségével.
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) – Kernel Nexus S-hez és Nexus 4-hez. Egyszerű és zsúfolt kernel. CPU és GPU túlhajtás, GammaControl, Fast USB Charge, Sweep2wake, I/O ütemezők támogatása: SIO, ROW és FIOPS. A teljesítmény javítása. Testreszabható a Trickster MOD segítségével.
  • A Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) egy egyszerű és zsúfolt kernel Nexus 4 és HTC One X. Optimalizálás a Snapdragon S4 és az NVIDIA Tegra 3 számára, újratervezett energiatakarékos mód a Tegra 3 számára, túlhajtási képesség, energiatakarékos algoritmus: hangolt OnDemand (Interactive is elérhető).
  • A SiyahKernel a Galaxy S II és S III rendszermagja. Rugalmas túlhajtási lehetőségek, automatikus akkumulátorkalibrálás, továbbfejlesztett érintőképernyő-illesztőprogram, energiatakarékos algoritmusok: smartassV2 és lulzactiveV2, I/O ütemezők: noop, határidő, CFQ, BFQV3r2 (alapértelmezett), V(R), SIO. CIFS és NTFS illesztőprogramok (automatikus csatolással). ExTweaks segítségével konfigurálható.
  • franco.Kernel – kernel Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III készülékekhez, Galaxy Note, Optimus One és One X.

A kernel képességei készülékenként nagyon eltérőek, így a részleteket a helyszínen kell majd megnézni. Ennek a kernelnek a felvillantásával azonban lehetőség nyílik a túlhajtásra, az illesztőprogramok hangolására, a kiváló teljesítményre, valamint a különféle energiatakarékos algoritmusok és ütemezők támogatására. Valójában a mag szinte az összes, a cikkben leírt finomítást tartalmazza. Az egyik legjobb elérhető kernelnek tartják. Van jelentkezés arra automatikus frissítés franko.kernel frissítő. A Trickster MOD segítségével konfigurálhatja.

Hogyan kell telepíteni?

Az összes kernel szabványos Android ZIP-archívumokban van terjesztve, amelyeket ugyanúgy kell flashelni a helyreállítási konzolon, mint alternatív firmware. Általában a kernelek kompatibilisek bármilyen firmware-rel, ezért a megfelelő kernelt kiválasztása után biztonságosan telepítheti. Az egyetlen dolog, amire figyelnie kell, az az Android verziója, amellyel a kernel kompatibilis. Mindkettő képes megközelíteni az összes elérhető eszközt Android verziók, és csak eggyel dolgozzon (a fejlesztő ezt általában kifejezetten kimondja). A villogás előtt ne felejtsen el biztonsági másolatot készíteni az aktuális firmware-ről ugyanazzal a helyreállítási konzollal. Ha valami elromlik, mindig vissza lehet lépni.

következtetéseket

Amint láthatja, az egyéni kerneleknek számos előnyük van a szabványos vagy harmadik fél firmware-ében használt kernelekkel szemben. És ami még fontosabb, használatukhoz nem kell ismernie az Android összes bonyodalmát, csak töltse le és telepítse a ZIP archívumot.

A közelmúltban a kernelek új verziói meglehetősen gyakran jelennek meg. Néhány havonta van egy stabil kiadás. Nos, az instabil megjelenésre jelöltek még gyakrabban jelennek meg. Linus Torvalds és számos fejlesztő világszerte folyamatosan azon dolgozik, hogy új kerneleket fejlesszen, és egyre több funkciót adjon hozzájuk.

Minden új verzióval a Linux kernel több új eszköz támogatását is biztosítja, például új processzorokat, videokártyákat vagy akár érintőképernyők. Az utóbbi időben az új hardverek támogatása sokat fejlődött. Ezenkívül új fájlrendszerek vannak a kernelben, a munka javult hálózati verem, hibákat és hibákat javít.

Ha többre van szüksége részletes információk tekintse meg a kernel.org webhelyen található Changelog-ját az adott kernelverzió változásaiért, és ebben a cikkben a Linux kernel legfrissebb frissítését vizsgáljuk meg. új verzió. Igyekszem nem egy adott kernelverzióhoz kötni az utasítást, elég gyakran adnak ki új kerneleket, és mindegyikre releváns lesz.

Fontolja meg az Ubuntu és a CentOS kernel frissítését. Először is nézzük meg, hogyan frissíthetjük a kernelt az Ubuntu 16.04-ben.

Először nézzük meg, milyen kernelt telepítettél. Ehhez nyisson meg egy terminált, és futtassa:

Például jelenleg a 4.3-as verziót használom, és tudok frissíteni a legújabb verzióra. Az Ubuntu fejlesztői már gondoskodtak arról, hogy felhasználóik ne építsék fel kézzel a kernelt, és ne készítsenek deb csomagokat az új kernelverzióból. Letölthetők a hivatalos Canonical webhelyről.

A wget parancsokat itt letölthettem volna, ha ismert a kernel verziója, de esetünkben jobb lenne böngészőt használni. Nyissa meg a http://kernel.ubuntu.com/~kernel-ppa/mainline/ webhelyet. Itt van minden, amit az Ubuntu kernel csapata állított össze. A kernelek mind meghatározott disztribúciókhoz, a disztribúció kódnevével, mind általánosakhoz készülnek. Sőt, az Ubuntu 16.10 rendszermagjai nagy valószínűséggel működni fognak a 16.04-ben, de 9.04-től az Ubuntu 16.04-ben nem szabad telepíteni a kernelt.

Görgessen lefelé, ahol a kernelek újabb verziói találhatók:

Ezen kívül a legtetején van egy napi/aktuális mappa, amely a legújabb, éjszakai kernel buildeket tartalmazza. Válassza ki a kívánt kernelverziót, és töltse le a két fájlt: linux-headers és linux-image az architektúrához:

A letöltés befejezése után folytathatja a telepítést. Ehhez futtassa a következőt a terminálon:

Keresse meg a telepítőcsomagokat tartalmazó mappát, például: ~/Downloads:

Futtassa a telepítést:

Ha ez a parancs nem működött, mehet a másik irányba. Telepítse a gdebi segédprogramot:

sudo apt-get install gdebi

Ezután használja a kernel telepítéséhez:

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

A kernel telepítve van, csak frissíteni kell a rendszerbetöltőt:

sudo update-grub

Most újraindíthatja a számítógépet, és megnézheti, mi történt. Az újraindítás után győződjön meg arról, hogy a Linux kernel frissítése a legújabb verzióra sikeres volt:

Mint látható, a kernel sikeresen telepítve és futva. De ne rohanjon az eltávolítással régi verzió kernel, javasolt, hogy a kernel több verziója legyen a rendszerben, hogy problémák esetén a régi működő verzióról tudjon indítani.

Automatikus Linux kernel frissítés az Ubuntuban

Fentebb megnéztük, hogyan kell manuálisan telepíteni a kívánt kernelverziót. Az Ubuntu korábban rendelkezett PPA-val a napi kernelépítésekhez, de most bezárták. Ezért a kernelt csak a deb csomag letöltésével és telepítésével frissítheti. De mindez leegyszerűsíthető egy speciális szkripttel.

A szkript telepítése:

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

Frissítések keresése:

KernelUpdateChecker -r yakkety

Az -r kapcsoló lehetővé teszi, hogy megadja azt a terjesztési ágat, amelyhez kerneleket kell keresni. A xenial esetében a kernelek már nincsenek megépítve, de a következő verzió kernelei jól működnek itt. Ezenkívül a -no-rc kapcsoló utasíthatja a segédprogramot, hogy ne használjon kiadásjelölteket, a -v pedig a telepítendő kernel pontos verzióját határozza meg. Ha nem érdekli, hogy a kernel melyik disztribúcióhoz tartozik, mindaddig, amíg a legújabb, használja az --any-release opciót. A szkript a következő kimenetet adja:

A kernel telepítése előtt a részleteket megtekintheti a /tmp/kernel-update fájl megnyitásával:

Itt láthatjuk, hogy a yakkety keresése megtörtént, és jelenleg elérhető a kernel 4.7-rc6 verziója. Telepíthetjük:

sudo /tmp/kernel-update

A szkript megmutatja nekünk az aktuális kernel verzióját, valamint a telepítendő kernel verzióját, a felépítési dátumot és egyéb részleteket. Azt is megkérdezi, hogy kell-e változásnaplót vezetnie. Ezután jön a telepítés:

A régi kerneleket minden esetre ne törölje (n):

Kész, a kernel frissítése a legújabb verzióra befejeződött, most indítsa újra a számítógépet (y):

Annak ellenőrzése, hogy az Ubuntu kernel frissítése valóban működött-e:

Ezenkívül a szkript hozzáadásra került az automatikus betöltéshez, és a bejelentkezés után 60 másodperccel automatikusan ellenőrzi a frissítéseket. Az automatikus betöltés parancsikonja a fájlban található:

vi ~/.config/autostart/KernelUpdate.desktop

Tetszés szerint módosíthatja vagy törölheti. Ha teljesen el szeretné távolítani a szkriptet a rendszerből, futtassa:

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

Nem tölt le

Ha bármilyen hiba történt a telepítés során, vagy ha a kernel nem megfelelően lett frissítve, és a rendszer most nem indul el az új kernellel, használhatja a régi kernelt. Előfordulhat továbbá, hogy a rendszer nem indul el, ha szabadalmaztatott illesztőprogramot használ a következőhöz NVIDIA grafikus kártyák ebben az esetben ne rohanjon a kernel legújabb verziójának letöltésével, csak stabil kerneleket használjon, általában már támogatták ezt a modult.

A rendszer visszaállításához válassza ki az elemet Speciális beállítások az Ubuntu számára a Grub menüben:

És indítsa el az előző futó kernelt:

A letöltés után marad a helytelenül telepített kernelt eltávolítása és a Grub újbóli frissítése, a 4.7 helyett a kívánt kernelverzió helyettesítése:

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

sudo update-grub

A rendszer most visszatért a korábbi állapotába. Megpróbálhat egy régebbi kernelverziót telepíteni, vagy próbálkozzon újra.

A Linux kernel frissítése 4.4-re a CentOS rendszeren

Most pedig nézzük meg, hogyan frissíthetjük a Linux kernel legújabb verzióját a CentOS rendszerben. Az utasításokat CentOS 7-en tesztelték, de valószínűleg működni fognak a RedHat 7-en, a Fedorán és más hasonló disztribúciókon.

Általános szabály, hogy az új kernelek nem szerepelnek a hivatalos CentOS tárolókban, így a legújabb stabil verzió beszerzéséhez hozzá kell adnunk az ELRepo tárolót. Ez a kereskedelmi csomagok (Enterprise Linux Packages) tárháza, és a RedHat és a Fedora rendszeren is karbantartják.

Adattár hozzáadásához kövesse az alábbi lépéseket:

Először importálnia kell a kulcsot:

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

Adja hozzá a tárolót és a szükséges összetevőket az RHEL/Scientific Linux/CentOS-7-hez:

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

yum install yum-plugin-fastestmirror

Fedora 22 és újabb verziókon:

Vasárnap este Linus Torvalds, aki a Linux szülője és az operációs rendszer kernelének fejlesztője, két hónapnyi munka után bejelentette a Linux kernel 3.10 új verziójának kiadását.

Maga a fejlesztő szerint ez a mag bizonyult a legnagyobbnak az innovációk terén az elmúlt néhány évben.

Linus bevallotta, hogy eleinte egy másik megjelenési jelöltet szándékozott kiadni, de némi gondolkodás után a végső kiadás 3.10-es számának azonnali kiadása felé hajlott. Torvalds azt is megjegyezte üzenetében, hogy az új kernel a 3.9-es verzióhoz hasonlóan teljesen készen áll a mindennapi használatra.

Ráadásul a kernel RC verziójának bejelentésében Linus Torvalds azt írta, hogy korábban mindig szerepeltetett egy listát azoknak az embereknek a névsoráról, akik küldték a kód bizonyos részeit, de ezúttal ez a lista akkora lesz, hogy nem lehetett teljes egészében egy lapon adják át.

A 3.10-es kernelben végrehajtott főbb változtatások listája:

  • Mostantól lehetőség van arra, hogy megakadályozzuk a szkriptek programként történő végrehajtását – a „#!” fejlécben az interpreter elérési útját tartalmazó szkriptek futtatására szolgáló funkcionalitás most már lefordítható kernelmodulként;
  • Integrált fejlesztés és használat Google rendszer Bcache. A Bcache lehetővé teszi a gyors SSD-meghajtókon lévő lassú merevlemezekhez való hozzáférés gyorsítótárazását; a gyorsítótárazás a blokk eszköz szintjén történik - és ez lehetővé teszi a meghajtóhoz való hozzáférés felgyorsítását, függetlenül a használt fájlrendszerek a készüléken;
  • A kernel a Clang fordítóval fordítható az LLVMLinux projekt által készített javításoknak köszönhetően;
  • Megjelent egy dinamikus vezérlőrendszer az időzítő megszakítások generálására. Most, az aktuális állapottól függően, módosíthatja a megszakításokat a másodpercenkénti ezrektől a másodpercenkénti egy megszakításig - ez lehetővé teszi a CPU terhelésének minimalizálását a rendszer inaktivitása esetén bekövetkező megszakítások feldolgozásakor. Jelenleg ezt a funkciót valós idejű rendszerekben és HPC-ben (nagy teljesítményű számítástechnika) használják, de a jövőbeni kernelkiadásokban asztali rendszereken is engedélyezni fogják;
  • Most lehetőség van egy esemény létrehozására, amely értesíti az alkalmazást a folyamat/rendszer számára rendelkezésre álló memória kimerüléséről (cgroupokban);
  • A memória hozzáférési profilozás elérhetővé vált a perf parancshoz;
  • Az RDMA (iSER) protokoll támogatása az iSCSI alrendszerhez;
  • Van egy új "sync" illesztőprogram (kísérleti). Ennek keretén belül fejlesztették ki Android platformokés más illesztőprogramok közötti szinkronizálásra szolgál;
  • A QXL virtuális grafikus kártya illesztőprogramja integrálva lett (a virtualizációs rendszerekben a SPICE protokollt használó gyorsított grafikus kimenethez használják);
  • Az új energiagazdálkodási eszközöket ben vezették be AMD processzorok család 16h ("Jaguar");
  • A Radeon DRM-hez hozzáadták a modern AMD GPU-kba épített hardveres UVD-dekódoló segítségével történő gyorsított videodekódolás támogatását;
  • Megjelent a virtuális videoadapterek illesztőprogramja Microsoft Hyper-V(a Hyper-V egészének munkájában is vannak fejlesztések);
  • A kriptográfiai funkciók (sha256, sha512, blowfish, twofish, serpent és camellia) végrehajtását AVX/AVX2 és SSE utasítások segítségével optimalizáltuk.