Mailinglist Archive: opensuse-de (1863 mails)

< Previous Next >
Re: nichts mehr kompilierbar/ Endlosschleife
  • From: Thomas Hertweck <Thomas.Hertweck@xxxxxx>
  • Date: Tue, 02 Jan 2007 19:44:20 +0000
  • Message-id: <459AB614.4060804@xxxxxx>
Hallo!

Hans Meine wrote:
> Ich habe Deine Erklärungen mit Interesse verfolgt - privat verwende ich Gentoo
> und vermeide SuSE, aber hier am Arbeitsplatz setzen wir SuSE 10.0 ein und ich
> habe hier teilweise Kernel-Module übersetzen müssen. Gibt es zu "dem
> SuSE-Kernel-Vorgehen" eine öffentliche Dokumentation, die Du mir ans Herz
> legen kannst?

Oeffentlich oder offiziell? ;-)

a) http://www.suse.de/~agruen/kernel-doc/

Das entspricht der Doku, die Du vermutlich auch unter
/usr/share/doc/packages/kernel-source/ auf Deinem System findest und auf
die /usr/src/linux/README.SUSE verweist (sofern Du SuSE Kernel-Quellen
verwendest).

b) /usr/src/linux/Documentation/kbuild/

Offizielle Infos zum Kernel Build-System und Prozess, auch Teil der
Vanilla Kernel-Quellen. Deckt allerdings keine SuSE-spezifischen
Anpassungen ab.

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

Meine eigene Doku zum Bau von Kerneln auf SuSE-Systemen, technisch
vermutlich nicht ganz so anspruchsvoll und ausgereift wie die andere
oben erwaehnte Dokumentation, aber vielleicht trotzdem ein Blick wert.

> Ansonsten habe ich folgende Fragen nach Deinen Ausführungen: Wenn ich es
> richtig verstanden habe, sollte im BUILD-Verzeichnis ein Wrapper-Makefile
> liegen, bei mir sind aber nur die Symbole:

Ja, das hast Du richtig verstanden.

$> cd /usr/src/linux-2.6.13-15.13-obj/i386/default
$> ls -l
total 272
drwxr-xr-x 3 root root 4096 2006-12-23 13:46 arch
drwxr-xr-x 5 root root 4096 2007-01-01 19:26 include
drwxr-xr-x 2 root root 4096 2007-01-01 19:26 include2
-rw-r--r-- 1 root root 343 2007-01-01 19:26 Makefile
-rw-r--r-- 1 root root 251325 2006-12-11 01:30 Module.symvers
drwxr-xr-x 6 root root 4096 2007-01-01 19:27 scripts

Wundere Dich nicht ueber die Zeitstempel, das mag bei Dir anders aussehen.

> kogspc26:~ # cat /etc/SuSE-release
> SUSE LINUX 10.0 (i586)
> VERSION = 10.0
>
> kogspc26:~ # rpm -qa|grep kernel
> kernel-source-2.6.13-15
> kernel-smp-nongpl-2.6.13-15.13
> kernel-update-tool-0.9-10
> kernel-smp-2.6.13-15.13
> kernel-syms-2.6.13-15

Deine Kernel-Quellen passen nicht zum Kernel! Du hast SMP Kernel
2.6.13-15.13 installiert, aber ungepatchte Kernel-Quellen, da hier
die Angabe lediglich 2.6.13-15 ist. Bei mir (ebenfalls SuSE 10.0)
sieht das wie folgt aus:

$> rpm -q kernel-source kernel-default
kernel-source-2.6.13-15.13
kernel-default-2.6.13-15.13

Beachte die Versions- und Build-Nummern der Pakete, die hier bei
mir uebereinstimmen. Hast Du die Kernel-Quellen nachtraeglich
installiert und vergessen, ein weiteres Mal YOU aufzurufen?

> kogspc26:~ # uname -r
> 2.6.13-15.13-smp
>
> kkogspc26:~ # readlink /lib/modules/`uname -r`/build
> /usr/src/linux-2.6.13-15.13-obj/i386/smp

Das ist das zugehoerige Build-Directory, in dem...

