kernelfordítás

Fórumok

Hello mindenki!
Az lenne a gondom hogy szeretnék illetve megkéne tanulnom kernelt fordítani. Szóval ha valaki eléggé otthon van a témában és elég türelme is van :D akkor nagyon hálás lennék.Emailen msn avgy itt vagy valahogy megoldhatnánk. Előre is köszi a bátor embernek :)

Hozzászólások

Akkor rögtön 3 kérdés:
- Milyen distro?
- Milyen kernelverzió?
- Miért kell kernelt fordítanod?
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.

Akkor keress rá a neten, hogy hogyan kell. Nagyon sok leírás van.
Röviden: cd /usr/src, tar xfj /akarhunisvan/linux-x.x.tar.bz2 ., ln -s linux-x.x linux, cd linux, make mrproper, make menuconfig, make, make modules, make modules_install, aztán odamásolof a megfelelő helyre a bzImage-t és konfigurálod a bootmanageredet.
Ennyi.
Megtanultad.
:)

Ja a make menuconfig fordítási hibája után vagy előtt célszerű egy libncurses5-dev-et felpakolni. Ha fent van, akkor nincs gond. Finomságok kisszivem. Finomságok.

golgota olvtárs szépen összefoglalta a lényeget, de a www.szabilinux.hu -n van egy pár szóval hosszabb leírás is.

Nos hogy milyen disztribució ott remélem arra gondolsz hogy ubuntu linu. A kernel verzóról gőzöm sincs, mint mondtam egyátalán nem értek hozzá sajnos. Megtanulnom azért kéne mert szeretném és mert ez lenne a szakdolgozat témám.

Egyébbként a kernel fordításról mit lehet szakdolgozatot írni? Kb egy fél oldal A4-en megvan az egész. Magáról a linux kernelről, vagy az egyes unix alapú rendszerek kerneleiről, azok összehasonlításáról, előnyeiről, hátrányairól lehet írni elég sokat. De ehhez meg nem kell kernelt fordítani. Ráadásul az, hogy megtanulod a négy-öt parancsot még nem jelenti azt, hogy tudod mi fán terem a kernel.
Szóval karcsú kis szakdolgozat lesz, ha a kernelfordítás a témája. :)
Ha egy tanár adta ki ezzel a címmel, akkor ő meg aztán végképp nem ért hozzá. Innentől meg azt írsz amit akarsz. :)
Egyébbként első nekifutásra javaslom a kernel.org-ot, a wikipediát, Tanenbaum :Operating Systems Design and Implementation könyvét.
Mert itt nem kapsz olyan tudást, amivel megírod a szakdolit. Vagy jó hosszú thread lenne, meg akkor megjelelölhetnél itt mindenkit társszerzőnek.

Ne érts félre, mert nem leszólni akartalak. Ezt vedd építő és segítő kritikának. Ha gondolod küldj üzenetet és akkor priviben segítek amennyit tudok. De akkor köszönetet mondasz a dolin végén minimum 12-es betűmérettel :). Ez utóbbi csak vicc volt. :)

Semmi gond építő jellegűnek veszem mivel télleg nem értek hozzá :)
Egyébként a szakdoli maga olyanról amiről te is írtál itt csak kell lennnie egy produktumnak és lenne egy konkrét lefordított kernel. Ja és köszönöm a linkeket átfogom nézni

És mit csinálsz a konkrét lefordított kernellel, bebootolsz a vizsgabizottság, meg azt mondja majd : "whhhoooouuuuuáááááhhhh...látod, hogy bootol a linux?"
Ne haragudj, de ennek semmi értelmét nem látom. Maximum megmutatni nekik egy make menuconfig-ot, meg egy make xconfigot, hogy na nesztek ilyen is van. Meg less-elni nekik a .config-ot.
Vagy menet közben kilökni és betolni egy modult, vagy még jobb, ha valami wines wlan csacskaságot izzítasz be nekik on-the-fly ndiswrapper-er, had ámuldozzanak. De mit lehet egy kernelen bemutatni azon kívül, hogy van?
De ezekhee' má' megen nem köll kernelt forgatni.

Hát nekem gőzöm nincs scak mondták hogy ez kéne és kész. De egyébként is érdekel a dolog ettől függetlenül azért is kértem segítséget.

Én nem szóltam le. Inkább ötleteket adtam a fenti megszólalásomban.
És örülök, hogy valakit érdekel a kernelfordítás. Csak azt írtam, hogy a védésnél semmi különöset nem tud majd mondani egy lefordított kernel mellett. Mert az le van fordulva és kész. Működik. Ennyi. Ezért írtam, hogy nem tartom feltétlenül szükségesnek a diplomamunkájához egy kernelt is fordítani. Az anélkül is jól meglesz, ha tényleg beleír érdekes dolgokat a különböző kernelekről (UNIX, Linux, esetleg WIN), aztán összehasonlítja őket, aztán mondjuk kiragadja a linux kernelt és leírja a fejlődését, majd összehasonlít két különböző generációs kernelt (2.4.22 és 2.6.18 a favoritjaim), majd beszél a kernel betöltésének folyamatáról, a modulok betöltésének folyamatáról, betölthetőségéről futás közben....stb...stb...nem akarok helyette vázlatot írni. De mint látod ehhez nem kell egy darab kernelt sem lefordítani.
Nekem csak ennyi volt a problémám: hogy minek? Amúgy értékelem az érdeklődését a téma iránt. Ezért is írtam, hogy megkereshet priviben.

