Javítások hozzáadása a rendszermaghoz
Bevezetés [szerkesztés]
- csak kíváncsi vagyok.
- van egy funkcionalitás, amit hozzá akartam adni, de magunkban nem.
- a vas támogatásának bővítése. Van egy vasdarab, nem működik, de van egy patch és egy lehetőség, hogy ellenőrizze.
Miért nem kellene ezt tenni:
- A feladat nehéz, ha nem nagyon szükséges, ne tegye el a fejét.
Mi a teendő:
- Másféle íz elkészítésére. Jobb hozzáadni a rendelkezésre álló.
- Csak magadnak. Ha hozzáadott egy javítócsíkot, ami valami hasznosat használ, érdemes felvenni azt a Sisyphusba. Még mindig hasznos lehet valakinek.
- git ismerete. Legalább kezdeti. Minden rendszermag fejlesztése git-ban történik, és itt nem lehet elkerülni.
- Az összeszerelő rendszer felszerelésének ismerete
- Hozzáférés az adattárhoz.
- Elég erőteljes gép. A rendszermag hosszú ideig (kb. Fél óra) összeállítható a vastól függően, és az összeszerelési folyamat során az ideiglenes fájlokig 1Gb-ig kell kérni. Készülj fel, hogy ez a folyamat sok erőforrást eszik.
- Hozzáférés a git.althoz. kernelhez szükséges git-tároló akár 300Mb-ig is elkészíthető, legalább egyszer letölthető.
Brunchekkel foglalkozunk [szerkesztés]
Először is szükségünk van egy git-tárolóra egy rendszermaggal. ehhez például hajlamosak vagyunk,
Most kernel-image-2.6.25-ben megyünk, és megnézzük a vanília kernelt. Az a tény, hogy a git csak a mesterágat másolta át. A többi ágat a parancs segítségével láthatja
Miután visszaszereztünk a rengeteg borzalmak okozta sokkból, meg fogjuk érteni, miért van szükségük mindegyikre. Közelebbről szemlélve, minden csörgést fel lehet osztani
Beszéljünk róluk rendben.
kernel-image- * [szerkesztés]
A fő brunchek a kernel-image-* brunchek, ezekből kernelek összeszerelhetők. Ezek az ágaik megfelelnek az ízeknek, például a kernel-image-std-def csomag ugyanabból a brunchből készült. A többi - std-pae, std-ll, std-srv a származékai és abban a pillanatban, ami nem érdekli. Először is kapunk egy példányt ebből a sörözőből
Most, ha megnézzük az eredő könyvtárat, láthatjuk a kernel-image.spec fájlokat. .gear /. modules.build. szubflavours és kernel források. Spec fájl és könyvtár .gear / normális szerepet tölt be. A modules.build fájl egy modulok listája az automatikus modulgyártási parancsfájlokhoz, minden olyan modul, amelyet újra kell építeni a rendszermag frissítése után. Az alflavours fájl az alflavours listája, amelyet frissíteni kell a fő alflavour frissítésénél. Például frissítjük és teszteljük az std-def értéket. és ezeket a változtatásokat egy másik szkriptbe vonják át a másik részfölorba.
kernel-forrás [szerkesztés]
- ez egy különleges brunch, amelyről a csomag kernel-source-változata megy. Ez a csomag tartalmazza a forráskód mindig vanília kernel, és használják a szerelvény összes magok annak változata. Fontos, hogy ez a csomag például 2.6.25 és 2.6.25.17. Szerelés előtt a fogaskerék teszi diff címkék közötti v2.6.tekuschaya versya nucleus (például v2.6.25) és büféebéd kernel-image-íz. A diff hozott SRPM, és ha a szerelvényt húzott kernel-source-s verzió, és alkalmazta a diff. Így kernel-source értelme hozzányúlni, csak ha megpróbálják összerakni egy új kernel.
fix és feat [szerkesztés]
- ez a söröző a foltokkal. Ezek a „nő” ki a vanília kernel (ez lehet egy bázis, például v2.6.25. Lehet nagyon friss vanília), és tartalmaznia tapaszok, hogy hozzá (feat) némi lehetőséget vagy kiküszöböli a hibát (fix).
Továbbá, a nevüknek van egy struktúra-alrendszer-tartalma. Például fix-fs-biztonság biztonsági réseket javít a fájlrendszerben vagy VFS egy feat-drivers-net-atl1e hozzá illesztőprogramok hálózati kártya atl1e.
- egy ágban több javítást is elhelyezhet.
- Jobb, ha különféle dolgokat tartasz külön brunch-ban
- Ne készítsünk bruncheket a kernel-image-std-def alapján. Ez sok problémát okoz.
- Ha vannak olyan javítások, amelyek a felmerülő probléma egyesítéséhez vagy kijavításához szükségesek, akkor ezeket a brunch-ban kell elhelyezni.
A címekről, például:
- adj hozzá egy új wifi kártyát a brunch feat-drivers-net-wireless-kártyához
- megoldja a problémát a processzorok támogatásával - a fix-arch-cpu-százalékos brunch-ban
Javítások hozzáadása [szerkesztés]
A megfelelő sorrend szükséges a pachy hozzáadásához. Először választjuk ki a zárójel nevét, és a kényelemért hívjuk $ ágnak. A $ vversion a vanília kernel jelenlegi verziója. Hozzon létre egy tésztát:
Most alkalmazza a javítást. Vagy csatolhatja és zakomitit. azaz:
A git commit-ben érdemes megírni egy leírást, ami valójában ez a patch. A git am parancsot is használhatja.
A fenti lépéseket meg kell ismételni, minden szükséges javítás alkalmazásával.
Ezután megpróbáljuk felvenni a javításokat a kernel forráskódjába.
A második csapat után konfliktusokba ütköznek. Ha felmerülnek, a következő iteratív algoritmussal korrigálhatók.
Mi ellentmondásos fájlokat láttunk, mi választottunk egyet
Itt keresünk vonalakat >>>>. ====, <<<<и устраняем конфликты. Так же можно воспользоваться git mergetool.
És ismételje meg az összes fájlt, akkor tegye meg
Igazán örültem. Ha a javítás érinti a KConfig fájlokat, érdemes frissíteni a beállításokat.
Közgyűlés és közzététel [szerkesztés]
Összeszerelheti a magot, valamint bármilyen csomagot a felszerelés segítségével, de ne feledje, hogy a csomag nagy, hosszú időt vesz igénybe, ugyanakkor aktívan elfogyasztja a helyet.
A szerelés után néha van értelme a modulok összeszereléséhez, itt olvashatsz róla. Csak a tényleges összeállítást hajtja végre a parancs
Ezután menjen a kernelhez tartozó könyvtárba és hozzáadja (kényelmesen) távvezérlőt. A git.alt $ url-ot válaszol
Valójában a rendszermag után minden változtatásunkat a git.alt-ra öntjük
A kernel patch-ek hozzáadásának kritériumai std [szerkesztés]
Egy jó tapasz:
- Legyen hasznos
- Legyen hordozható (legalábbis az x86_64 és az i586-on dolgozik)
- Kívánatos leszerelni a betöltéskor, vagy egy modul segítségével
- Változtassa meg a központi rendszerek működését
- Fogd be más tapaszokkal
- Mi vagy elrontani.