> kogspc26:~ # ll /usr/src/linux-2.6.13-15.13-obj/i386/smp
> total 260
> drwxr-xr-x 2 root root 4096 Dec 20 16:47 .
> drwxr-xr-x 3 root root 4096 Dec 20 16:47 ..
> -rw-r--r-- 1 root root 250998 Dec 11 01:58 Module.symvers

...sich normalerweise ein Makefile befinden sollte.

$> rpm -ql kernel-source-2.6.13-15.13 | grep Makefile | grep -- -obj
/usr/src/linux-2.6.13-15.13-obj/i386/bigsmp/Makefile
/usr/src/linux-2.6.13-15.13-obj/i386/debug/Makefile
/usr/src/linux-2.6.13-15.13-obj/i386/default/Makefile
/usr/src/linux-2.6.13-15.13-obj/i386/smp/Makefile

Siehe die letzte Zeile dieser Ausgabe. Das waere das fuer Dich passende
Makefile.

> [...]
> Bei mir scheint das unvollständig zu sein; ich habe allerdings z.B. den
> gspca-Webcam-Treiber mit make KERNELDIR=/usr/src/linux-2.6.13-15-obj/i386/smp
> übersetzen können, denn dort (also ohne das .13) gibt es die gesuchten
> Dateien:

Siehe obige Bemerkung zu Deinen Kernel-Quellen. Sie sind nicht auf die
letzte verfuegbare Version gepatcht und passen nicht zu der
Versionsnummer Deines momentan verwendeten Kernels. Das ist das primaere
Problem, das Du loesen solltest. Es erklaert auch, warum Du im alten
Verzeichnis...

> kogspc26:~ # ll /usr/src/linux-2.6.13-15-obj/i386/smp
> total 348
> drwxr-xr-x 6 root root 4096 Dec 22 13:31 .
> drwxr-xr-x 8 root root 4096 Sep 13 2005 ..
> -rw-r--r-- 1 root root 63130 Sep 13 2005 .config
> -rw-r--r-- 1 root root 327 Sep 13 2005 Makefile
> -rw-r--r-- 1 root root 250926 Sep 13 2005 Module.symvers
> drwxr-xr-x 3 root root 4096 Dec 20 17:13 arch
> drwxr-xr-x 4 root root 4096 Dec 20 17:13 include
> drwxr-xr-x 2 root root 4096 Dec 20 17:13 include2
> drwxr-xr-x 6 root root 4096 Dec 20 17:13 scripts

...einen vollstaendigen Satz an Dateien hast, im neuen Verzeichnis...

> kogspc26:~ # ll /usr/src/linux-2.6.13-15.13-obj/i386/smp
> total 260
> drwxr-xr-x 2 root root 4096 Dec 20 16:47 .
> drwxr-xr-x 3 root root 4096 Dec 20 16:47 ..
> -rw-r--r-- 1 root root 250998 Dec 11 01:58 Module.symvers

...aber nicht, weil das zugehoerige Kernel-Source Paket nicht
installiert wurde! Die hier gezeigte Datei Module.symvers kommt aus dem
Paket kernel-syms, was bei Dir anscheinend in der richtigen Version
vorliegt.

Fazit: rufe YOU erneut auf und update auch die Kernel-Quellen. YOU
sollte das automatisch machen. Falls nicht, dann musst Du von Hand
eingreifen.

> [...]
> Ich finde das Konzept separater Build-Directories auch sehr gut, allerdings
> habe auch ich Probleme mit SuSE derart, daß irgendetwas out-of-the-box wohl
> noch fehlt.

Siehe oben.

Die genannten Probleme mit dem NVIDIA-Treiber sollten verschwinden,
sobald Du das korrekte Kernel-Source Paket installiert hast
(kernel-source-2.6.13-15.13 - die .13 am Ende beachten!)

> [...]
> Sieht so aus, als ob der Installer nicht für builddir != srcdir gemacht wäre,
> aber auch für sowas gibt es doch bestimmt eine Lösung, oder?

Das NVIDIA Treiberpaket kann AFAIK mit einem Build-Directory umgehen, es
ist lediglich momentan so, dass Dein System inkonsistent ist ;-)

Gruesse,
Thomas
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups