Jelenlegi hely
Kernel
cs, 2010-02-25 23:23 - bazsimc
Üdv!
Szeretném a jól működő kernelemet (gyári) újrafordítani, úgy hogy csak egy-két opciót módisítanék rajta. Van arra lehetőség, hogy a menuconfig indításánál a gyári kernel opciói jöjjenek fel? Utána módosítani rajta, majd fordítás, telepítés, lilo, restart?
Köszi a választ!
bazsimc
Fórumok:
»
- A hozzászóláshoz regisztráció és belépés szükséges

Mikor kiadod a make
Mikor kiadod a make menuconfig parancsot, az utolso elotti opcio a "Load an alternate configuration file". Ezt valasztva megadhatod a gyari kernel config file-jat, amit a /boot konyvtarban talalsz.
Már örültem, hogy sikerült.
Már örültem, hogy sikerült. Arra rájöttem, hogy initrd-t kell csinálnom.
Nem sikerült.
Tudnátok segíteni, hogy milyen parancsot kell kiadni?
A root: /dev/hda5 , ext4 fs.
A kernel 2.6.29.6-smp
Nekem nem sikerült. Hibával áll le a betöltés:
mount: mounting /dev/hda5 on /mnt failed: no such device
Mi lehet a baj?
Köszi!
En ezen scrip altal generalt
En ezen scrip altal generalt parancsot hasznaltam:
/usr/share/mkinitrd/mkinitrd_command_generator.sh -r
2.6.32.7-es kernel, ext4-es filerendszer es lvm kombinaciojara nekem ezt a parancsot javasolta:
mkinitrd -c -k 2.6.32.7 -f ext4 -r /dev/mapper/myslackvg-root -m crc16:jbd2:mbcache:ext4 -L -o /boot/initrd.gz
P.S. lilo.conf-ba ne feledd el megadni az initrd-t, majd ujratenni a lilo-t
Köszi Kakukk! Én is
Köszi Kakukk!
Én is lefuttattam mkinitrd command generátort, majd a lilo-t.
A hibaüzenet ugyanaz. Arra panaszkodik, hogy nem tudja mountolni a hda5-t.
Lehet összefüggés azzal, hogy a hda5 egy logikai partició?
Köszi!
B.
Nem hiszem. Sok ideig, amig
Nem hiszem. Sok ideig, amig meg hasznaltam windows-t nekem is logikai particio a root, a swap es a home is.
Igazabol nem tudom mi lehet... Esetleg linkeld be ide, milyen initrd parancsot adtal ki es hogyan nez ki a lilo.conf...
initrd
Szevasztok
Nem kell initrd, ha a fájlrendszert fixen belerakod a kernelbe.
Meg érdemes egyéni initrd -t készíteni, nem a régit felülírni :-))
Az -r opciónál neked más kell, ha csak nem te is LVM -et használsz, mint kukukk.
A logikai partíció nem zavar be.
Nem tettél véletlenül valamit modulba, vagy hagytál ki valamit, ami esetleg kellett volna?
Mit szerettél volna kihagyni a kernelből?
Szevasztok
Halisztok! Íme itt az
Halisztok!
Íme itt az üzenet:
initrd.gz Loading kernel modules for initrd.gz:
mount: mounting /dev/hda5 on /mnt failed: No such device or address
ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead. You can try to fix it. Type 'exit' when things are done.
/bin/sh: can't access tty: job control turned off
Tulajdonképpen a "powertop"-ot akarom kihasználni, ehhez kernelbe szeretném tenni a "kernel hacking"-et és a "Tickless timer"-t (CONFIG_NO_HZ). És ha már új kernel, akkor kivenném a gfs2-t.
Ennyi.
Nehéz elhinni, hogy egy ilyen tök átlagos konfiggal ilyen bonyolult egy nyamvadt gyári kernelt módosítani. Ennyire noob nem lehetek! Vagy mégis?! :)
Köszönöm az eddigieket is!
lehetséges, hogy át lett nevezve
Szia!
Új kernel fordításakor az eszközök lehet, hogy átneveződnek. Valószínűleg nálad is ez történhetett.
Pat írta a current changelog -jában:
"New kernels... and this deserves a mention/warning: the last bits of the
"old" IDE/ATA system have been removed now. Everything should be using
the libata based drivers now, so if you have any drives that are currently
running as /dev/hda, /dev/hdb, etc., when you reboot with these kernels all
drives will be renamed as /dev/sda, /dev/sdb, etc. If you had any /dev/sd*
already, they might get renamed. Adjustments may be required in
/etc/lilo.conf, /etc/fstab, the initrd, and elsewhere. Good luck!"
Szóval, ha a current ágból szedted a config file -t, akkor a hd* -ot át kell nevezni sd* -ra.
Nézd meg, hogy milyen kimenetet ad az:
ls /dev/hd*és a
ls /dev/sd*Ez alapján már tudod módosítani a /etc/fstab -ot
Sziaszok! Ebben lehet
Sziaszok!
Ebben lehet valami.
De ha átírom az etc/fstab-t /etc/mtab-t, akkor meg a gyári kernellel nem fog menni, nem?
Szeretném ha egyelőre mindkét kernel választható legyen.
Kipróbáltam, hogy a mkinitrd parancsban kicseréltem a hda5 -t sda5 -re. Az eredmény ugyanaz, mint azelőtt.
Köszi!
initrd szerintem felesleges
Szia!
Szerintem hagyd az initrd -t. Inkább fordítsd be a kernelbe fixen ami neked kell. Nem érdemes vele ennyit bajlódni. Saját fordítású kernelnél amúgy sincs sok értelme. Az initrd -t arra találták ki, hogy a disztrók kernele ne legyen túl nagy. Amit csak lehet beraknak modulba. Ha pedig boot során kell valami, akkor azt be lehet tölteni initrd -vel.
Na mármost, ha te magadnak fordítod a kernel -t, akkor ki tudod választani, hogy neked mi kell a boot -oláshoz, és így elkerülheted az initrd -t. (És kiszedheted a sok felesleges cuccot a kernelből, ami neked nem kell, így nem lesz túl nagy a kerneled.)
"Kipróbáltam, hogy a mkinitrd parancsban kicseréltem a hda5 -t sda5 -re. Az eredmény ugyanaz, mint azelőtt."
Szerintem pont ennek kellett történnie; ugyanis a mount -olás akkor is a /etc/fstab -ból történik, szóval ilyen szempontból mindegy, hogy mit adsz meg az initrd -nek. (Lehet, hogy ebben tévedek, ha igen, akkor majd mások kijavítanak.)
"De ha átírom az etc/fstab-t /etc/mtab-t, akkor meg a gyári kernellel nem fog menni, nem?
Szeretném ha egyelőre mindkét kernel választható legyen"
Ha ezt szeretnéd, akkor forgasd bele a kernelbe az IDE/ATA támogatást.
Vagy ami szerintem jobb megoldás: tölts le a current ágból egy kernelt. Ott már eleve sd* -al jelölik a meghajtókat, illetve partíciókat.Így a gyári és a saját kerneled is kompatibilis lesz.
Egyébként ha megy majd rendesen az általad fordított kernel, akkor amúgy sem lesz szükséged a gyárira.
Köszönöm a választ, de akkor
Köszönöm a választ, de akkor gyakorlatilag visszaérkeztünk az eredeti kérdéshez, amit még tovább egyszerűsítve feltennék újra:
Hogyan tudnám a gyári (telepítőn szereplő) kernelt reprodukálni?
avagy
Honnan/melyik .config -ot kellene a menuconfig-ba betöltenem ahhoz, hogy a make után gyakorlatilag u.a. a kernel legyen a végeredmény?
Értem én, hogy noob vagyok, de minden tanácsotokat szépen sorban megfogadok, mégsem sikerült eddig még működő kernelt fabrikálnom, pedig a gépem lehető legalapabb hardverrel rendelkezik.
Köszönöm
/boot könyvtár
Szia!
A /boot könyvtárból keresd ki a kerneledhez tartozó config file -t.
Ha a generic kernelt használod, akkor lehet, hogy kell majd initrd is.
Úgy tűnik sikerült kicsit
Úgy tűnik sikerült kicsit haladnom.
A lilo.conf-hoz hozzáadtam:
Append = "raid=noautodetect rootfs=ext4"
és kivettem az initrd hivatkozást.
Már nincs kernel panic, viszont van egy ilyesmi hiba (Értelemszerűen Slack13 és nem Suse).
Miért akarja e2fsck-val ellenőrizni az ext4 fájlrendszert?
Viszont már "singleuser mode"-ban be tudok jelentkezni.
Van tippetek a végső megoldásra?
Azt ugyanis nehezen tudom elképzelni, hogy hibás a root fájlrendszer ha az egyik és hibátlan ha a másik kernelt indítom.
Btw. érdekelne, hogy a gyári kernel honnan tudja, hogy a rootfs ext4? A lilo.conf-ban neki miért nem kell a fenti append-es sor?
Üdv és köszi!
Indítottam DVD-ről a gépet és
Indítottam DVD-ről a gépet és lefuttattam az e2fsck-t. Aszongya, hogy nem tetszik neki a superblock (A csatolt kép alapján Nektek is úgy tűnik, nem?).
Na, szóval akkor kiderítettem, hogy 4K -s blokkokban van a hda5, ebből meg állítólag következik, hogy 32768-ra kell új superblockot íratni. Ezt is elvégeztem.
Reboot.
A helyzet változatlan.
Tipp?
Köszi!
Sajnos nem tudok
Sajnos nem tudok segiteni,helyette leirom a sajat storim, picit hasonlo a tiedhez.
Adott egy laptop, benne egy vinyoval (sda), amit nem akarok piszkalni. Vettem egy USB-s kuslo vinyot (sdb), amire Ubuntu 9.10 ment fel (grub 2-vel), mert annak a CD-je volt keznel.
Kesobb feltettem egy Slackware13 at, lilo-val; boot utan a lilo csak ennyit ir: 01010101...
Slackware-es particio helyere probaltam Debian-t is (5.x), grub(1) telepul, boot utan: Error 17...
Valahol neten olvastam, hogy talan a particio sorrend nem jo, ezt fdiskkel javitottam (x (extra functionality (experts only)), majd f (fix partition order) ).
Ezutan persze modositani kellett a grub menu.lst-jet, de persze nem lett jobb.
Azt is probaltam, hogy az Ubuntu grub2-jet hasznalom, de azzal csak az Ubuntuba tudok bootolni. A tobbi esetben "no such file", "no partition selected" es "you should load kernel first" hibauzeneteket kapom.
(Szinte) biztos vagyok benne, hogy nem irtam el a lilo.conf*-ot, sem a grub config fajljat.
Ami meg erdekes info - bar nem hinnem, hogy koze van hozza - az az, hogy az Ubuntu 32bites a tobbi 64.
* A telepites vegen keszul egy egyszeru lilo.conf, en csak azt adom meg melyik MBR-be keruljon (sdb - telepites kozben is vegig ennek latja az USB-s vinyot), meg, hogy hol a kernel.
A kérdést azzal oldottam meg,
A kérdést azzal oldottam meg, hogy újra telepítettem a rendszert, immáron ext3 root fs-sel.
A fenti mizéria után már könnyedén fordult és indult az új kernelem.
Mindenkinek köszönöm a segítséget!