• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

linux-kernel-headers

Antonio

Member
Guten Abend,
Warum gibt es fuer Suse 11.3 kein linux-kernel-headers mehr?
Da ich mein PCTV 340e installiren moechte, brauche ein Modul zu compilieren.
Laider bekomme ich baim Make eine Fehlermedlung :

make[1]: *** No rule to make target `.myconfig', needed by `config-compat.h'. Stop.
make[1]: Leaving directory `/home/antonio/Scaricati/pctv-340e-2-927fd2a915c4/v4l'
make: *** [all] Error 2

Unter 11.2 konnte ich das Modul ohne Schwierigkeiten installieren und der Stick lief.

Danke fuer die Antworten.
Antonio

Opensuse 11.3 64, Kde 4.5.3, 2.6.34.7-0.5.
 

Sauerland

Ultimate Guru
Heißen jetzt so:
Code:
linux-glibc-devel - Linux headers for userspace development

This package provides Linux kernel headers, the kernel API description required for compilation of almost all programs. This is the userspace interface; compiling external kernel modules requires kernel-source instead.
 

spoensche

Moderator
Teammitglied
Der Treiber wird nicht im Userspace laufen, sondern im Kernelspace. Daher solltest du die Pakete kernel-devel, kernel-headers, kernel-source und kernel-syms installiert haben.
 

Rainer Juhser

Moderator
Teammitglied
spoensche schrieb:
Der Treiber wird nicht im Userspace laufen, sondern im Kernelspace.
Das ändert aber nichts an der Tatsache, dass es das Paket "kernel-headers" bei Opensuse 11.3 nicht mehr gibt!

So sieht das bei mir aus:
Code:
rjuhser@zeus:~> zypper se -i kernel-*
Daten des Repositorys laden ...
Installierte Pakete lesen ...

S | Name                 | Zusammenfassung                                         | Typ  
--+----------------------+---------------------------------------------------------+------
i | kernel-default-devel | Development files necessary for building kernel modules | Paket
i | kernel-desktop       | Kernel optimized for the desktop                        | Paket
i | kernel-desktop-devel | Development files necessary for building kernel modules | Paket
i | kernel-devel         | Development files needed for building kernel modules    | Paket
i | kernel-firmware      | Linux kernel firmware files                             | Paket
i | kernel-pae-devel     | Development files necessary for building kernel modules | Paket
i | kernel-syms          | Kernel Symbol Versions (modversions)                    | Paket
i | kernel-xen-devel     | Development files necessary for building kernel modules | Paket
rjuhser@zeus:~> zypper se  kernel-h*
Daten des Repositorys laden ...
Installierte Pakete lesen ...
Keine Pakete gefunden.
rjuhser@zeus:~> zypper se  -i glibc-devel
Daten des Repositorys laden ...
Installierte Pakete lesen ...

S | Name              | Zusammenfassung                                                                | Typ  
--+-------------------+--------------------------------------------------------------------------------+------
i | glibc-devel       | Enthält Dateien und Bibliotheken, die zur Programmentwicklung benötigt werden. | Paket
i | linux-glibc-devel | Linux headers for userspace development                                        | Paket
rjuhser@zeus:~>
 
OP
A

Antonio

Member
Hallo,

Nein, der Fehler bleibt.

Beim 11.2 war mir alles ohne Probleme gelungen. Ich hatte die Info von dieser Seite befolgt.
(Die Seite ist auf italiensich, ...)
http://www.crismonblog.org/opensuse-11.2/installare-pinnacle-pctv-340e-se-ora-su-linux-ma-meta.html

dann gibt es auch diese Seite
http://istvanv.users.sourceforge.net/v4l/xc4000.html#install
NOTES:

* If you are using a 2.6.34.x or 2.6.35.x kernel version, it is now also possible to patch the kernel sources directly, using the patches contributed by Tomasz Kazmierczak. This way, it is not necessary to download and use the V4L-DVB snapshot required by the original patch.
* On some versions of Ubuntu, there may be problems compiling the V4L-DVB source code, making it necessary to disable the 'firedtv' module. See this forum for details.

Hier scheint eine Loesung zu stehen. Nur verstehe ich nicht so ganz was sie mit dem patch meinen.
Wenn ich das richtig verstehe, da ich Kernel 2.6.34.xx habe, sollte ich die Firmware dvb-fe-xc4000-1.4.1.fw patchen und
dann speichern. (xc4000-winfast-2.6.34.x.patch (2010-08-27)

Bye.
Antonio

NB: Es ist nicht so schlim wenn das Stick nicht funkt, aber das hilft mir meine Erfahrung mit Linux zu erweitern.
 

spoensche

Moderator
Teammitglied
Was genau verstehst du den nicht? Du musst den Patch auf den Quellcode von video4linxu (v4l) anwenden un anschließen den Quellcode kompilieren.
 
OP
A

Antonio

Member
Also ich habe folgendes gemacht:

1. a79dd2ae4d0e.tar.bz2 heruntergeladen und decompirimiert = v4l-dvb-a79dd2ae4d0e/ erzeugt auch ein v4l Directory.
2. xc4000-winfast-2.6.34.x.patch heruntergeladen

Den patch ins Verzeichnis v4l-dvb-a79dd2ae4d0e kopiert.

Dann patch -p1 < ../xc4000-winfast-a79dd2ae4d0e.patch ausfuehren..???
Da bin chi stehen geblieben...
Ich kann den patch Befehl nicht richtig eingeben... habe bis heute nie damit gearbeitet. Ist was Neues...

Wuerde gerne diese Huerde ueberwinden und was dazulernen.
Danke.
Antonio
 

spoensche

Moderator
Teammitglied
Ja, den Befehl patch ausführen. Mit dem patch Befehl werden Änderungen am Quellcode durchgeführt. Siehe
Code:
man patch
 
Rainer Juhser schrieb:
Das ändert aber nichts an der Tatsache, dass es das Paket "kernel-headers" bei Opensuse 11.3 nicht mehr gibt!
Das Paket "linux-kernel-headers" wurde genau deshalb nach "linux-glibc-devel" umbenannt, weil der Name "linux-kernel-headers" immer wieder zu der falschen Annahme geführt hat, dieses Paket habe etwas mit Kernelentwicklung zu tun.

Das war niemals der Fall. Dieses Paket wird ausschließlich zum Übersetzen von Userspace-Programmen gebraucht. Die Versionsnummer dieses Pakets braucht auch nicht zum installierten Kernel zu passen. Man beachte die Ausgabe von "rpm -qi linux-glibc-devel":
This package provides Linux kernel headers, the kernel API description
required for compilation of almost all programs. This is the userspace
interface; compiling external kernel modules requires
kernel-(flavor)-devel, or kernel-syms to pull in all kernel-*-devel,
packages, instead.
 
A

Anonymous

Gast
Antonio schrieb:
Den patch ins Verzeichnis v4l-dvb-a79dd2ae4d0e kopiert.

Dann patch -p1 < ../xc4000-winfast-a79dd2ae4d0e.patch ausfuehren..???
Da bin chi stehen geblieben...

Ja immer dieser Ärger mit den patch-Befehl, dieser ist so genial und einfach, die Manpage jedoch so umfassend verwirrend das es da oftmals für Anfänger ein paar Probleme gibt. ;) ;) ;)

Dein wahrscheinlicher Fehler :
Wo ist zu diesem Zeitpunkt dein aktuelles Verzeichnis ????
Code:
patch -p1 < ../xc4000-winfast-a79dd2ae4d0e.patch
wahrscheinlich im Verzeichnis v4l-dvb-a79dd2ae4d0e in dem sich laut deiner Beschreibung auch xc4000-winfast-a79dd2ae4d0e.patch befindet
diese Datei suchst du aber ein Verzeichnis tiefer "../xc4000-winfast-a79dd2ae4d0e.patch" wo sie sich gar nicht befindet.
das kann schon mal gar nicht funktionieren.

Normalerweise wird der patch nicht in das Verzeichnis kopiert das gepacht werden soll, sondern irgendwohin zB /tmp/patchdatei.
jetzt wechselt man mit der Shell in das Verzeichnis das gepacht werden soll, nennen wir es mal einfach nur Quellcode
Code:
cd Quellcode
In aller Regel ist ein Patch jetzt so erstellt, das du jetzt genau an dieser Stelle
Code:
patch -p1 < /tmp/patchdatei
eingeben kannst. Ein funktionierender Patch macht dabei folgende Ausgabe für erfolgreich gepachte Dateien.

Code:
patching file ChangeLog
patching file src/dateiname.c
patching file src/dateiname.h
.......
Hat irgendwas nicht wirklich funktioniert, zB weil vor diesem Patch noch ein anderer Patch hätte angewendet werden müssen, oder weil zB etwas mit der Zeichencodierung nicht stimmt, dann könnte das Ergebnis für einige Dateien so hier aussehen.
Code:
patching file INSTALL
Hunk #5 succeeded at 142 with fuzz 1.
Hunk #6 FAILED at 152.
Hunk #7 FAILED at 213.
Hunk #8 FAILED at 257.
Hunk #9 FAILED at 274.
Hunk #10 succeeded at 285 with fuzz 2.
Hunk #12 FAILED at 320.
5 out of 12 hunks FAILED -- saving rejects to file INSTALL.rej
Hier hat der Patch auf die Datei INSTALL nur teilweise funktioniert. Das sollte aber im Normalfall nicht passieren wenn du alles richtig gemacht hast und auch die richtigen Paches in der richtigen Reihenfolge in den Quellcode einarbeitest.

robi
 
Oben