PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RH9 Kernel kompilieren, geht nicht ganz...


neuankömmling
2005-02-14, 17:55:02
Hallo zusammen!

Also, hab schon mal die Suchfunktion genutzt und den Stickyartikel für das Kernelkompilieren, jedoch klappt es bei mir immer noch nicht so ganz...

Ich hab mir den Kernel 2.6.10 mal gesaugt&entpackt und mit xconfig entsprechend konfiguriert.

Danach hab ich folgendes eingegeben:
make dep
make bzImage
make modules
make modules_install

okey. so weit so gut.
Hab danach das bzImage und System.map vom 2.6.10-Folder ins /boot kopiert.
-Problem gibts jetzt beim lilo-conf. Irgendwie scheint er mir immer noch den alten Kernel zu laden, obwohl ich doch bei image = /boot/bzImage angegeben hab.

Ausserdem bin ich nicht sicher, ob ich den richtigen Kernel kopiert hab. Hab da noch ein ziemlich grosses Teil im 2.6.10 Ordner drin namens vmlinuz. Was soll das?
Hier bleibe ich eben hängen und weiss nicht mehr weiter... hoffe es kann mir jemand helfen.

P.S. Bin ein Linux-Neuling, also bitte nicht in zu grossen "Schritte" die Lösung angeben. Danke! :-)

klutob
2005-02-14, 20:04:07
Hi,

1. Bei der 2.6.er Kernelserie entfällt das lästige "make dep" (Abhängigkeiten werden automatisch generiert), außerdem kannst du automatisch mit "make install" gleich den Kernel+System.map ins boot-Verzeichnis kopieren. :)

Hier mal ein vollständiges Beispiel von Kernel+Module bauen und installieren:

cd /usr/src/linux
make vmlinux modules modules_install install


Zu deinem Bootproblem wäre es hilfreich, wenn du mal deine lilo/bzw. grub.conf posten könntest sowie den kompletten Inhalt des "/boot" Ordners.

tschö

neuankömmling
2005-02-14, 20:41:31
Okey, hab jetzt mal das 'make install' Zeugs gemacht. Leider erhalten ich folgende Fehlermeldung:
" CHK include/linux/version.h
make[1]: »arch/i386/kernel/asm-offsets.s« ist bereits aktualisiert.
CHK include/linux/compile.h
dnsdomainname: Unbekannter Rechner
CHK usr/initramfs_list
Building modules, stage 2.
MODPOST
make: *** Keine Regel, um »module_install« zu erstellen. Schluss.
"

Hier noch der Inhalt meiner lilo.conf.anaconda:
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32

image=/boot/vmlinux
label=linux
initrd=/boot/initrd-2.4.20-8.img
ready-only
append="hdc=ide-scsi hdd=ide-scsi root=LABEL=/"

Und hier noch der Inhalt des boot-Folder:

boot.b initrd-2.4.20-8.img module-info System.map-2.6.10
bzImage kernel.h module-info-2.4.20-8 vmlinux
chain.b lost+found os2_d.b vmlinux-2.4.20-8
config-2.4.20-8 message System.map vmlinuz
grub message.ja System.map-2.4.20-8 vmlinuz-2.4.20-8


....
Thx noch!

klutob
2005-02-14, 20:57:26
Ich geh mal davon aus, daß das "bzImage", der von dir erstellte Kernel ist. Also in den boot-Ordner wechseln und erstmal diesem Kernelimage einen ordentlichen Namen verpassen.


cd /boot
mv bzImage vmlinux-2.6.10


In deiner lilo.conf einfach noch den 2.6.10-Eintrag am Ende hinzufügen (so hast du einen Fallback zum Standard-Redhat Kernel).

......
image=/boot/vmlinux-2.6.10
label=Kernel-2.6.10
ready-only
append="hdc=ide-scsi hdd=ide-scsi root=LABEL=/"


Noch einmal versichern, daß unter "/lib/modules/" auch die Module von 2.6.10 installiert worden sind-->reboot -->Kernel-2.6.10 auswählen -->fertsch.

NeoCream
2005-02-15, 12:41:26
hallo ich bin es wieder (Thread-Starter)

Also schon mal vielen Dank fuer deine Hilfe. Kann mittlerweilen den Kernel vom Bootscreen aus anwaehlen.

Jetzt krieg ich waehrend der Kernelinitialisation folgende Fehlermeldung:

"Kernel panic - not syncing: No init found. Try passing init=option to kernel"

Werd daraus nicht wirklich schlau. Haette ich im Lilo noch was angeben muessen?

klutob
2005-02-15, 13:12:28
Wie hast du deinen Kernel konfiguriert? Sind die gesamten IDE-Chipsatzeinstellungen sowie die Dateisystemunterstützung des Rootlaufwerkes (ext2+ext3) fest in den Kernel kompiliert? Wenn du einfach die Kernelkonfig von Redhat übernommen hast, sind das alles Module, die von einer "initrd" vorgeladen werden müssen.

Ach ja, hast du die "module-init-tools" installiert, diese werden von der 2.6er Serie benötigt, um später im Betrieb Module initialisieren zu können.

NeoCream
2005-02-15, 17:11:27
Da bin ich wieder...

Also, ich hab den Kernel vorsichtshalber neu kompiliert (mit quasi allen BUS-Treiber/Chipsatz etc).
Danach rumkopiert und kernel geladen.
Diesmal blieb er nicht mehr bei der alten Fehlermeldung hängen, sondern ratterte weiter... jedoch erhielt ich diesmal jede Menge Fehlermeldungen bezüglich "modutils" "Firewalleinstellungen" "Netzwerk" ... also ziemlich viel.

