Page 1 of 1

wo packt suse die kernel-header hin?

Posted: 27. Sep 2007 10:38
by frankenfurter
hallo,
weil sich suse noch am ehesten an den lpic standard halten soll(!?), habe ich mal eine solche installiert. nun hab ich wohl auch direkt mit den standards probleme.
wo packt suse denn die kernel-header hin? ich bin es gewohnt das die unter /usr/src/linux/include zu finden sind. installiert sind sie laut yast.
grüße
frank

Posted: 27. Sep 2007 13:12
by Janka
LPIC: Linux Professional Institute Certification
Meinst du vielleicht den FHS?

Code: Select all

$ rpm -ql linux-kernel-headers
zeigt, dass die Kernel-Header unter /usr/include/linux installiert werden, wo sie auch hingehören. In /usr/src/linux/include liegen hingegen die Header-Quelldateien(!), wenn man die Kernelquellen installiert hat.

Janka

Posted: 27. Sep 2007 20:00
by frankenfurter
vielen dank. die meisten programme, die header benötigen, suchen sie aber zuerst in /usr/src/linux/include. z.b. die nvidia treiber oder vmware.

> LPIC: Linux Professional Institute Certification
> Meinst du vielleicht den FHS?
nein, ich meine da schon lpic und hätte selber nicht an suse gedacht, was standards betrifft.

Posted: 28. Sep 2007 8:45
by Janka
Sowohl vmware als auch die nVidia-Treiber benötigen nicht die Kernel-Header, sondern konfigurierte Kernelquellen. Also die Kernelquellen installieren und zumindest einmal

Code: Select all

$ zcat /proc/config.gz >/usr/src/linux/.config
machen.

Janka

Posted: 28. Sep 2007 14:00
by frankenfurter
hallo,

also eine ganz typische meldung von nvidia bei nicht installierten kernel headern ist folgende meldung:

Code: Select all

ERROR: Unable to find the kernel header files for the currently running kernel.
bei anderen distributionen wie z.b. debian-basierten, reicht das installieren der kernel bzw linux-header zu dem entsprechenden kernel für nvidia und auch vmware definitiv aus.
braucht man bei suse also die konfigurierten, kompletten kernel-sourcen dann ist das aufjedenfall auch distributionspezifisch. insofern scheint muss man offenbar eine ganze menge beachten, wenn man einen vorübergehenden umstieg macht.

bis dann und vielen dank für deine unterstützung

Posted: 28. Sep 2007 21:10
by PDA
Du musst die Kernelquellen vom aktuell laufenden Kernel benutzen.
Die nVidia Treiber vergleichen die Module in /lib/modules/AktuellLaufenderKernel mit den Quellen in /usr/src/linux , wobei /usr/src/linux ein Link ist auf /usr/src/LinuxKernel .

Posted: 30. Sep 2007 18:52
by komsomolze
Hallo,
Janka wrote:... als auch die nVidia-Treiber benötigen nicht die Kernel-Header, sondern konfigurierte Kernelquellen. Also die Kernelquellen installieren und zumindest einmal

Code: Select all

$ zcat /proc/config.gz >/usr/src/linux/.config
machen.
Das stimmt so nicht ganz,
der nvidia-Installer sucht eigentlich nur nach dem String

Code: Select all

#define UTS_RELEASE "2.6.18-5-686"
(Bsp)
Dieser befindet sich je nach Kernel-Version in der Datei utsrelease.h oder version.h,
die bei den Kernel-Headern mitgeliefert werden.

Ältere nvidia-Installer suchen ihn in version.h, was bei neueren Kerneln einen Fehler geben kann (bei diesen in utsrelease.h).
Ein Workaround ist ein einfaches Kopieren des Strings.
Die Mindestvorraussetzung, um ihn zu erzeugen ist ein

Code: Select all

make 
archprepare




PDA wrote:Du musst die Kernelquellen vom aktuell laufenden Kernel benutzen.
Auch das ist nicht ganz richtig,
der nvidia-Installer hat Schalter, um das Kernel-Modul für einen beliebigen - auf dem System vorhandenen - Kernel nachträglich/zusätzlich zu bauen.