Mein erster eigener Linux Kernel?

cuco

Moderator
Teammitglied
Registriert
1 Dez. 2011
Beiträge
7.174
Ich stehe vor einem Problem, welches sich laut Internet nur durch einen eigenen Kernel lösen lässt. Und zwar brauche ich einen Kernel, der das Modul "xhci_hcd" nicht enthält oder wo es zumindest modular eingebaut ist, so dass ich es blacklisten kann. Im Kernel unter Ubuntu 12.10 ist es leider fest im Kernel verankert. Blacklisten oder "modprobe -r" funktionieren daher nicht.

Jetzt würde ich mir also gerne meinen eigenen Kernel bauen. Dieser sollte zu 99,9% gleich sein wie der aktuelle Kernel, ich will also die Ubuntu-Konfiguration des Kernels exakt beibehalten und gerne auch die gleichen Quellen benutzen. Nur das eine Modul soll entweder ganz rausfliegen oder zumindest nur modular eingebaut sein, so dass ich es blacklisten kann.

Leider reichen meine Kenntnisse in Linux nicht über Basiskenntnisse hinaus und einen Kernel habe ich noch nie gebaut. Ist das schwer? Wie gehe ich am besten vor?
Und wie gehe ich dann am besten vor, wenn für den Kernel Updates rauskommen?
 
Du lädst den Kernel-Quellcode und die notwendigen Tools (das Metapaket heißt bei Ubuntu m.w. build-essentials) runter.
Dazu müsste eine Datei mit der Konfiguration gehören, mit der der Standardkernel gebaut wurde. Da musst du mit den entsprechenden Tools nur das betreffende Modul deaktivieren oder auf modular setzen.
Kernel kompilieren, fertig.

Ubuntuusers.de hat da sicher eine Anleitung für.
//edit: http://wiki.ubuntuusers.de/Kernel/Kompilierung
 
Zuletzt bearbeitet:
Ah, super! Da probiere ich mal mein Glück...
 
Noch ein Hinweis: In der Regel fügt man selber erstellte Kernel erstmal parallel zum Standardkernel in das GRUB-Bootmenü ein, so daß man ihn gefahrlos testen kann.
 
Vielleicht kannst du ja mal kurz posten wie lange der Bau gedauert hat.

Früher hatte ich immer einen neuen Rechner gekauft wenn er dafür mehr als 30 Minuten brauchte. Der neue schaffte es dann in der Regel in unter 10 Minuten bis er auch in die 30 Minuten Zone rutschte.

Als vor vielen Jahren ein neuer Server ins Haus kam war ich von den Socken als er deutlich unter einer Minute blieb.
 
richte dich auf ne längere aktion ein. der standardkernel hat praktisch alle module dabei, die es gibt. das kompilieren dauert daher beim ersten mal gefühlte ewigkeiten.
auf den kernel-neuling wirkt das ganze vielleicht anfangs etwas abschreckend, ist aber kein zauberwerk. ;)

viel erfolg bei deinem ersten kernel!

edit:
@ gummiente:
kernel mit allen modulen oder an deine zwecke angepasste config?
 
Ich habe mir seinerzeit (T400) angewöhnt den Kernel im RAM zu bauen, dass hat sehr deutlich geholfen :cool:

Das ganze Kernelgebastel war aber bei mir auch mehr aus Experimentierfreude als aus praktischen Gründen bedingt.
 
@ gummiente:
kernel mit allen modulen oder an deine zwecke angepasste config?

Früher immer mit maßgeschneiderten Config mit nur den Teilen die auch wirklich auf der Maschine genutzt wurde.

Beim letzten "Benchmark" auf dem Server mit allen Modulen.
 
so, ich habe zwar keine Ahnung von dem, was ich da getan habe - aber es scheint zu laufen :D Er ist beim Kompilieren (glaube ich) ^^ Ca. 25 Minuten habe ich gebraucht, um mir das durchzulesen, "verstehen" und alles auszuführen.

Etwas wundern tut mich, dass bei diesen beiden Befehlen:
cp debian.master/abi/3.2.0-17.27/amd64/generic debian.master/abi/3.2.0-17.27/amd64/variante
cp debian.master/abi/3.2.0-17.27/amd64/generic.modules debian.master/abi/3.2.0-17.27/amd64/variante.module
der Ordner .../3.5.0.22-34/.. ist, obwohl es um Kernel 3.5.0.23-35 geht. :confused:
 
Zuletzt bearbeitet:
Naja, das kompilieren läuft ja gerade erst. Bisher war der einzige Zeitfaktor ich selbst beim Lesen :D
 
ich bezog mich auf den server, von dem gummiente erzählt hat. :D
 
Achso :D

So, kompilieren ist durch, hat 17,5 Minuten gedauert.
Geendet bin ich folgendermaßen:
dpkg-deb: building package `linux-source-3.5.0' in `../linux-source-3.5.0_3.5.0-23.35_all.deb'.
dpkg-deb: building package `linux-doc' in `../linux-doc_3.5.0-23.35_all.deb'.
dpkg-deb: building package `linux-tools-common' in `../linux-tools-common_3.5.0-23.35_all.deb'.
dpkg-deb: building package `linux-headers-3.5.0-23' in `../linux-headers-3.5.0-23_3.5.0-23.35_all.deb'.
Irgendwie ist mir noch ein Rätsel, wie ich den jetzt installieren soll. So wie ich das sehe, fehlt das wichtigste - nämlich der Kernel (linux-image) selbst, oder?

//EDIT: Fehler gefunden... Gleich zwei Zeilen, wo ich das "Variante" übersehen und nicht durch meinen Kernel-Varianten-Namen ersetzt hatte :facepalm: :D Vorgang läuft wieder...
//EDIT 2: 16 weitere Minuten - jetzt ist meine SSD voll. Hö? Wo ist der Speicherplatz hin? Waren nicht eben noch ca. 20GB frei?
 
Zuletzt bearbeitet:
2,5 Stunden später - /boot aufgeräumt, damit eine weitere initrd raufpasst, /home aufgeräumt, da das ganze offensichtlich einen Tick mehr als die 19GB brauchte, die noch frei waren. Ein Totalausfall (das war der falsche Knopf an der USV und sorgte für komplett Strom aus -.-) mit korruptem RAID und Dateisystem (das synchronisiert noch...) Und zweimal kompilieren - wenn man denn mal gleich richtig lesen würde :D Inzwischen ist mein eigener Kernel gebootet. Ob alles wirklich geklappt hat, teste ich jetzt. Das eigentliche kompilieren hat zusammengenommen glaube ich ca. 35 min. gedauert, in der Zeit konnte ich mein T500 zerlegen und eine neue CPU einsetzen. Man muss die Zeit ja auch sinnvoll nutzen ;)
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben