fedora kernel forrás installálás

Fórumok

Sziasztok

Fedora Core 5 ala szeretnem telepiteni az MPlayer-t, pontosabban az svgalib_helper modult. Ehhez szuksegem lenne a kernel forrasara. Feltelepitettem a megfelelo verzioszamu kernel-devel csomagot, de nem akar lefordulni. Ha RPMS-bol telepitem a kernel forrasat, akkor az csak berakja a becsomagolt forrasokat a /usr/src/redhat/ eleresi utba. Mit kell tenni, hogy a kernel ujraforditasa nelkul tudjak modult forgatni hozza?

udv Zoli

Hozzászólások

elvileg elég a kernel-devel. Arra angyon figyelj oda, hogy a kernel és a kernel-devel verziója ugynaz legyen. Ugye nem saját kernelt használsz? Ha saját kernelt szeretnél, akkor előbányászom neked a kernel rpm howto-t. Érdemes saját kernelből is rpm-et csinálni, hogy könnyen karbantartható legyen.

Amúgy az Mplayert miért forrásból telepíted? miért nem csomagból. Ismered ezt a repót: freshrpms.net ? Érdemes megnézni. van mplayerük is.

Nézzed meg, hogy van-e link a forrásokra a /lib/modules/kernelverzió/ könyvtárban. A forrásokra (illetve header a kernel-devel esetén) kell mutasson egy symlink innen, build néven. Erre kell mutasson egy source nevű link. Ezt a kernel-devel telepítése elvileg megcsinálja

No, kikerestem, itt a link:
http://fedoranews.org/cms/node/414
ha a forrásat akarod megszerezni valminek, akkor amúgy telepítsed a yum-utils csomagot, és így tudod leszedni a forrást:
yumdownloader --enable-repo=a_repo_ahol_az_eredeti_van-source --source csomagnév

Nos, ezek közül a tanácsok közül, ha nem is most, de remélem mind tudod használni majd :)

Koszonom a segitseget, kaptam hasznos infot is.
- nem sajat kernelt hasznalok hanem gyarit, ehhez szeretnek modult forditani
- forrasbol szeretem forditani, mert a csomagolok az egyszerusites miatt kiszoktak hagyni par funkciot
- link szerepel, megtalalja a kernelt csak valami header file-t hianyol

udv Zoli

Az a helyzet, hogy a devel csomag a headereke tartalmaza csak. Ez azt jelenti, hogy a c/c++ proramozási nyelvekben a programot fel tudod úgy bontani, hogy eg yfileben .c/.cpp a program kódja legyen, é segy másikban .h (ez a header vagy fejléc) a használt függvények prototípusai vannak (remélem jót írtam. használni tudom, de nevén nevezni... mármint a fv. "prototípust" ). Ez azért jó, mert így pl nem kell törődnöd, hogy hogyan írja ki a szöveget a printf(), elég tudnod, hogy milyen paramétereket vár. A kód jobban stuktúrálható, blabla...

Nos, a kérdés akkor a következő: mi is a pontos hibaüzenet. Mert ha a lik jó, akkor a kernel forrásokra (illetve ezek herélt változatára, ahol csak a headerek meg 1-2 fontos dolog) mutatnak. A programok is itt keresik a forrást.

Másik lehetőség, hogy nem itt keresi a program, hanem kézzel kell beállítanod neki. Olvassad el az INSTALL meg a README fileokat a forrás melett, lehet hogy lesz egy ./configure paraméter, amiben megadhatod ezt. ezt a helyet amúgy így kapod a legkényelmesebben (bash alatt) "/lib/modules/`uname -r`/build". Mármint ezt írjad a path helyére, ha ilyen paramétert kell beállítani.

Amúgy tegnap láttam, hogy kijött új gyári kernel, szerintem szerintem tedd fel, meg annak a develjét, mielőtt újra próbálkozol. Ezt csak egyéb okokból javaslom (pl lehet hogy biztonsági hibákat javítottak rajta, meg 2.6.17-es, abban talán jobb már a libata támogatás, ha az fontos neked).

megforditottam a forditast:

letoltottem a forrast: svgalib-1.9.24-2.fc5.src.rpm

letrehoztam az rpmfat: fedora-buildrpmtree

telepitettem a forrast az rpmfaba: rpm -ivh svgalib-1.9.24-2.fc5.src.rpm

megpacheltem a forrast: rpmbuild -bp ~/rpmbuild/SPECS/svgalib.spec

leforditottam a patchelt forrast: rpmbuild --target i686 -ba ~/rpmbuild/SPECS/svgalib.spec
ez szepen lefordul, de nem probaltam ki nekem a kernelmodul lenne fontosabb

megprobaltam csak a modulokat forditani: cd ~/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/ & make installmodule

hibaval elszall:

(cd kernel/svgalib_helper ; make default modules_install )
make[1]: Entering directory `/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper'
make -C /lib/modules/2.6.16-1.2133_FC5/build SUBDIRS=/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper CLASS_CFLAGS= modules
make[2]: Entering directory `/usr/src/kernels/2.6.16-1.2133_FC5-i686'
CC [M] /root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.o
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c: In function ‘init_module’:
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:651: warning: passing argument 2 of ‘class_device_create’ makes pointer from integer without a cast
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:651: warning: passing argument 3 of ‘class_device_create’ makes integer from pointer without a cast
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:651: warning: passing argument 4 of ‘class_device_create’ from incompatible pointer type
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:651: error: too few arguments to function ‘class_device_create’
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:699: warning: passing argument 2 of ‘class_device_create’ makes pointer from integer without a cast
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:699: warning: passing argument 3 of ‘class_device_create’ makes integer from pointer without a cast
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:699: warning: passing argument 4 of ‘class_device_create’ from incompatible pointer type
/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.c:699: error: too few arguments to function ‘class_device_create’
make[3]: *** [/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper/main.o] Error 1
make[2]: *** [_module_/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper] Error 2
make[2]: Leaving directory `/usr/src/kernels/2.6.16-1.2133_FC5-i686'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/root/rpmbuild/BUILD/svgalib-1.9.24/kernel/svgalib_helper'
make: *** [installmodule] Error 2

na ezek utan tanacstalan vagyok. lehet, hogy downgradelnem kellene a kernelt?

udv Zoli

Nos, lehet... úgy néz ki, hogy itt komolyabb programozási ismeretek, hibajavítási vágy nélkül nem fogod tudni megcsinálni, és én is tanácstalan vagyok ezek után.

Azért 1 megjegyzés: rpmbuld -bp nem kell, ha utána -ba jön, mert a ba, az először peccsel. Az a csomagkészítőknek egy tesztelési lépcső leginkább, hogy lássad a specfile-od jó-e.