HTML

Bagoj úr blogja

Kíváncsi Bagoj befigyel a Linux belsejébe, illetve különféle Linux terjesztéseket próbál ki. Ha jó napja van, scriptet ír Neked.

Friss topikok

Újabb kernel siralmak

2009.06.17. 14:09 bagoj ur

Rövidke post (emlékeztetőül saját magamnak is) arról, hogy még a 8.10-es (Intrepid) Ubuntuval szórakoztam az intel-féle async kernel változattal, de nem jutottam igazán sok mindenre. Erről el is kezdtem egy írást decemberben, majd folytattam januárban, de mivel már annyi minden változott azóta, nem látom értelmét, hogy komolyan befejezzem a dolgot. Hiszen azóta kiderült, hogy egy probléma miatt a 2.6.30-as előtti kernellel nem is érdemes játszani ilyen async dolgot. Ezt teljesen alátámasztja, hogy decemberben az async kernel nem bootolt gyorsabban egy fikarcnyival sem (nem is értettem). :)

Anno annyit játszottam, hogy Arjan van de Ven útmutatása alapján letöltöttem a patch-et, de nem ment fel a 2.6.27-es kernelre. Így fogtam magam és végignéztem a kérdéses fájlokat a kernel forrásban, illetve átírtam a megfelelő helyen a kódokat. Ekkor készítettem is egy patch-et, amivel a 2.6.27 megpatch-elhető lett volna, de azóta egy merevlemez meghibásodáson is túl vagyok (ja majd erről írok is), és akkor nem mentettem el a patch-et. Mivel meg akartam ragadni az alkalmat, hogy leírjak ezt-azt a diff és a patch működéséről, csak röviden a lépések, hogy el ne veszítsem:

diff -uNr linux-source-2.6.27 linux-source-2.6.27-async > 2.6.27_async_fastboot.patch

Az Ubuntu 2.6.27-9-generic kernelének patch-elése:

- A patch bemásolása a /usr/src alá
- belépés a linux-source-2.6.27 könyvtárba
- patch -p1 < ../2.6.27_async_fastboot.patch

A patch egyébként annyit változtat a kernelen, hogy a rendszerhívásokat nem egymás után hívja, hanem mindegyiknek egy egyedi azonosítót, egy sequence cookie-t ad, és a kernel, mielőtt globális hatású műveletet hajtana végre, ellenőrzi hogy minden előző aszinkron meghívott rendszerhívás lefutott-e. De a globális műveletek között ezek "szabadjára vannak eresztve", párhuzamosan futhatnak és elméletben nem okozhatnak zavart. A kernel fejlesztői listán éppen az "elméletben" kitétel miatt mentek a viták...

A lényeg, hogy most már tudom, miért nem jártam én sikerrel - a kernel bebootolt gond nélkül, csak éppen nem gyorsabban, egy fikarcnyival sem.

Mivel már a 2.6.30-assal lehet próbálkozni, fogok is valamikor, rövid távú terveim:

1. Egy szkript készítése, amely legenerálja a kernel konfigot az éppen aktuális betöltött modulok alapján, majd készít egy kernel .deb csomagot. Ez nem initrd-s lesz, de az initrd csak arra kell, hogy kernel modulokat töltsön be, és mivel bele lesz minden fordítva a kernelbe, ezért nem szükséges. Bootsplash nélkül én tudok élni.

2. Ha jól működik a dolog, letöltöm a 2.6.30-as kernelt és azzal is gyártok egy csomagot a Jauntyhoz.

Ennél többet sokkal nem tehetek pillanatnyilag. Az világos, hogy az X-et kell minél gyorsabban elindítani. Ehhez kell legyen alapvető hálózati támogatás, legalább localhost, kell egy hosztnév, a framebuffer meghajtó, és persze írható fájlrendszer. Szóval lehet játszani, hogy futtatok egy saját boot szkriptet, ami beállítja a localhost-ot, meghívom az udev-et és rögtön az X-et. Az ilyenek, mint pl. bluetooth, maradhatnak későbbre.

Mindenesetre ezek a tervek. Hogy ebből mit tudok megvalósítani, ez csak a szabadidőtől függ... sajnos a múltkor beígért notebook-ot nem kaptam meg még, és a munkás notimat érthető okokból csak korlátozottam merem barmolni. :-)

Szólj hozzá!

Címkék: linux fordítás notebook x ubuntu kernel aszinkron 8.04

A bejegyzés trackback címe:

https://bagojur.blog.hu/api/trackback/id/tr561191135

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.