Hab dann dieses module-init-tool installiert

Runtergeladen
ins /usr/src kopiert. Entpackt und dann folgendes eingegeben
./configure
make
make install

Danach wieder nen Reboot durchgeführt, jedoch erhielt ich wieder die genau gleichen Fehlermeldungen und beim Bootvorgang bleibt er am Schluss beim Ethernetcard-startup hängen.

Hätte ich noch ein file editieren müssen?

klutob
2005-02-15, 17:29:49
Hi,

Hier ist ein Howto wie man die module-init-tools unter Redhat installiert (es brecuht auch noch neuere modutils).
http://www.linuxquestions.org/questions/answers.php?action=viewarticle&artid=150

Zu den Fehlermeldungen bei Start:

Dein kernel kann derzeit Module nachladen, d.h. entweder du bringst nach der Anleitung von oben dein Sys dazu es in Zukunft zu tun, oder (würde ich als temporären Workaround empfehlen) du kompilierst zusätzlich alle Eigenschaften die du während des Betriebs brauchst in den Kernel (analog den IDE-Chipsatz/Filesystemen). Den Fehlermeldungen nach zu schließen wären das also die Netzwerkkarte+ppp-Protokoll+IPv4 und Soundkarte.

Rhönpaulus
2005-02-17, 09:32:16
nimm lieber einen aktuellen 2.4.x -kernel.
rh9 für den 2.6.x umzustricken macht mehr probleme als sich eine eine neue distribution aufzuspielen wa dann auch einfacher wäre.

NeoCream
2005-02-17, 10:21:01
Beim 2.4.x-Kernel aufspielen geh ich aber genau gleich vor wie beim 2.6.10 (gem. klutob howto-Link??)

Oder ist das viel einfacher?

Rhönpaulus
2005-02-17, 12:05:24
das geht so wie du es schon beschrieben hast.
für den 2.6.x muß zusätzlich noch einiges auf dem system geändert und installiert werden wobei viele systemtools trotzdem nicht mehr richtig oder garnicht arbeiten.
als ich diverse berichte zum thema 2.6.x unter rh9 im netz gelesen habe ist mir die lust vergangen.
nicht umsonnst wir der 2.4er noch weiterentwickelt.
du kannst ja auch mal google zum thema fragen.
ich verwende zur zeit 2.4.28 unter rh9.

klutob
2005-02-17, 12:09:46
Hi,

Nein.
Du brauchst dich im Falle eines 2.4er Kernels, nicht mit den neuen modutils+modinit-tools beschäftigen. :) Einfach runterladen, Kernel wie besagten 2.6.10er konfigurieren --> läuft. :) Sicherheitshalber deinstallierst du noch die modinit-tools mit "cd _Pfad_zu_den _modinit-tools-sourcen" und einem "make uninstall".

NeoCream
2005-02-18, 18:27:35
So, werd heute Abend oder morgen mal den neuen Kernel installieren.
Voraussichtlich einen 2.4.xx wie ihr es schon gesagt habt.
Wie stehts überhaupt mit dem 2.5.xx Kernel + Redhat 9.0 ? Ist das auch so... ähm inkompatibel bzw. macht das auch so eine riesen Arbeit das Ding zu installieren?

Rhönpaulus
2005-02-18, 19:15:10
2.5.x gibt es nicht soweit ich weiss.

NeoCream
2005-02-19, 14:32:54
Und wofür sind diese Kernel hier:

ftp://ftp.kernel.org/pub/linux/kernel/v2.5

Vermutlich lass ich es, und nehme jetzt einen aktuellen 2.4.xx Kernel. Möchte da lieber auf der sicheren Seite sein :-)

Rhönpaulus
2005-02-19, 14:38:37
wieder was dazu gelernt.

in der readme steht folgendes:


linux-2.5.0 is exactly the same as 2.4.15, except for a version
number change. Subsequent releases diverge, with Marcelo Tosatti
maintaining the stable 2.4.x kernels, while the 2.5.x kernels are
for development work.


die sind also nicht für den einsatz gedacht.

Harleckin
2005-02-21, 16:39:28
Mal eine ganz grundlegende Frage!
Steht der verbundene Aufwand bzw. die aufgebrachte Zeit eigentlich in einer vertretbaren Relation zum eigentlichen Nutzen?!

Ich sehe jetzt auf den ersten Blick keinen Grund, warum du dir einen neuen Kernel compilierst. Für deine Anwendungszwecke gibt es ja ausreichende Binär-Pakete von Redhat. Aber ich lasse mich gerne eines besseren belehren.


Nun zum Kernthema..
U.a. werden Fragen zur Versionskontrolle unter [1] (http://www.tux.org/lkml/#s1-1) übersichtlich beantwortet.

Während des Entwicklungsprozesses vom "2.4" zum "2.6" änderte sich die ABI des Umganges mit Modulen, daher ist "module-init-tools" >= 0.9.13 Pflicht! Dass hast du ja korrekterweise auch berücksichtigt, aber bitte nutze in Zukunft das Packetmanagement.
Im genaueren heißt dies, installiere wann immer es sich um eine Programm mit Abhängigkeiten handelt, es als Packet!
Zur Not kann man aus den Quelltexten selbst ein Packet bauen, siehe 'rpm-build', 'dpkg-buildpackage' etc.. Andernfalls hebelt man das gesammte Packetmanagement aus und die damit verbundenen Probleme sind weitreichend!

BTW, hast den Support deiner NIC als Modul oder statisch im Kernel? Holst du dir per DHCP deine IP? Hast du die "loopback"-Schnittstelle oder weitere Netzwerkgeräte nicht vergessen?


[1] http://www.tux.org/lkml/#s1-1