Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen
Thema geschlossen (topic locked)

KERNEL BACKEN LEICHT GEMACHT

Kernel HowTo wie man einen kompletten Kernel Satz nur aus dem kernel-source-2.6.xxxx.src.rpm erstellt

Ursprünglicher Text von: Schmolle ( R.I.P. )
Überarbeitet und weitergepflegt von: Dr.SuSE

Vorwort:
Dieses Howto ist absolut nichts für Anfänger, sondern richtet sich an schon sehr versierte SuSEuser.[/size]

Suse 10.x User können ohne gravierende Systemänderungen nur Kernel der Version bis 2.6.24.... übersetzen.
Ab openSUSE_11.0 gibt es keine Einschränkungen.
Wer als SuSE 10.x Anwender noch Bedarf am Kernelsource Paket 2.6.24.1-76.4 haben sollte (oder auch an fertig kompilierten Kernelversionen), das war die letzte Version welche im Kernelrepo davon aufgetaucht war, schickt bitte eine PM an mich ( Dr. Suse ).


Als Erstes möchte ich zum besseren Verständnis der Materie, auf dieses HowTo verweisen, welches echt das Beste ist, das ich kenne


http://www.thomashertweck.de/kernel26.html

Doch nun zu diesem Howto.

Nachfolgend möchte ich euch beschreiben wie man aus einem kernel-source-xxxxx.src.rpm einen neuen Kernel für seine SuSE bauen kann

Zuerst besorgt man sich erst mal die Ausgangsdatei kernel-sourcexxxxx von nachfolgender Adresse (kernel-source) Wichtig ist diese Endung src.rpm

ftp://ftp5.gwdg.de/pub/opensuse/repositories/Kernel:/HEAD/openSUSE_Factory/src

Man sollte aber nicht unbedingt einen Releasekandiaten benutzen. Das sind experimentelle Kernel, bei denen nicht immer alles funktionieren muss, erkennbar an der Buchstabenkombination RC im Dateinamen. Dann lieber zu einem späteren Zeitpunkt noch mal ins Repo schauen ob es dann eine Version ohne RC im Dateinamen gibt.
Das meist auch verfügbare Kernel-syms Paket braucht ihr nicht herunterladen. Dies erzeugen wir am Ende dieses HowTo's passend zu unserem System selbst.

Doch bevor wir loslegen, schauen wir erst mal nach, ob alles was man an Softwarepaketen für unser Vorhaben benötigt auch installiert ist, um dieses Howto erfolgreich abzuschließen zu können!

Siehe folgenden Beitrag, der für ein openSUSE Linux System wichtig ist 

(Immer die neuesten Pakete haben)

http://www.computerhilfen.de/hilfen-6-58786-0.html

Folgende Pakete müssen installiert sein (bei Bedarf nach installieren):

attr, autoconf, automake, bind-utils, binutils, bison, build, cpp .....lib, cvs, cyrus-sasl, e2fsprogs,fdupes, flex, gawk, gcc, gdbm-devel, gettext-devel, glibc-devel, glibc-locale, gpm, klogd, less, libtool, make, man, module-init-tools, ncurses-devel, patch, procinfo, procps, psmisc, pwdutils, rpm, strace, sysvinit, tar, tcpd, texinfo, timezone, unzip, util-linux, vim, zlib-devel, db-devel, gcc-c++, gcc-fortran, gcc-info, gcc-objc, glibc-info, gperf, libaio-devel, libelf, libobjc41, libstdc++-devel, m4, openldap2-devel, pam-devel, pkgconfig, rcs, subversion, mc, kernel-source, kernel-syms, audit-libs, bzip2, coreutils, cpio, grep, groff, gzip, linux-kernel-headers, nettools, netcfg, pam


Wichtig: Der Midnight Commander (mc) ist bei der Standardinstallation von openSuse nicht installiert, drum auch bitte nachinstallieren. Als Suchbegriff mc in yast oder smart verwenden !

Unser Wichtigstes Arbeitswerkzeug ist der MC (Midnight Commander), mit dem wir am Schnellsten voran kommen, um die Kopierarbeiten zu erledigen !



Den starten wir aus der Rootkonsole wie folgt :

mc

So das Vorgehen :

Als Erstes wird das heruntergeladene src.rpm Paket installiert. Ohne diesen Schritt geht's nun mal nicht.

rpm -ihv kernel-source-2.6.2*.src.rpm
 


Anschliessend wird gewechselt in folgendes Verzeichnis:

cd /usr/src/packages/SPECS/ 

nun werden noch nachfolgende Dateien aus dem Verzeichnis /usr/src/packages/SOURCES nach /usr/src/packages/SPECS kopiert damit man ein kernel-default Paket und die anderen Kernelpakete bauen kann (kernel-source, kernel-syms)

Wechseln wir in das Verzeichnis:
cd /usr/src/packages/SOURCES/

Dort kopiert man folgende *spec Files

kernel-syms.spec
kernel-default.spec 
ab Kernel 2.6.27 auch
kernel-module-subpackage
 