Nézd meg még a Digital Hermit-en a leírást, eléggé jó.
Egyszerűség kedvéért a régi kernelt "régi" (pl. kernel-original , de ne -old) néven tartsad meg, írd át a rendszerindító config fileját és akkor ha leforgattad a kernelt, nem kell kézzel a helyére tenned majd a fileokat, make install parancs megteszi - de a régi kerneled saját néven még meg van - hátha valami elcsúszott.
Ált 3 alapdologra nagyon figyelj (tképp mi kell egy működő dobozhoz):
1. háttértár:
a, a winchestered és a buszok driverei legyenek kernelben
b. a filerendszer (etx3, reiser) legyen kernelben (ha a kernel nem ismeri fel a merevlemezt és a filerendszert, akkor nem tudja a modult sem betölteni)
2. képernyő: legyen mindenképp VESA framebuffer kernelben, mert ha más nem, akkor legalább konzolod legyen
3. processzor típusa (ti.mire fordítod.)
Innen alapszabály, hogy ha valamiről nem tudod, hogy mi, akkor békén hagyod, és/vagy utána jársz. Illetve megtanulod azokat a listázási parancsokat, amelyek a hardwareról mondanak valamit neked.
Előfordulhat, hogy a hardwareod neve alatt nem találsz drivert, de mindig a chipsetet nézd. (pl.Hama ethernet kártya 100/10-es nincsen, de ez Realtek chipsetes darab, és annak a drivere megvan a kernelben. A Hama prütyprüty meg a parasztvakítás.)
A többi tképp nem más, mint az, hogy a hardwarehoz keresed a drivert, a többit meg kihagyod. Hogy ennek gyakorlati értelmén túl van-e értelme - nem hiszem.

Továbbá ne a brand new kernelt használd, inkább olyat, ami "bevált" (2.6.18, 2.4.33). Pl. a 2.6.19hez az Nvidia drivert csak patchel lehet feltenni.

Valamint ha Lilot-t használsz, mindig futtasd le, ha új kernelt installáltál. (A Grub esetében ez nem érdekes, ott elég, ha a config file rendben van.)

Ps. ncurses: ha egy gyári disztrót használsz, akkor vagy már eleve rajta van, és akor nem kell vele foglalkoznod, vagy atelepítőprogram kacagva leszedi a netről.
Én két disztron fürödtem be: SUSE volt, ezen nem volt c fordító /régebben/, a másik Ubuntu, ezen sem volt valami, úgyhogy hagytam őket.

megkérdezhetném h ezt milyen szakon teszed?
--
Peace, Love, Unity, Respect

"Ööööö... Északon? Nem délen élnek a pingvinek?"

Itt is ott is, sőt valahol olyan helyen is ahol soha nincs hideg!
Most nem jut eszemban melyik "márka"(faj), de van ilyen is. :)

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

"Megtanulnom azért kéne mert szeretném és mert ez lenne a szakdolgozat témám."

Ha télleg érdekel és jó kernelt is szeretnél,
akkor ajánlanám Debian alatt csináld!

Sok sikert!

Az elsőt ne a vizsga bizottság előtt csináld, mert az senkinek sem sikerült!
Na jó, lehet hogy Linus-nak sikerült! :) :D

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

Nem akartam új topikot nyitni, ez megfelelőnek tűnt.

Szóval valamelyik este bekattantam, hogy mi lenne ha fordítanék kernelt (mert még nem csináltam olyat). De mivel jelenleg tökéletesen megy a rendszer, nem akarom tönkretenni, ezért lenne pár kérdésem (linuxban eléggé kezdő vagyok)

Debian Etch (netinstall volt, ennek megfelelően csak azok a csomagok vannak fent, amikre közben szükség lett), 2.6.18-5-686 kernel, Gnome-al. A 2.6.26-s kernelt tervezném fordítani (teljes forrás már megvan, egyszerűbbnek tűnt elsőre, mint a patch-elés, főleg, hogy a gcc-m is beteg volt, de helyrehoztam. A menuconfig-ot már "láttam" de még nem mentettem semmit)

Először is annyi kérdésem lenne, hogy megoldható-e 2 eltérő verziójú kernel használata? (megmaradna a 2.6.18-s de pld. a grub menüben létrehoznék egy új rész, ahol az új kernelt tölteném be. Persze van ott még valami initrd, meg system-map...) Szóval ilyesmit lehet-e csinálni vagy szálljak le a földre :) ? Nemrég láttam a főoldalon(ha jól értettem) hogy a 2.6.26-s kernel és az ATI driver nem szereti egymást, így lehet, hogy tudásomat bőven meghaladó öngólt lőnék egy kernelcserével.

A többi kérdést kitöröltem, mert sztem elég ha apránként adagolom hozzá nem értésemet :).

Először is annyi kérdésem lenne, hogy megoldható-e 2 eltérő verziójú kernel használata?

Persze, de egyszerre csak az egyiket használhatod :D

a kernelt make menuconfig (Mentés a .config fájlba /ez fontos!/) után make-kpkg --bzimage kernel_image parancssal fordíthatod, ez készít egy linux-image**.deb csomagot, amit feltehetsz. Lesz benne system.map is, meg modulok is meg minden.

ha --initrd kernel_image opcióval készíted, akkor Initramfs es kernelt csinálsz, ehhez kell még az initramfs-tools , busybox csomagot feltenned.

Én szoktam adni neki egy --revision gepnev.2008.07.24 alapú dátumot is, így pl. tudom mikor csináltam :)

--------------

r=1 vagyok, de ugatok...