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.

Kapcsolódó cikkek