Sziasztok!
Debian lenny alatt szeretném a kernelt frissíteni (2.6.26-2-amd64-ről 2.6.34.1-re), csak már nagyon rég forgattam kernelt (2.4 kernel idejében). Az a kérdésem, hogy a make menuconfig parancs után, milyen további parancsokat kell kiadnom, hogy meglegyen a bzImages stb?
Közönöm előre is.
- 3599 megtekintés
Hozzászólások
Ha csomagot akarsz csinálni, akkor a legegyszerűbben így:
make-kpkg kernel_image
make-kpkg kernel_headers
Azt azokat meg dpkg -i *deb -el felrakod és kész is.
Szerk: Ha nem kell csomi, akkor így:
> make bzImage modules modules_install
---------------------------
Oszt jónapot!
- A hozzászóláshoz be kell jelentkezni
A make bzImage modules modules_install választom, aztám meglátom melyik a jó:)
köszi
- A hozzászóláshoz be kell jelentkezni
Legvégére dobhatsz egy make install-t is.
- A hozzászóláshoz be kell jelentkezni
Vagy így:
sudo fakeroot make-kpkg --initrd --revision=1.0 kernel_image kernel_headers
sudo dpkg -i linux-image-2.6.34*
sudo dpkg -i linux-headers-2.6.34*
sudo mkinitramfs -k 2.6.34.1 -o /boot/initrd.img-2.6.34.1
sudo update-grub
Így lesz initrd -d. Ha nem kell, akkor a "--initrd" paramétert az első sorból és a "sudo mkinitramfs .." sort hagyd ki.
- A hozzászóláshoz be kell jelentkezni
Jah igen, az "--initrd" kimaradt. Én is ezzel szoktam. :)
---------------------------
Oszt jónapot!
- A hozzászóláshoz be kell jelentkezni
Sajnos nem fordul le a kernelem, most virtualbox alatt próbálkoztam, de mindig elszáll. Amikor befordul rendesen, akkor meg nem csinálja meg a .deb csomagokat.
Tehát a make menuconfig után lefutatom a
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
dpkg -i linux-image-2.6.*---------------------------------nincs
dpkg -i linux-headers-2.6.*-------------------------------nincs
Vajon miért?
Előre is köszi
- A hozzászóláshoz be kell jelentkezni
Hát nekem lefordul. Én is forgattam 2.6.34-est, igaz ezt squeezen, de lennyin sem volt semmi bajom. Illetve tavaly szívtam vele, - hozzátenném én voltam a hülye - mert valami zlibet hiányolt, de feltettem a hiányzó csomagot és kész. Nézd meg pontosan mit ír ki a make error. Nem hiányol valamit.
Én mindig csomagot csinálok az alábbiak szerint:
make-kpkg kernel_image --initrd
make-kpkg kernel_headers
************************************************************************
Mielött beletaposnál a lelki világomba a 7 perc 30 másodperctől nézd meg ezt.
Debián forevör
- A hozzászóláshoz be kell jelentkezni
Az alábbi hibaüzentet kapom a make-kpkg kernel_image --initrd kiadásakor:
[1]: Leaving directory `/usr/src/linux-2.6.28.2'
/usr/bin/make ARCH=i386 \
-C Documentation/lguest
make[1]: Entering directory `/usr/src/linux-2.6.28.2/Documentation/lguest'
cc -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include lguest.c -lz -o lguest
lguest.c:34:18: error: zlib.h: No such file or directory
make[1]: *** [lguest] Error 1
make[1]: Leaving directory `/usr/src/linux-2.6.28.2/Documentation/lguest'
make: *** [debian/stamp/build/kernel] Error 2
- A hozzászóláshoz be kell jelentkezni
zlib-eket felteszem, hátha segít
- A hozzászóláshoz be kell jelentkezni
Próbáld meg az "apt-get build-dep linux-image" paranccsal a fordítás függőségeit telepíteni! Gondolom a libncurses-dev már fent van, ha a make menuconfig megy. :)
Egyébként ha létrejönnek a .deb csomagok, akkor a /usr/src könyvtár alatt keresd őket, ne a kernel forráskönyvtárában, ahol a fordítást végezted!
- A hozzászóláshoz be kell jelentkezni
Az van, hogy sikerült azokat a csomagokat feltolnom, amit kért, ezután megcsinálta a csomagokat, amit telepítettem is. A gond az, hogy amikor bootolok az új kernellel, akkor a gyoker rendszer felcsatlakoztatásánál nem lép tovább:( További ötletek?
köszi
- A hozzászóláshoz be kell jelentkezni
Hm.. LVM -et használsz? Sata driver be van forgatva (gondolom sata -s diszked van, ugye?)? Ext.3/4, stb fájlrendszerek be vannak forgatva vagy modulként vannak fordítva? Milyen fájlrendszered van? Milyen fájlrendszeren van a /boot?
A lényeg az, hogy a /boot fájlrendszere mindenképp legyen beforgatva a kernelbe, a többi fájlrendszert lehet modulként is fordítani, aztán initrd -ből azt berántja a kernel. De ha a /boot fájlrendszere nincs beforgatva, akkor már az initrd -t sem tudja beolvasni...
Esetleg még azt próbáld meg, hogy úgy forgatod a kernelt, hogy a működő kerneled .config fájlját bemásolod a fordítandó kernel forráskönyvátárába. Valahol a /boot/config-2.6.* környékén van, simán cp /boot/config-2.6.* /usr/src/linux/.config (vagy ahol van a kernel forrásod). Ezzel a módszerrel biztosan leforgatsz mindent modult, amit a disztribútor is szállít. Viszont így lesz egy csomó fölösleges modulod is...
- A hozzászóláshoz be kell jelentkezni
Én úgy tudom, hogy az initrd-t még nem a kernel tölti. Pont ez lenne a lényeg, hogy az initrd eszköz független: a kernel után az initrd-t is még a boot loader tölti be, így a kernelnek nem kell tökölnie azzal, hogy milyen eszközről töltse be. Ebből több dolog is következik: nem kell tudni elérni a /boot eszközét és nem kell a /boot file rendszerét sem ismernie a kernelnek!
- A hozzászóláshoz be kell jelentkezni
subscribe
---------------------------------------------
linux alapparancsok - http://www.doksi.atw.hu
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Ubuntu help oldala? - talán jó a debianhoz is, sőt, van "Alternate Build Method: The Old-Fashioned Debian Way" bekezdése is.
- A hozzászóláshoz be kell jelentkezni
Nekiestem ennek a leírásnak https://help.ubuntu.com/community/Kernel/Compile, de az nem világos, hogy a fakeroot mit is csinál, ez a progi micsoda?
- A hozzászóláshoz be kell jelentkezni
Sajna nekem nem jö össze ez a csomag összerakás:( Találkozott már valki hasonló problémával?
IHEX2FW firmware/keyspan_pda/xircom_pgs.fw
make[1]: Leaving directory `/usr/src/linux-2.6.31.14'
/usr/bin/make EXTRAVERSION=.14-some-string-here ARCH=i386 \
-C Documentation/lguest
make[1]: Entering directory `/usr/src/linux-2.6.31.14/Documentation/lguest'
cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -o lguest
lguest.c:21:25: error: sys/eventfd.h: No such file or directory
lguest.c: In function ‘create_thread’:
lguest.c:1021: warning: implicit declaration of function ‘eventfd’
make[1]: *** [lguest] Error 1
make[1]: Leaving directory `/usr/src/linux-2.6.31.14/Documentation/lguest'
make: *** [debian/stamp/build/kernel] Error 2
- A hozzászóláshoz be kell jelentkezni
"a fakeroot mit is csinál, ez a progi micsoda"
http://www.ibiblio.org/pub/linux/docs/howto/translations/hu/html_single…
- A hozzászóláshoz be kell jelentkezni
A fakeroot-ot mostmár értem, de nem jutok egyről a kettőre a kernelfordítással, az alábbiak szerinte csinálom:
1, letőltöttem
2, kicaomagoltam tar -xvjf linux-2.6.31.14.tar.bz2
3, csináltam linket ln -s linux-2.6.31.14 linux (/usr/src)
4, beléptem a linux könyvtárba, majd cp -vi /boot/config-2.6.26-2-686 .config
5, make menuconfig
6, betöltöttem a .config fájlt
7, mentettem a config fájlt
8, fakeroot make-kpkg --initrd --append-to-version=-some-string-here kernel-image kernel-headers
Ez után dobta a hibaüzenetet:(
- A hozzászóláshoz be kell jelentkezni
Elvileg a Debian Lenny libc csomagja túl régi, google ezt dobta.
http://cakebox.homeunix.net/wordpress/?p=100
- A hozzászóláshoz be kell jelentkezni
Most már nem dobaj a hibát, mert amit küldtél leírást, aszerint módosítottam, köszi.
Viszont beleszaladtam egy hibába, nem tölti be az uj kernelt, hanem át dob az initramfs menübe:(
Telapítettem a csomagokat:
dpkg -i linux-image-2.6.31.14-some-string-here_2.6.31.14-some-string-here-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.31.14-some-string-here_2.6.31.14-some-string-here-10.00.Custom_i386.deb
és reboot után az initramfs menübe dob:( miért?
- A hozzászóláshoz be kell jelentkezni
Lehet valamilyen modul kimaradt fordításnál, nem tudom, még nem jártam így.
- A hozzászóláshoz be kell jelentkezni
Valakinek van jo/hasznalhato leirasa kernelforditasbol? {debian lenny}
- A hozzászóláshoz be kell jelentkezni
Támadt egy ötletem. Miért nem hagyod a francba a kernelfordítást és töltesz le egy 32-eset a debian testing repóból. Vagy mindenáron a 31-eshez ragaszkodsz?
*************************************************************
Mielött beletaposnál a lelki világomba a 7 perc 30 másodperctől nézd meg ezt.
Debián forevör
- A hozzászóláshoz be kell jelentkezni
Vagy mehet a kernel forgatás és a kapott bzImage fájlt betolja a grubba aztán mehet a rendszer. Én sokszor még az initrd-vel sem vacakolok. Minden ami kell ott van a kernelben, de az összes többi kikapcsolva (hangkártyák, videókártyák, sata vezérlők tipusai).
Nincs szivás. Ha a hangkártyát, hálókártyát nem tudom, akkor berakok néhányat modulból. Később amikor felállt a rendszer, egyenként betolom a modulokat. Ami megfogja, azt később fixre beforgatom. Jobb esetben magától berántja és az lsmoddal megnézem mi kell neki, később ezeket szintén fixen beleforgatom. Ami tényleg olyan, hogy évente 1x kell nekem, pl. ntfs támogatás, azt modulként beleteszem. Initrd ehhez totál felesleges, ha fixen ott van a sata vezérlő a rendszer már elindul, no para.
Többit meg majd behúzza a kernel a /lib/modules/ mappából.
- A hozzászóláshoz be kell jelentkezni
"Ha a hangkártyát, hálókártyát nem tudom, akkor berakok néhányat modulból. Később amikor felállt a rendszer, egyenként betolom a modulokat. Ami megfogja, azt később fixre beforgatom."
Elvileg erre van a "make localmodconfig".
- A hozzászóláshoz be kell jelentkezni
Hmm, ezt meg nem is hallottam. Erdekes.
- A hozzászóláshoz be kell jelentkezni
Ez nagyszeru, koszi. Az eddigieknel meg oke, mert az elozo forditas config filejat hasznalom fel ujra
es modositom, ha kell, de egy tokuj, gyari rendszernel ez jol jon.
- A hozzászóláshoz be kell jelentkezni
Sőt. Elküldöd a config fájlt meg megmondod pontosan hányas kernelt és lefogatom Neked, márcsak kíváncsiságból is.
**************************************************
Mielött beletaposnál a lelki világomba a 7 perc 30 másodperctől nézd meg ezt.
Debián forevör
- A hozzászóláshoz be kell jelentkezni
Holnap neki esek megint, de most virtual gépen (virtual box-on), és ha nem jutok sehova, akkor átküldöm neked a configot, csak a gondom az, hogy felnyomok egy rendszert, és a .config filet load-olm be, aminek utánna mennie kellene. Régen a 2.4 kerneleknél nem volt ennyire elcseszve, de lehet, hogy én vagyok a bal*asz. Na mindegy holnap nekiesek megint...
Köszi mindenkinek
- A hozzászóláshoz be kell jelentkezni
Az is eredményre szokott vezetni, hogy egy gyári kernel (pl. ubuntuban lévő) /boot alatt lévő config fájlt használod fel, csak kiveszed azt a több száz számodra teljesen felesleges modult. Majd egyre jobban lefaragod, mindig megtartva az előző, még sikeres változatot. A végére egész jól kicsontosodik ;)
- A hozzászóláshoz be kell jelentkezni
Ha a vasad tartalmát fixen állítod be, nem kell
init.rd.
Mellesleg a "make" parancs megcsinál mindent,
ha jól emléxem fordítgatós időmre.
make_clean
make_menu_config
make
make_install
- A hozzászóláshoz be kell jelentkezni