(Wenn man noch andere Kernel Versionen bauen möchte, kann man natürlich die anderen *spec Files,welche man wünscht auch noch kopieren)

jetzt befinden sich folgende Dateien in /usr/src/packages/SPECS/

kernel-syms.spec
kernel-default.spec
kernel-source.spec
ggf. kernel-module-package


Jetzt die *spec Files anpassen auf die gleichen Versionsnummer mit mc (Taste F4), ausser kernel-module-subpackage. Das bleibt unverändert

Dazu schauen wir zuerst in das Kernel-source.spec File und merken uns die Versionsnummern um sie in die kernel-default und kernel-syms.specs übertragen zu können. Der Schritt ist wichtig. Vergisst man diesen Schritt lassen sich zwar die Pakete bauen, jedoch hinterher nicht verwenden.

Halten wir also nach folgenden Zeilen Ausschau:
Version:        2.6.27.13
Release:        1.1


Version sollte so bleiben aber Release muss in allen spec-Files identisch sein!

Das kernel-syms Paket ist erst zu bauen wenn man kernel-source und kernel-default erfolgreich gebaut,installiert und den Rechner mit dem neuen Kernel gebootet hat

Damit es nachher auch alles passt ! geben wir folgenden Befehl ein um den Kernel neu zu übersetzen,  Alle *spec Files in nachfolgender Reihenfolge abarbeiten :

Tipp:
Besitzer von Rechnern mit MehrkernCPU's wie AMD x2, Phenom oder deren Gegenstücke aus dem Hause Intel können alle CPU Kerne an der Komplierung beteiligen, was die Geschwindigkeit erheblich steigert. Dazu vor den rpmbuild Befehlen folgenden Befehl eintippen:

export MAKE="make -jN"   

wobei N für die Anzahl der verfügbaren CPU Kerne steht und durch die entsprechende Ziffer zu ersetzen ist

Kernel kompilieren:

rpmbuild --bb --nodeps kernel-source.spec  ENTER
rpmbuild --bb --nodeps kernel-default.spec  ENTER


(--nodeps erklärt sich hier eigentlich selbst)

kernel-syms erst bauen wenn die vorher gebauten Pakete installiert und der neue Kernel erfolgreich gebootet wurde, sonst funktioniert es nicht!

Also nach Installation des neuen Kernels per rpm -ivh kernel-default-xxx und Neustart mit diesem hier weitermachen:
rpmbuild --bb --nodeps kernel-syms.spec

Hat alles geklappt , hat man folgende Pakete für seine Architektur in folgenden Verzeichnis liegen

/usr/src/packages/RPMS/i586/

kernel-default-2.6.27.13-1.1.i586.rpm
kernel-source-2.6.27.13-1.1.i586.rpm
kernel-syms-2.6.27.13-1.1.i586.rpm


Dann werden die Pakete wie folgt installiert

rpm -ihv kernel-default-2.6.27.13-1.1.i586.rpm
rpm -ihv kernel-source-2.6.27.13-1.1.i586.rpm
rpm -ihv kernel-syms-2.6.27.13-1.1.i586.rpm


Da nun die Frage aufkommen wird was ist mit x86_64 (64bit?)

Die Vorgehensweise ist die Gleiche, bloß das wir folgende Pakete hier wieder finden werden :

cd /usr/src/packages/RPMS/x86_64/

kernel-default-2.6.27.13-1.1.x86_64.rpm
kernel-source-2.6.27.13-11.1.x86_64.rpm
kernel-syms-2.6.27.13-1.1.x86_64.rpm


Und schon hat man ein kompletten neuen Kernel auf dem neuesten Stand  ! Es ist noch zu erwähnen, dass  Treiber wie AMD/ATI NVIDIA (Grafik) nach dem Kernelupdate erneut installiert werden müssen. Das gilt auch für WLAN etc. Ab Kernel 2.6.26 sind viele, viele neue Treiber in den Kernel eingeflossen für die keine Module mehr separat gebaut werden müssen, wie es noch bei älteren Kernel der Fall war. Das betrifft viele Wlanchips und Webcammodule. Genaueres ist dem Kernelchangelog auf http://kernelnewbies.org zu entnehmen!

Viel Erfolg

Dr.Suse
« Letzte Änderung: 25.01.09, 23:51:30 von Dr. SuSE »
« Suse: Suse 11Suse: Online-Videothek mit Wine »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Hypertext
Hypertext ( zu Deutsch: Übertext) ein ein von dem Informatiker Theodore L. Nelson in den sechziger Jahren geprägter Begriff für Text, der dreidimensional g...

Textur
Unter einer Textur versteht man eine Oberflächenstrukur, die ein bestimmtes Material simuliert, wie Holz, Tapete oder Metall. Bei der 3D-Computeranimation bezeichnet...

RIP
Die Abkürzung RIP wird in der Computersprache als Raster Image Processor bezeichnet und ist eine Hard- und/oder Software, die aus Texten, Fotos und Grafiken in Form ...