Eigenen Kernel bauen und Installieren

Hallo,

ich verzweifle beim Versuch einen selbstgebauten Kernel zu installieren.
Nach einigen fehlgeschlagenen Versuchen mit neueren Kernel Sourcen dachte ich mir es sei evtl geschickter auf Basis des von Leap 42.3 verwendeten Kernels mit annähernd identischer Konfiguration zu starten.
Verwendet wird auf meinem System der Kernel 4.4.76 und auch 4.4.92.
also habe ich den letzten 4.4.x (x=103) Kernel heruntergeladen, die configuration /boot/config-4.4.92 als Basis genommen indem ich es in den build tree nach .config kopiert und make aufgerufen habe. Die neu hinzugekommenen Kernel-Konfigurationen habe ich dann mit ihren Standardwerten übernommen.

Man müsste doch davon ausgehen, dass dadurch keine großen Unterschiede entstehen und dass das System zumindest mit dem gebauten Kernel in der Lage sein sollte zu starten.
Nach einem ‘make bzImage module modules_install install’ hoffe ich sind alle images inkl. initrd und kernel module an den Orten an denen sie erwartet werden.
Ich habe ein update-bootloader ausgeführt und beim nächsten start war der neu gebaute Kernel 4.4.103 auch der default Kernel.
Leider bootet das System mit diesem Kernel nicht :frowning:
Ich erhalte nocht die Meldung dass die Ramdisk initialisiert wird bevor es dauerhaft schwarz wird.

Das letzte mal dass ich professionell mit dem Linux Kernel in Verbindung stand war um die Jahrtausendwende und seit dem hat sich zumindest eine Menge bzgl des Bootloaders getan. Die Grub2 KOnfiguration will ich eigentlich gar nicht im Detail verstehen und bin froh dass das SuSE Team den Bootloader offenbar automatisch mit den in /boot gefundenen Kernel updated.
Ich habe auch mal mit der custom.cfg mein Glück versucht. Ein entsprechendes Menü wurde beim booten angezeigt, aber … naja, ohne detailiertes Studium der man pages kommt man da wohl nicht weit :wink:

Die grundsätzlichen Fragen die sich mir stellen sind

  • Muss ich einen bestimmten Compiler verwenden, oder ist der gcc 4.8.5 nutzbar um den Kernel zu installieren?
  • Reicht ein make install ; update-bootloader um alle notwendigen Dateien zu installieren?
  • Gibt es noch irgendeine Tastenkombination mit der ich mir die Kernelmeldungen während des bootens anzeigen lassen kann? Ich bin der meinung das ging vor langer langer Zeit mal mit F12, aber wenn ich so an meiner Notebooktastatur rumdrücke passiert nichts.

Das Ziel das ich verfolge ist lediglich einen Kernel bauen zu können, der für’s profiling breit ist, also oprofiler, LTTng (mag evtl schon standardmässig laufen, …)
Ich könnte natürlich auch versuchen die SuSE Kernelsourcen zu beziehen aber ich schätze am Ende ist das Ergebnis des Bootvorganges das gleiche:/

Hilfreiche Tips sind sehr willkommen :slight_smile:

Gruß
Wasili

Hi,

um mehr zu sehen kannst Du in der Bootkonfiguration die Kernel-Parameter “splash=silent quiet” durch “splash=verbose” ersetzen.
Meine letzten Kernel-Experimente habe ich mit OBS (https://build.opensuse.org) gemacht, indem ich das Kernel-Paket meiner Wahl in mein eigenes Repository geklont und damit gespielt habe.

Gruß,
Hendrik

Hi Hendrik,

vielen Dank für den Hinweis mit der Verbosity.
Ich habe grub entsprechend umgestellt aber konnte nichts auffälliges sehen.
Vielmehr scheint das System normal zu starten aber am Ende den Displaymanager nicht darztustellen.
Ich habe das ganze auch in einem anderen Forum gepostet
s.h. https://www.opensuse-forum.de/thread/39545-eigenen-kernel-bauen-und-installieren/?postID=115387#post115387
Mittlerweile habe ich mal den von Leap verwendeten Kernel source bezogen, und nur die Bezeichnung geändert

wgo@linux-4hsn:~> diff /boot/config-4.4.92-31-default /boot/config-4.4.92-31-wgo- 
3c3
< # Linux/x86_64 4.4.85 Kernel Configuration
---
> # Linux/x86 4.4.92 Kernel Configuration
57c57
< CONFIG_LOCALVERSION="-31-default"
---
> CONFIG_LOCALVERSION="-31-wgo-"
wgo@linux-4hsn:~> #

Das Ergebnis ist aber ein schwarzer Bildschirm.
Ich habe die systemd boot traces mal extrahiert und verglichen, kann aber auf die Schnelle nichts besonderes feststellen.

Ich habe hier leider keine Upload Funktion gefunden :frowning: sie hängen aber im anderen Forum (s.o. Link ) meinem Posting an.
Mit OBS wollte ich jetzt nicht unbedingt anfangen, auch wenn interessant scheint, aber die Zeit läuft mir davon.

Gruß
Wasili

Hi,

hier wird für den Upload von Logs u.ä. gern https://paste.opensuse.org/ verwendet und die Links gepostet.
Auf die in dem anderen Forum hochgeladenen Dateien habe ich als Gast leider keine Zugriffsrechte und anmelden möchte ich mich dort nicht auch noch.

Gruß,
Hendrik

Die Ausgaben meines Kernels sind: https://paste.opensuse.org/70318752
Die Ausgaben des default Kernels: https://paste.opensuse.org/61725736

Vergleiche mal die Einträge mit “i915”. Da sieht man in “Deinem” Kernel einige Fehlermeldungen. Und wenn der Grafiktreiber nicht funktioniert, …

Viel Spaß beim Suchen der Ursache :wink:
Hendrik

Danke für den Tip :slight_smile:

Verstehe aber nicht wie das angehen kann wenn die Kernelkonfiguration gleich der vom SuSE Kernel ist.
Bei Verwendung der gleichen Kernelsourcen darf das nicht passieren. Die einzige mögliche Ursache scheint mir zu sein, dass die Sourcen die ich mit Yast installiert habe andere sind als die die zum Bau des SuSE Kernels verwendet wurden.
Evtl hat es damit zu tun, dass ich Leap 42.2 auf 42.3 upgedatet habe, aber ich glaube nicht recht daran
Es kann natürlich auch sein, dass der SuSE Kernel noch zusätzliche Parameter kriegt, die mein Kernel nicht erhält. Aber dazu müsste man sich mit Grub2 beschäftigen …

Das deckt sich mit meinen Erfahrungen. Früher ging das mal mit den installierten Sourcen, aber mittlerweile kriege ich das nur noch via OBS hin.

Gruß,
Hendrik

1 Like