fehlerhafte Kernelquellen bzw. Benamung
Hallo, ich habe, um einen Fehler im Kernel austesten zu können, versucht einen neuen Kernel zu bauen. Dies sowohl mit 9.0 als auch der SLD. Bei beiden bekomme ich nach der Installation des Kernels bei Neustart einen Fehler (unresolved ... für reiserfs.o). Nach einem Rumprobieren bin ich darauf gekommen, daß der Kernel im /boot "vmlinuz-....-default" genannt wird, während die Kernelquellen unter /usr/src/ "linux-...." heißen. Eine Änderung im Namen unter /boot ist die Lösung. Kann mir jemand den Grund erklären, warum das so ist? Oder ist es ein Fehler von Suse, den ich _SEHR_ ärgerlich finde. Noch eine Frage: Kann man die initrd bzw. den Inhalt beeinflussen, kann man die Datei mounten ? Grüße, Werner
Werner Ginzky wrote:
ich habe, um einen Fehler im Kernel austesten zu können, versucht einen neuen Kernel zu bauen. Dies sowohl mit 9.0 als auch der SLD.
Bei beiden bekomme ich nach der Installation des Kernels bei Neustart einen Fehler (unresolved ... für reiserfs.o).
Den solltest Du nicht nach Neustart bekommen, sondern nach dem Installieren der Module und dem Ausfuehren von depmod.
Nach einem Rumprobieren bin ich darauf gekommen, daß der Kernel im /boot "vmlinuz-....-default" genannt wird, während die Kernelquellen unter /usr/src/ "linux-...." heißen. Eine Änderung im Namen unter /boot ist die Lösung.
Verstehe hiervon kein Wort... Der Kernel wird genau so genannt, wie Du ihn beim Kopieren nach /boot bezeichnest und nicht anders, z.B. vmlinuz-2.4.22 oder vmlinuz-2.4.20-4GB-athlon usw. usw.
Kann mir jemand den Grund erklären, warum das so ist?
Glaube nicht. Es ist recht unverstaendlich, was Du schreibst.
Oder ist es ein Fehler von Suse, den ich _SEHR_ ärgerlich finde.
Um ehrlich zu sein, ich habe schon sehr viele Kernel com- piliert und ich glaube nicht, dass es ein Fehler von SuSE ist...
Noch eine Frage: Kann man die initrd bzw. den Inhalt beeinflussen, kann man die Datei mounten ?
Diese Frage zeigt, dass Du Dir _dringend_ http://www.thomashertweck.de/kernel.html durchlesen und beachten solltest. Und ich wette, Deine Probleme werden danach verschwunden sein... CU, Th.
Hallo Thomas, danke für Deinen Link, werde ich mir heute abend mal durchlesen. Thomas Hertweck schrieb:
Werner Ginzky wrote:
...
Bei beiden bekomme ich nach der Installation des Kernels bei Neustart einen Fehler (unresolved ... für reiserfs.o).
Den solltest Du nicht nach Neustart bekommen, sondern nach dem Installieren der Module und dem Ausfuehren von depmod.
ich bin nach der Beschreibung im Handbuch vorgegangen, da kommt kein depmod vor.
Nach einem Rumprobieren bin ich darauf gekommen, daß der Kernel im /boot "vmlinuz-....-default" genannt wird, während die Kernelquellen unter /usr/src/ "linux-...." heißen. Eine Änderung im Namen unter /boot ist die Lösung.
Verstehe hiervon kein Wort... Der Kernel wird genau so genannt, wie Du ihn beim Kopieren nach /boot bezeichnest und nicht anders, z.B. vmlinuz-2.4.22 oder vmlinuz-2.4.20-4GB-athlon usw. usw.
stimmt so nicht. Wenn man nach der Beschreibung vorgeht, dann wird bei einem "cp /usr/src/linux .../arch/i386/boot/bzImage /boot/vmlinuz" über den vorhanden Link der eigentliche Kernel mit Namen vmlinuz-2.4.21-99-default überschrieben. Das Quellen-Verzeichnis unter /usr/src/ heißt aber nur "linux-2.4.21-99" heißt. Das Verzeichnis /usr/src/linux ist dann ein Link auf /usr/src/linux-2.4.21-99 Ähnlich ist es mit den Dateien "System.map" und "initrd" unter /boot.
Kann mir jemand den Grund erklären, warum das so ist?
Glaube nicht. Es ist recht unverstaendlich, was Du schreibst.
Oder ist es ein Fehler von Suse, den ich _SEHR_ ärgerlich finde.
Um ehrlich zu sein, ich habe schon sehr viele Kernel com- piliert und ich glaube nicht, dass es ein Fehler von SuSE ist...
mir kommt es aber stark so vor, aber gerne lasse ich mir auch die Zusammenhänge erklären.
Noch eine Frage: Kann man die initrd bzw. den Inhalt beeinflussen, kann man die Datei mounten ?
Diese Frage zeigt, dass Du Dir _dringend_ http://www.thomashertweck.de/kernel.html durchlesen und beachten solltest. Und ich wette, Deine Probleme werden danach verschwunden sein...
ich hatte nach Infos gesucht, aber sie nicht gefunden. Ich hatte allerdings in der Vergangenheit auch nicht solche Probleme. Das ist neu. Danke trotzdem, Werner
Hallo Thomas, meine Anerkennung für die viele Arbeit zu der Kerneldokumentation. Meine meisten Fragen wurden beantwortet (fehlen tun mir so Kleinigkeiten wie: wie packt man das initrd aus und wie mountet man es als loop?) Trotz Deiner Beschreibung bleiben für mich aber noch einige Dinge bezüglich dem SUSE-Vorgehen offen. Warum heißt der installierte Kernel nicht wie die Quellen oder, warum wird im Handbuch nicht auf die Problematik hingewiesen, so daß man den Fehler umgehen kann? Warum läßt sich beim SLD nicht aus den Quellen und der laufenden .config - Datei ein neuer Kernel bauen, ohne das man Nachfragen zu Konfigurationseinstellungen erhält. Der Grund, warum ich den Kernel neu gebaut habe, war eine Änderung beim Zugriff auf Novell-Filesysteme (das zumindest klappt jetzt ;-) ). Grüße, Werner
Werner Ginzky wrote:
Meine meisten Fragen wurden beantwortet (fehlen tun mir so Kleinigkeiten wie: wie packt man das initrd aus und wie mountet man es als loop?)
$> gunzip -c /boot/initrd > /tmp/initrd $> mount -o loop /tmp/initrd /mnt $> ll /mnt/ total 20 drwxr-xr-x 8 root root 1024 Jul 25 14:06 . drwxr-xr-x 23 root root 4096 Nov 18 08:30 .. drwxr-xr-x 2 root root 1024 Jul 25 14:06 bin drwxr-xr-x 6 root root 9216 Jul 25 14:06 dev drwxr-xr-x 2 root root 1024 Jul 25 14:06 etc drwxr-xr-x 3 root root 1024 Jul 25 14:06 lib -rwxr-xr-x 1 root root 561 Jul 25 14:06 linuxrc drwxr-xr-x 2 root root 1024 Jul 25 14:06 mnt drwxr-xr-x 2 root root 1024 Jul 25 14:06 proc $> umount /mnt $> rm /tmp/initrd
Trotz Deiner Beschreibung bleiben für mich aber noch einige Dinge bezüglich dem SUSE-Vorgehen offen.
Warum heißt der installierte Kernel nicht wie die Quellen oder, warum wird im Handbuch nicht auf die Problematik hingewiesen, so daß man den Fehler umgehen kann?
Um ehrlich zu sein, ich verstehe Deine Problematik immer noch nicht ;-) Wie der Kernel heisst im Verzeichnis /boot spielt schlicht keine Rolle, Du kannst das Image auch /boot/I_like_debian-2.4.20-4GB-athlon nennen. Ueblicher- weise wird es eben /boot/vmlinuz-X genannt, wobei das X eben "uname -r" entspricht. Es sorgt dafuer, dass man ver- schiedene Kernel ohne Probleme parallel installieren kann. Was wirklich wichtig ist, ist das "uname -r" bzw. die Variable UTS_RELEASE in <source>/include/linux/version.h. Es ist insbesondere wichtig, dass version.h stimmt, wenn man externe Module (wie z.B. NVIDIA-Treiber) compilieren moechte. Sonst passen die Module dann nicht zum Kernel. Frueher (wie auch im Howto nachzulesen ist) bzw. heute auch noch beim Vanilla-Kernel musste man schlicht das Haupt- Makefile anpassen, um eine entsprechendes UTS_RELEASE zu bekommen - beim aktuellen SuSE-Kernel kann man das am Ende der Konfiguration (z.B. make xconfig) bei einem Punkt spe- zifizieren; ein Anpassen des Makefiles ist deswegen nicht mehr erforderlich. Ich werde das demnaechst mal ins Howto aufnehmen, mir fehlt momentan nur etwas die Zeit *seufz*... Die Quellen bei SuSE liegen normalerweise unter /usr/src/linux-2.4.X.SuSE, und /usr/src/linux ist ein Link auf dieses Verzeichnis. Das sind die Kernelquellen des SuSE Kernels 2.4.X. Das Verzeichnis kann auch /usr/src/SuSE-2.4.X heissen, es spielt schlicht keine Rolle. Es muss nicht ein- mal unter /usr/src liegen. Aus den Quellen wird dann je nach Konfiguration eben ein SuSE-Default-Kernel, ein SuSE-Athlon- Kernel, ein SuSE SMP-Kernel usw. All diese Kernel werden aus den gleichen Quellen gebaut.
Warum läßt sich beim SLD nicht aus den Quellen und der laufenden .config - Datei ein neuer Kernel bauen, ohne das man Nachfragen zu Konfigurationseinstellungen erhält.
Wenn Du die Quellen des laufenden Kernels installierst (und es muessen wirklich genau die passenden sein incl. evtl. Updates o.ae. per YOU), dann darf man bei einem "make cloneconfig" im Verzeichnis mit den Kernelquellen nichts gefragt werden. Ansonsten stimmt etwas nicht. Wenn man zu einer anderen Version wechselt, dann ist es logisch, dass man etwas gefragt wird, weil eben andere oder neuere Features dazu gekommen sind. Gruesse, Thomson
Am Montag, 17. November 2003 08:06 schrieb Werner Ginzky: Hallo, hatte auch ein änliches Ppproblem
ich habe, um einen Fehler im Kernel austesten zu können, versucht einen neuen Kernel zu bauen. Dies sowohl mit 9.0 als auch der SLD.
Bei beiden bekomme ich nach der Installation des Kernels bei Neustart einen Fehler (unresolved ... für reiserfs.o).
mkinitrd mit den entsprechenden Namen erstellen. Grub anpassen mit den richtigen File-Namen für Kernel und entsprechenden initrd's. evt. noch depmod
Nach einem Rumprobieren bin ich darauf gekommen, daß der Kernel im /boot "vmlinuz-....-default" genannt wird, während die Kernelquellen unter /usr/src/ "linux-...." heißen. Eine Änderung im Namen unter /boot ist die Lösung.
Kann mir jemand den Grund erklären, warum das so ist? Keine Ahnung es wurde halt vmlinuz und initrd genommen.
Oder ist es ein Fehler von Suse, den ich _SEHR_ ärgerlich finde.
Noch eine Frage: Kann man die initrd bzw. den Inhalt beeinflussen, kann man die Datei mounten ? wozu ? , das (Partitions)-Verzeichnis /boot wird eh gemontet.
Grüße, Heinz
participants (3)
-
Heinz Dittmar
-
Thomas Hertweck
-
Werner Ginzky