Hozzászólások
Az X-mikro wireless usb eszközöm zd1201 driverének dokuja szerint a <2.6.10 kerneleket patch-elni kell a driver telepítése előtt, ami mindössze egy apró, pársoros módosítást jelentett az usb.c fájlban.
Mivel akkor még tökre nem tudtam, hogy melyik az érintett kernel modul, és hogyan kell csak azt lefordítani, ezért belevágtam a teljes kernel fordításába. (Plusz abban is reménykedtem, hogy ha a klón kernel fordítása sikerül, akkor később majd fordítok egy testreszabottat a SuSE generic kernele helyett).
A fordítást és telepítést a telepített kernellel pontosan azonos, 2.6.5-7.155.29 verziójú kernel forrás könyvtárában lévő SuSE-README fájlban leírtak szerint végeztem:
1. patch alkalmazása
2. make cloneconfig
3. make
4. make install
5. mkinitrd
6. lilo (mivel nem grub-ot, hanem lilo-t használok)
A kernel fordítás fél nap alatt megvolt, hiba nélkül.
Az mkinitrd adott egy hibaüzenetet, de azért az initrd-t elkészítette:
Cannot determine dependencies of module reiserfs. Is modules.dep up to date?
Modules:
none
Az újraindítás után viszont a gép többé nem indult; így akadt el:
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem)
starting udev
creating devices
warning: can't open /etc/mtab: No such file or directory
kernel panic: VFS: Unable to mount root fs on hdd12
Az initrd gyanúsan karcsú, mindössze 1MB-os volt, és nem volt benne egyetlen kernel modul sem a reiserfs.ko kivételével.
A gép a régi kernel és initrd visszamásolása (+lilo) után sem indult, úgyhogy meleg helyzet volt; csak a telepítő cd-ről rescue módban indítás; a vinyó partíciók becsatolása, és "átchrootolás" után a kernel rpm leszedésével és visszatelepítésével állt helyre nagyjából az eredeti állapot.
Itt tartok most; a gépem működik, de a driver-t a patchelt kernel hiányában nem tudom telepíteni (igaz, amúgy sem fordul le). De azért az izgat, hogy hol rontottam el a kernel fordítást és/vagy telepítést.
Szerintetek?
- A hozzászóláshoz be kell jelentkezni
[quote:b2cd2ca7f0="j_szucs"]
Szerintetek?
passz :)
de ha mar uj kernel forditasz akkor minek raksz bele minden vackot? szerintem ep az a lenyege a sajat kernelnek hogy csak az van benne ami kell. fontos dolgok kernelbe, hulyesegek modulba( vagy minden a kernelbe, module support disable, tobb biztonsag )
- A hozzászóláshoz be kell jelentkezni
de ha mar uj kernel forditasz akkor minek raksz bele minden vackot? szerintem ep az a lenyege a sajat kernelnek hogy csak az van benne ami kell.
Igazad van. Ha nem ez lett volna az első kernel fordításom linuxon, akkor biztosan kihagytam volna ami nem kell, mert tudtam volna, hogy mi kell és mi nem.
A klónozás előnye, hogy most legalább jó közelítéssel tudom, hogy a gépem nem azért nem indult, mert a kernelből kihagytam valami lényegeset.
- A hozzászóláshoz be kell jelentkezni
Az initrd csak az induláshoz szükséges modulokat tartalmazza. Nekem pl "eredeti" még: 1308224 byte (initrd-2.6.11.4-21.7-default, SuSE 9.3)
Szerintem sem kell mindent belerakni, csak ami tényleg kell a gépedre (lspci kimenete alapján pölö). És ne modulba fordítsd amit gyakran használsz, hanem bele a kernelbe. Amit ritkán, az mehet modulba. A modul támogatást érdemes benne hagyni akkor is, ha most nem fordítasz semmit sem modulba.
A kernel panic nem initrd-specifikus. Láttam már párszor ilyet, és csak a kernel újrafordítása oldotta meg a problémát. De nem tudom, hogy miért...
- A hozzászóláshoz be kell jelentkezni
A süsü kernelnek vannak saját, nem GPL alá eső részei, amiket a novell mérnökei fejlesztenek, és nem publikus. Innentől fogva a saját kernelfordítás buktatói azt hiszem, világosak.
- A hozzászóláshoz be kell jelentkezni
[quote:a9a4ef931e="Macskajancsi"]A süsü kernelnek vannak saját, nem GPL alá eső részei, amiket a novell mérnökei fejlesztenek, és nem publikus. Innentől fogva a saját kernelfordítás buktatói azt hiszem, világosak.
SuSE 9.1 még nem novell...
- A hozzászóláshoz be kell jelentkezni
SuSE 9.1 még nem novell...
Ez igaz, akkor még a süsü mérnökei fejlesztették.
De a lényegen nem változtat.
- A hozzászóláshoz be kell jelentkezni
[quote:6e95070f8c="j_szucs"]
de ha mar uj kernel forditasz akkor minek raksz bele minden vackot? szerintem ep az a lenyege a sajat kernelnek hogy csak az van benne ami kell.
Igazad van. Ha nem ez lett volna az első kernel fordításom linuxon, akkor biztosan kihagytam volna ami nem kell, mert tudtam volna, hogy mi kell és mi nem.
A klónozás előnye, hogy most legalább jó közelítéssel tudom, hogy a gépem nem azért nem indult, mert a kernelből kihagytam valami lényegeset.
vagy megsem indul :)
en pl 1x (evekkel ezelott) osszeraktam egy jo kis kernel configot azota azt toldozgatom. van jo kis help majdnem minden opciohoz, van forum lelekes olvavasokkal/valaszlokkal akik meg keson sem alszanak :)
ja szerintem ami idot elvesztegetsz azzal hogy kidobod a su:su: kernelbol ami nem kell neked ( ami kb 95 %-a ) azt siman megnyered forditasi idovel.
egy csucsgepem(vmi dualos opeteron vagymi) probaltam egyszer egy orig susu kernel ujraforgatni, hat orakig tartott. mig a laptomom 1.6-os egy custom kernel 7 perc alatt leforgat.
- A hozzászóláshoz be kell jelentkezni
[code:1:c3eed99b8f]cd /usr/src/linux
zcat /proc/config.gz >.config[/code:1:c3eed99b8f]
Így tutira ugyanaz a konfig, mint a futó rendszeren.
- A hozzászóláshoz be kell jelentkezni
Bocs, valami esetleg lényeges dolog még eszembe jutott: a forrás telepítése után, akkor még nem tudván hogy hogyan kell a forrást pontosan a futó kernel szerint konfigurálni, először próbálkoztam egy "make config"-al. Minden kérdésre az alapértelmezett választ adtam, azt gondolva, hogy ezzel a futó kernelt reprodukálom majd.
Kétségeim voltak, ezért tovább kutakodtam, és végül rátaláltam a "make cloneconfig"-ra. Viszont az előző "make config" eredményét pusztán a config fájl törlésével próbáltam eltüntetni (most már gyanítom, hogy a "make mrproper"-el kellett volna).
Okozhatott az előző "make config" kavarodást és működésképtelen kernelt?
- A hozzászóláshoz be kell jelentkezni
Ha elkezdted lefordítani (sima make parancs), akkor gondot okozhatott, de egy make clean általában elég. Egy make mrproper ugyanezt csinálja + a .config fájlt is legyilkolja. Esetleges további extra "szoltáltatásai" ismeretlenek számomra :)
Ha csak make config volt, akkor viszont nem származhatott probléma belőle. make menuconfig az igazi beállítófelület, vagy make xconfig, valahogy barátságosabb az egész :)
- A hozzászóláshoz be kell jelentkezni
A "make config" után nem adtam ki a "make" parancsot, azaz ha jól értelmezem a hozzászólásodat, akkor a .config fájl törlése elég kellett hogy legyen a "make config" nyomainak eltüntetésére.
Illetve talán még sok is, mert a "make cloneconfig" gondolom amúgyis felülírta volna a .config fájlt.
Akkor viszont mért nem indult a gépem a lefordított, klónozott kernellel?
Most leginkább valami lilo gubancra tudok gondolni.
Régebben volt is a lilo-val egy fura esetem: egy movix linux rendszert csak akkor volt hajlandó elindítani, ha a movix könyvtárat (kernellel, initrd-vel, egyebekkel) a suse root partíciójára tettem. Elég sokat tököltem vele amíg rájöttem hogy ott működik, mert az volt az utolsó hely, ahová egyébként tettem volna :-(.
Leginkább a saját, külön partíciójára szerettem volna rakni, de se ott, se máshol nem indult. Érdekes módon a neten alig néhányan számoltak be hasonló problémáról (a megoldásról pedig senki sem), pedig gondolom más se a működő linux rendszere root partíciójára képzelte el egy másik, komplett linux rendszer telepítését - azaz mások bootloadere vélhetőleg nem volt ennyire finnyás.
Okozhat a lilo-nak esetleg gondot az, hogy a linux partícióim, (beleértve a /boot és /root partíciókat is) nem elsődleges, hanem kiterjesztett partíción vannak? Csakhogy jelen esetben az új kernel nem került át másik partícióra, hanem ugyanoda került, ahova a régi. Azt sem értem még, hogy mért nem indult a gép a régi kernel és initrd visszamásolása után; miért csak a kernel rpm újratelepítése hozta helyre a rendszert?
- A hozzászóláshoz be kell jelentkezni